1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo kỹ thuật truyền số liệu đề tài chữ ký số

23 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo cáo kỹ thuật truyền số liệu đề tài chữ ký số
Tác giả Trần Thị Thảo, Nguyễn Vũ Phúc Nguyên, Lê Thị Kim Chi
Trường học Đại Học Đà Nẵng
Chuyên ngành Công nghệ Thông tin
Thể loại Báo cáo kỹ thuật truyền số liệu
Năm xuất bản 2021
Thành phố Đà Nẵng
Định dạng
Số trang 23
Dung lượng 4,13 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mã hóa thông tin Trong khoa học mật mã là việc sử dụng các kỹ thuật thích hợp để biến đổi một bản thông điệp có ý nghĩa thành một dãy mã ngẫu nhiên để liên lạc với nhau giữa người gửi v

Trang 1

ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN

Trang 2

LỜI MỞ ĐẦU

Công nghệ thông tin trong giai đoạn hiện nay đang có những bước phát triển như vũ bão trên mọi lĩnh vực hoạt động ở khắp nơi trên thế giới, điều xảy ra trong vòng vài năm vừa qua ở iệt Nam là sự đầu tư ồ ạt vào công ngV hệ Nhu cầu trao đổi

và x lý thông tin ngày càng cao, nhử ờ có các công nghệ hiện đại mà áp đ ứng hầu hết các nhu cầu về cả tốc độ và độ chính xác

Tuy nhiên, v công ngh quá phát triì ệ ển, cũng sẽ dẫn ến đ tính bảo mậ ủt c a thông tin thấp, bị truy cập trái phép từ những người mình không mong muốn Thông tin được lưu giữ, truyền dẫn, cùng sử dụng trên mạng lưới thông tin công cộng có thể bị nghe trộm, chiếm đoạt, xuyên tạc hoặc phá huỷ dẫn đến sự tổn thất không thể lường được Đặc biệt là đối với những số liệu củ hệ thống ngân hàng, hệ thống thươn mại, cơ a g quan quản lý của chính phủ hoặc thuộc lĩnh vực quân sự được lưu giữ và truyền dẫn trên mạng Nếu như vì nhân tố an toàn mà thông tin không dám đưa lên mạng thì hiệu suất l m việc cũng như hiệu suất lợi dụng ng ồn dữ liệu đều sẽ bị ảnh hưởng Trướà u c các yêu cầu cần thiết đó, việc mã hoá thông tin sẽ đảm bảo an toàn cho thông tin tại nơi lưu trữ cũng như khi thông tin được truyền trên mạng

Các phương thức tấn công thông qua mạng ngày càng tinh vi, phức tạp có thể dẫn đến mất mát thông tin, thậm chí có thể làm sụp đổ hoàn toàn hệ thống thông tin của tổ chức Vì vậy an toàn thông tin là nhiệm vụ quan trọng, nặng nề và khó đoán trước đối với các hệ thống thông tin

Một trong nhữn ứng dụng của ag n toàn thông tin là chữ ký số Với đặc điểm là đơn giản cho người sử dụng mà vẫn đảm bảo được tính bảo mật, kỹ thuật sử dụng chữ ký

số là một trong những kỹ thuật được sử dụng phổ biến, đa dạng trong hầu hết các lĩnh vực, nhất là Tài chính, Ngân hang, Kế toán…Vì lý do đó, nhóm em quyết định nghiên cứu về “Chữ ký số”

Do còn hạn chế về mặt kiến thức và tư duy, nên trong bài tập không tránh khỏi những sơ sót, nhóm chúng em rất mong nhận được ý kiến đóng g p của giảng viên ócũng như các bạn đề có thể hoàn thiện thuật toán một cách chỉnh chu nhất

Trang 3

MỤC LỤC

1 GIỚI THIỆU MỘT SỐ KỸ THUẬT AN TOÀN VÀ BẢO MẬT THÔNG

TIN 5

1.1 Mã hóa thông tin 5

1.2 Giấu tin 5

1.3 Thủy vân số 6

1.4 Chữ ký số 6

2 GIỚI THIỆU VỀ CHỮ KÝ SỐ 7

2.1 Thuật toán khóa công khai 7

2.2 Chữ ký số 8

2.2.1 Vai trò của chữ ký số 9

2.2.2 Ứng dụng của chữ ký số 9

2.3 Quá trình tạo và kiểm tra chữ ký số 10

2.3.1 Quá trình ký(bên gửi) 10

2.3.2 Quá trình kiểm tra chữ ký(bên nhận) 10

2.4 Các loại hệ chữ ký 11

2.4.1 Hệ chữ ký RSA 11

2.4.2 Hệ chữ ký DSA 11

2.4.3 Hệ chữ ký ElGammal 12

2.4.4 Chuẩn chữ ký số 13

3 KIẾN TRÚC CHỮ KÝ SỐ RSA 14

3.1 Tổng quan 14

3.2 Giải thuật và cài đặt giải thuật 17

3.2.1 Sơ đồ giải thuật 17

3.2.2 Tạo khóa 18

3.2.3 Mã hóa và giải mã 18

3.3 Source Code 19

4 KẾT LUẬN 22

4.1 Ưu điểm: 22

4.2 Nhược điểm: 22

Trang 4

5 TÀI LIỆU THAM KHẢO 23

Trang 5

1 GIỚI THIỆU M ỘT SỐ KỸ THUẬT AN TO ÀN VÀ B ẢO MẬT

THÔNG TIN

1.1 Mã hóa thông tin

Trong khoa học mật mã là việc sử dụng các kỹ thuật thích hợp để biến đổi một bản thông điệp có ý nghĩa thành một dãy mã ngẫu nhiên để liên lạc với nhau giữa người gửi và người nhận mà người ngoài cuộc có thể có được sự hiện hữu của dãy

mã ngẫu nhiên đó nhưng khó có thể chuyển thành bản thông điệp ban đầu nếu không

có “khóa” để giải mã của thông điệp

Hình 1 Mã hóa thông tin

1.2 Giấu tin

Giấu tin là kỹ thuật nhúng một lượng thông tin số (ảnh, audio, video) vào trong một đối tượng dữ liệu số khác Một trong những yêu cầu cơ bản của giấu tin là đảm bảo tính chất ẩn của thông tin được giấu, đồng thời không làm ảnh hưởng đến chất lượng của dữ liệu gốc Mục đích của giấu tin là làm cho thông tin đã giấu không thể nghe thấy hoặc nhìn thấy được, người ngoài cuộc không thể nhận thấy được sự tồn tại của thông tin đã giấu

Kỹ thuật giấu tin gồm 2 phần là thuật toán giấu tin và thuật toán tách thông tin

đã giấu trong ra khỏi phương tiện mang tin đã giấu

Hình 2 Giấu tin

Trang 6

1.3 Thủy vân s

Thủy vân số là kỹ thuật nhúng thông tin vào dữ liệu (dữ liệu có thể là văn bản, hình ảnh, audio, video hay cơ sở dữ liệu, ) trước khi phân phối dữ liệu trên môi trường trao đổi thông tin nhằm xác định thông tin về chủ sở hữu hoặc nhận biết sự tấn công trái phép từ bên ngoài đối với dữ liệu đã được thủy vân Thông tin giấu trong dữ liệu được gọi là thủy vân (watermark)

Khóa công khai thường được phân phối thông qua chứng thực khóa công khai

Trang 7

Hình 4 Giới thiệu chữ ký số

2 GI ỚI T HI ỆU VỀ CHỮ KÝ SỐ

2.1 Thuật toán khóa công khai

Mã hóa bất đối xứng thường được hiểu là mã hoá sử dụng khóa công khai [1]

Mã hóa bất đối xứng sử dụng một cặp khóa: khóa bí mật và khóa công khai, được miêu tả như hình 5 Mỗi quá trình truyền tin sử dụng một cặp khóa duy nhất và có thể

sử dụng l inhhoạt Khóa bí mật cần phải lưu trữ riêng và đảm bảo tính bảo mật, không được truyền trên mạng Khóa công khai có thể được cung cấp miễn phí và công bố tới mọi người

Hình 5 Hệ thống sử dụng mã hóa khóa công khai Tương tự như mã hoá khoá bí mật, phương pháp này cũng có các thành phần chính như sau:

• Plaintext: bản tin gốc

Trang 8

• Encryption Algorithm: phép biến đổi xuôi, thực hiện biến đổi bản tin gốc

• Public/Private keys: cặp khóa công khai/bí mật

• Ciphertext: bản tin đã biến đổi

• Decryption Algorithm: phép biến đổi ngược, khôi phục bản tin gốc Quá trình sử dụng mã hóa khóa công khai:

• Bên nhận sinh cặp khóa

• Khóa công khai thường được chứng thực bởi một bên thứ ba tin cậy và chuyển cho người gửi theo các phương thức truyền thông thông thường

• Bên gửi nhận được khóa công khai, kiểm tra các thông tin chứng thực khoá và dùng khóa này để mã hóa thông điệp và gửi cho bên nhận

• Bên nhận sử dụng khoá bí mật để giải mã thông điệp D(Kd(E(Ke,M)) = M

• Thông điệp có thể bị bên thứ ba lấy trộm, nhưng không thể đọc được nội dung

2.2 Chữ ký số

Chữ ký số : Là một thể chứng thực được mã hóa bởi khoá bí mật của người gửi Chữ ký số là thông tin đi kèm theo dữ liệu (văn bản, hình ảnh, video ) nhằm mục đích xác định chủ thể của dữ liệu đó Quá trình tạo và xác thực chữ ký số được mô tả như Hình 6

Trang 9

Hình 6 Chữ ký số

2.2.1 Vai trò của chữ k ốý s

Chữ ký số dùng cho các văn bản số, cho biết toàn bộ văn bản đã được ký bởi người ký Và người khác có thể xác minh điều này Chữ ký số tương tự như chữ ký thông thường, đảm bảo nội dung tài liệu là đáng tin cậy, chính xác, không hề thay đổi trên đường truyền và cho biết người tạo ra tài liệu là ai Tuy nhiên, chữ ký số khác chữ

ký thường, vì nó tuỳ thuộc vào văn bản Chữ ký số sẽ thay đổi theo văn bản còn chữ

ký thường thì không hề thay đổi

Chữ ký số được sử dụng để cung cấp chứng thực chủ sở hữu, tính toàn vẹn dữ liệu và chống chối bỏ nguồn gốc trong rất nhiều các lĩnh vực

2.2.2. Ứng dụng của chữ ký số

Giải pháp dùng chữ ký số là tối ưu vì nó có hiệu lực pháp luật, do đó không cần

in ấn tài liệu mà vẫn có thể xác nhận được tài liệu, đảm bảo tính toàn vẹn và không chối bỏ Chữ ký số được phát hành bởi bên thứ ba là cơ quan chứng thực có thẩm quyền cấp phát, thu hồi, quản lý chứng chỉ số cho các thực thể thực hiện các giao dịch an toàn ( Certificate Authority hoặc CA) nên đảm bảo tính khách quan Như vậy, quá trình tạo chữ ký số, xác nhận các yêu cầu pháp lý, bao gồm xác thực người

ký, xác thực tin nhắn, là thành công và hiệu quả

Chính vì những ưu điểm của chữ ký số, nó được dùng trong nhiều ứng dụng: Đảm bảo an ninh truyền thông, ngân hàng trực tuyến, thương mại điện tử, đảm bảo

an ninh cho thư điện tử, …

Trang 10

2.3 Quá trình tạo và kiểm tra chữ ký s

Quá trình sử dụng chữ ký số được thực hiện theo 2 giai đoạn: Tạo chữ ký và kiểm tra chữ ký số Có thể dùng khoá công khai hoặc khoá bí mật để thực hiện các khâu trên Hai quá trình tạo và kiểm tra sẽ được trình bày cụ thể tiếp sau đây

Hình 7 Quá trình tạo và kiểm tra chữ ký số

2.3.1 Quá trình k ý(b ên g ) ửi

Tính toán chuỗi đại diện (message digest/ hash value) của thông điệp sử dụng một giải thuật băm (Hashing algorithm)

Chuỗi đại diện được ký sử dụng khóa riêng (Priavte key) của người gửi va 1 giải thuật tạo chữ ký (Signature/ Encryption algorithm) Kết qu chữ ký số (Digital ả signature) của thông điệp hay còn gọi là chuỗi đại diện được mã hóa (Encryted message digest)

Thông điệp ban đầu (message) được ghép với chữ ký số (Digital signature) tạo thành thông điệp đã được ký (Signed message)

Thông điệp đã được ký (Signed message) được gửi cho người nhận

2.3.2 Quá trình ki ểm tra chữ ký(b ên nh ận)

Tách chữ ký số và thông điệp gốc khỏi thông điệp đã ký để xử lý riêng; Tính toán chuỗi đại diện MD1 (message digest) của thông điệp gốc sử dụng giải thuật băm (là giải thuật sử dụng trong quá trình ký)

Trang 11

Sử dụng khóa công khai (Public key) của người gửi để giải mã chữ ký số -> chuỗi đại diện thông điệp MD2

So sánh MD1 và MD2:

Nếu MD1 = MD2 chữ ký kiểm tra thành công Thông điệp đảm bảo tính toàn vẹn và thực sự xuất phát từ người gửi (do khóa công khai được chứng thực).Nếu MD1 <> MD2 -> chữ ký không hợp lệ Thông điệp có thể đã bị sửa đổi hoặc không thực sự xuất phát từ người gửi

2.4 Các loại hệ chữ ký

2.4.1 Hệ chữ ký RSA

Dựa vào ưu điểm của hệ mã RSA, nếu thiết lập được sơ đồ chữ ký dựa trên bài toán phân tích ra thừa số nguyên tố thì độ an toàn của chữ ký sẽ rất cao Việc thiết lập sơ đồ xác 12 thực chữ ký RSA rất đơn giản, ta chỉ cần đảo ngược hàm mã hóa và giải mã Sau đây là sơ dồ chữ ký RSA:

Cho n = p*q trong đó p,q là các số nguyên tố Đặt p = A = Zn và định nghĩa:

K = {(n,p,q,a,b) : n = p*q, p là các số nguyên tố, ab ≡ 1 (mod Ø (n))} Các giá trị n và b là công khai, còn p,q,a là bí mật

Với K = (n, p, q, a, b) ta xác định: Sigk(x) = xa mod n

• Chọn kích thước khóa L Đây là thước đo chính quyết định sức mạnh

mã hóa của khóa DSS chuẩn ràng buộc L là bội số của 64 và 512≤L≤1024 Sau đó, FIPS 186-2 xác định L luôn là 1024 Không lâu sau, NIST 800-57 đề nghị độ dài khóa là 2048 (hoặc 3072) để thời gian an toàn đến năm 2010 (hoặc 2030), sử dụng tương ứng với các giá trị băm và q dài hơn

Trang 12

• Chọn một số nguyên tố q cùng số bit với đầu ra của H

• Chọn một số nguyên tố p độ dài L bit sao cho p–1 là bội của q Tức là p=qz–1 với số nguyên z nào đó

• Chọn g = h(p 1)/q mod p với h bất kỳ (- 1<h<p–1), và chọn lại nếu kết quả là 1 Hầu hết cách chọn h đều nhận được g có thể sử dụng, thông thường chọn h=2

Các tham số thuật toán (p,q,g) có thể chia sẻ giữa những người khác nhau trong hệ thống Bước thứ hai tính các khóa bí mật và khóa công khai của từng người :

• Chọn x ngẫu nhiên sao cho 0<x<q

• Tính y=gx mod p

• Khóa công khai là (p,q,g,y), khóa bí mật là x

Ký và ki ểm tra chữ k ý

Để ký một thông điệp m, người ký thực hiện các bước sau:

• Phát sinh một số ngẫu nhiêu k (0<k<q) cho mỗi thông điệp

• Tính r = (gkmod p) mod q

• Tính s = k-1(h(m) + xr) mod q

• Tính toán lại chữ ký trong trường hợp không chắc chắn r=0 hoặc s=0

• Chữ ký là (r,s)

Để kiểm tra chữ ký, người nhận thực hiện các bước sau:

• Loại bỏ chữ ký nếu 0<r<q hoặc 0<s<q không thỏa mãn

Trang 14

Nếu UCLN (x + αγ, p 1) = 1 thì sẽ tồn tại δ- -1 mod (p-1), do đó ta có

Trong đó giá trị p, q, α, β là công khai, còn a là bí mật

Với K = (p, α, a, β) và chọn một số ngẫu nhiên k ( 1 <= k <= q-1) và định nghĩa:Sigk(x, k) = (γ, δ)

Trong đó γ = (αkmod p) mod q

δ = (x + a*γ)k-1 mod q

Với x thuộc Z* và γ, δ thuộc Z , việc xác minh được thực hiện bằng cách tính:q

E1 = xδ-1 mod q

E2 = γδ-1 mod q

Ver(x, γ, δ) = TRUE  (αE1βE2mod p) mod q = γ [10]

Chú ý rằng, với DSS thì δ ≠ 0 (mod q) vì giá trị δ mod q cần cho việc xác -1

minh chữ ký Khi B tình một giá trị δ≡0 (mod q) trong thuật toán ký, anh ta nên bỏ

nó đi và chọn một số ngẫu nhiên k mới

3 KIẾN TR ÚC CH Ữ K Ý S Ố RSA

3.1 T ổng quan

Trang 15

Hình 8 Quá trình ký

Hình 9 Quá trình kiểm tra chữ ký

Trang 16

❖ Quá trình ký (bên gửi)

Tính toán chuỗi đại diện (message digest/ hash value) của thông điệp sử dụng một giải thuật băm (Hashing algorithm) SHA-1

Chuỗi đại diện được ký sử dụng khóa riêng (Priavte key) của người gửi và giải thuật tạo chữ ký (Signature/ Encryption algorithm) RSA Kết quả chữ ký số (Digital signature) của thông điệp hay còn gọi là chuỗi đại diện được mã hóa bởi giải thuật RSA (Encryted message digest)

Thông điệp ban đầu (message) được ghép với chữ ký số (Digital signature) tạo thành thông điệp đã được ký (Signed message)

Thông điệp đã được ký (Signed message) được gửi cho người nhận

❖ Quá trình kiểm tra chữ ký (bên nhận)

Tách chữ ký số RSA và thông điệp gốc khỏi thông điệp đã ký để xử lý riêng; Tính toán chuỗi đại diện MD1 (message digest) của thông điệp gốc sử dụng giải thuật băm (là giải thuật sử dụng trong quá trình ký là SHA-1)

Sử dụng khóa công khai (Public key) của người gửi để giải mã chữ ký số RSA-> chuỗi đại diện thông điệp MD2

Trang 17

3.2 Giải thuật v à cài đặt giải thuật

3.2.1 Sơ đồ giải thuật

Hình 10 Sơ đồ giải thuật RSAThuật toán RSA có hai Khóa:

- Khóa công khai (Public key): được công b r ng rãi cho mố ộ ọi người và được dùng

để mã hóa

- Khóa bí mật (Private key): Những thông tin được mã hóa ằ b ng khóa công khai ch ỉ

có thể được giải mã bằng khóa bí mật tương ứng

Trang 19

• Hàm BigInteger add(BigInteger val): cộng 2 số nguyên lớn;

• Hàm BigInteger subtract(BigInteger val): Trừ 2 số nguyên lớn;

• Hàm BigInteger multiply(BigInteger val): nhân 2 số nguyên lớn;

• Hàm gcd(BigInteger val): Tìm USCLN của 2 số lớn

• Hàm mod(BigInteger m): Tính modulo (phần dư) của phép chia nguyên;

• Hàm BigInteger modInverse(BigInteger m): tính modulo nghịch đảo (this1mod m);

• Hàm BigInteger modPow(BigInteger exponent, BigInteger m): Tính (thisexponent mod m)

- Soure code:

o Tạo khóa:

o Mã hóa:

Trang 20

o Giải mã:

3.4 Giao diện phần mềm:

Hình 13 Giao diện chính phần mềm

Trang 21

Hình 14 Giao diện tạo khóa

Hình 12 Giao diện gửi và nhận tin

Trang 22

Hình 13 Giao diện kết quả

4 KẾT LUẬN

4.1 Ưu điểm:

Chữ ký số có vai trò quan trọng trong các giao dịch điện tử Chữ ký số tạo ra một bước tiến lớn trong các giao dịch thương mại điện tử, đảm bảo tính an toàn và tin cậy trong truyền thông trên mạng

Các thông tin khi truyền trên mạng trở nên nhanh chóng, tin cậy hơn

Chữ ký số cũng giúp cho quá trình làm việc trên mạng nhanh chóng và hiệu quả hơn, giảm thiểu các chi phí liên quan như khi dùng chữ ký thông thường

4.2 Nhược điểm:

ương tr ần mềm

Trang 23

- Tính bảo mật không được tuyệt đối

- Sự có thời ạn của chữ kh ý điện tử

- Không có sự phân biệt giữa bản gốc và bản sao chép

5 TÀI LIỆU THAM KHẢO

[1] https://www.tailieu123.org/uploads/thac-si-cao-hoc/2018/nghien-cuu-ve-chuki- -va-ung-dung-trong-hoa-don-dien-tu-tai-vnpt-ha-noi-tap-trung-nghien-so cuu-ky-thuat-ki-so sau- -do-xay-dung-mot-chuong-trinh-co ap- -dung-ki-thuat-ki- -qua-token-sode-ki-len-file-hoa-don-pdf-cua-vien-thong-ha-noi.pdf

-[2] http://vi.wikipedia.org/wiki/RSA_(m%C3%A3_h%C3%B3a)

[3] http://en.wikipedia.org/wiki/RSA

[4] http://vi.wikipedia.org/wiki/Ch%E1%BB%AF_k%C3%BD_s%E1%BB%91 [5] http://en.wikipedia.org/wiki/Digital_signature

[6] http://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html

[7] http://vi.wikipedia.org/wiki/SHA

[8] http://www.java2s.com/Tutorial/Java/0490 Security/UseSHA1.htm [9]https://nguyendangkhiemit.wordpress.com/2014/10/19/chu-ky-so su- -dung-giai-thuat-rsa/

Ngày đăng: 29/06/2023, 10:12

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w