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

Một số phương pháp mã hóa thông tin và ứng dụng trong xác minh thông tin

72 559 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

Định dạng
Số trang 72
Dung lượng 2,41 MB

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

Nội dung

Nhóm mã hoá và giải mã bằng thuật toán đối xứng được thể hiện bằng công thức: - Quá trình mã hóa: E k P=C - Quá trình giải mã: D k C=P hoặc D k E k P=P Một số hệ mã cổ điển điển hình c

Trang 1

NÓI ĐẦU

Từ xưa đến nay thông tin luôn là yếu tố quan trọng trong các hoạt động của đời sống con người Trong thời đại ngày nay, các phương thức truyền đạt thông tin ngày càng đa dạng và phát triển Với sự ra đời của máy tính và mạng máy tính, việc trao đổi thông tin đã trở lên dễ dàng hơn, nhanh chóng hơn, đa dạng hơn Nhưng kèm theo đó là các nguy cơ xâm phạm thông tin cũng ngày càng tăng Nắm bắt được thông tin nhiều khi mang ý nghĩa quyết định, sống còn đặc biệt trong các lĩnh vực: kinh tế, chính trị, an ninh, quốc phòng…Vì vậy việc bảo mật thông tin đã, đang và sẽ là vấn đề được đặt ra rất cấp bách Để giải quyết vấn đề đó các hệ mật

mã đã ra đời Từ các hệ mật mã sơ khải cổ điển như: Hệ mã Dịch Vòng, hệ mã Hill,

hệ mã Affine,…, cho đến các hệ mật mã hiện đại, phức tạp như hệ mã DES Các hệ mật mã công khai như hệ mã RSA, hệ mã Ba Lô Nhưng đi kèm với sự ra đời và phát triển của các hệ mật mã là các phương pháp phá khoá các hệ mật mã đó Cuộc chiến giữa bảo mật thông tin và xâm phạm thông tin vẫn luôn diễn ra một cách thầm lặng nhưng vô cùng gay gắt

Với mong muốn tìm hiểu được phương pháp bảo mật, xác minh thông tin em

đã chọn đề tài một số phương pháp mã hóa thông tin và ứng dụng trong xác

minh thông tin làm đồ án tốt nghiệp Tuy đã có nhiều cố gắng trong việc xây dựng

đề tài nhưng do còn hạn chế về mặt thời gian cũng như kiến thức và kinh nghiệm thực tế nên đề tài không tránh khỏi những thiếu sót Vì vậy em rất mong được sự chỉ bảo, đóng góp ý kiến của các thầy cô giáo cho đề tài của em ngày càng hoàn thiện hơn

Em xin chân thành cảm ơn sự giúp đỡ nhiệt tình của cô: Nguyễn Hiền Trinh– Bộ môn khoa học máy tính và các thầy cô đã trang bị kiến thức cho em để

em hoàn thành đề tài này

Trang 2

MỤC LỤC

NÓI ĐẦU 0

Chương 1 Một số phương pháp mã hóa thông tin 4

1.1 Khái niệm hệ mật mã 4

1.2 Mã hoá và giải mã 4

1.2.1 Quy trình mã hoá và giải mã dữ liệu 4

1.2.3 Thuật toán mã hóa phi đối xứng(Puclic-key-Algorithms) 6

1.3 Mật mã cổ điển 7

1.3.1 Mã dịch vòng 7

1.3.2 Mã thay thế 8

1.3.3 Mã Affine 10

1.3.4 Mã Vigenere 11

1.3.5 Hệ mã Hill 13

1.3.6 Hệ mã Hoán vị 15

1.3.6.1 Mô tả 15

1.3.6.2 Đánh giá độ an toàn 16

1.3.7 Sơ lược về thám mã các hệ mã cổ điển 16

1.3.8 Nhận xét chung về các hệ mật mã cổ điển 17

Chương 2: Một số thuật toán mã hóa công khai 17

2.1 Giới thiệt chung 17

2.2 Một số hệ mã hóa công khai 20

2.2.1 Hệ mã Ba Lô (MHK) 20

2.2.1.1 Tạo khoá 20

2.2.1.2 Mã hoá 21

2.2.1.3 Giải mã 21

2.1.1.4 Ví dụ 22

2.2.2 Hệ mã RSA 23

2.2.2.1 Tạo khoá 25

Trang 3

2.2.2.2 Mã hoá 25

2.2.2.3 Giải mã 26

2.2.2.4 Ví dụ minh hoạ 27

2.2.3 Ðộ an toàn của hệ RSA 28

2.2.4 Sơ lược về thám mã RSA 29

2.2.5 Ứng dụng của hệ mật mã RSA 31

2.2.6 Hệ mã ELGAMAL 31

2.2.6.1 Mô tả toán họa 32

2.2.6.2 Quá trình mã học 32

2.2.6.3 Quá trình giải mã 32

Chương 3: Chữ ký điện tử 33

3.1 Giới thiệu về chữ ký điện tử và vấn đề xác nhận 33

3.2 Một số thuật toán ký 35

3.2.1 Thuật toán ký RSA 35

3.2.1.1 Thuật toán sinh khoá : 35

3.2.1.2 Thuật toán sinh và xác định chữ ký : 36

3.2.1.3 Tóm tắt lược đồ ký theo RSA : 36

3.2.2 Thuật toán ký DSA 37

3.2.2.1 Tạo khóa 37

3.2.2.2 Ký 38

3.2.2.3 Xác nhận 38

3.2.2.4 Sự đúng đắn của giải thuật 38

3.3 Tấn công chữ ký điện tử 39

Chương 4: Kiến trúc mã hóa và các API bảo mật trong Java2 40

4.1 Những vấn đề liên quan đến bảo mật và mật mã 40

4.2 Vấn đề chứng thực khóa công khai 43

4.3 Môi trường làm việc của kiến trúc mã hóa trong Java 44

4.3.1 JCE và United States Export 45

4.3.2 Quan hệ giữa Java 2 SDK, JCA và JCE APIs 46

Trang 4

4.4 Các API bảo mật trong Java 2 47

4.4.1 Gói java.security 47

4.4.1.1 Các principal 47

4.4.1.2 Giao diện Guard và lớp GaurdedObject 47

4.4.1.3 Các Provider 48

4.4.1.4 Lớp Security 49

4.4.1.5 Công việc quản lý khóa 50

4.4.1.6 Một ví dụ về quản lý kho khóa 52

4.4.1.7 Biến đổi thông điệp và chữ ký điện tử 54

4.4.1.8 Phát sinh số ngẫu nhiên an toàn 55

4.4.1.9 Lớp SignedObject 55

4.4.1.10 vùng bảo vệ 56

4.4.1.11 Lớp policy 57

4.4.2 Gói java.security.spec 58

4.4.3 Gói java.security.cert 58

4.4.4 Gói java.security.interfaces 59

4.4.5 Gói java.security.acl 59

Chương 5: Cài đặt chương trình 61

5.1 Các bước chuẩn bị cho chương trình 61

5.2 Giao điện chính của chương trình 62

5.3 Tạo khóa .62

5.4 Thực hiện ký 63

5.5 Xác minh chữ ký 64

PHỤ LỤC 65

KẾT LUẬN 69

TÀI LIỆU THAM KHẢO 70

Trang 5

ĐÁNH GIÁ, NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Error! Bookmark

not defined.

Trang 6

Chương 1 Một số phương pháp mã hóa thông tin

1.1 Khái niệm hệ mật mã

Một hệ mật mã là một bộ 5 (P,C,K,E,D) thoả mãn các điều kiện sau:

- P: Là một tập hợp hữu hạn các bản rõ, nó được gọi là không gian bản rõ

- C: Là tập hữu hạn các bản mã, nó được gọi là không gian bản mã Mỗi phần tử của C có thể nhận được bằng cách áp dụng phép mã hoá Ek lên một phần tử của P, với k  K

- K: Là tập hữu hạn các khoá hay còn gọi là không gian khoá

Đối với mỗi phần tử k của K được gọi là một khoá Số lượng của không gian khoá phải đủ lớn để “kẻ địch” không có đủ thời gian để thử mọi khoá có thể (hay không thể sử dụng phương pháp vét cạn) Đối với mỗi k  K có một quy tắc mã ek: PC và một quy tắc giải mã tương ứng dk D Mỗi ek: P C và dk: CP là những hàm mà: dk (ek(x)) = x với mọi bản rõ x  P

1.2.1 Quy trình mã hoá và giải mã dữ liệu

Quy trình thực hiện như sau:

Quy trình mã hoá dữ liệu

Trang 7

Bộ phận quản lý khoá thực hiện lập khoá mã hoá (Ke) và khoá giải mã (Kd) Dữ liệu gốc được mã hoá nhờ khoá mã hoá Vấn đề ở đây là quản lý khóa như thế nào

để cho việc mã hoá và giải mã tương đối đơn giản và đảm bảo tuyệt đối bí mật cho khoá giải mã

Thuật toán mã hóa đối xứng (Symmetric Algorithms)

Mật mã đối xứng cũng được gọi là mật mã Private key Cryptograpgy hay mật mã Secret key Cryptography Nó sử dụng một chìa khoá duy nhất để mã hoá và giải mã

dữ liệu (được thể hiện dưới hình dưới) đây là hạn chế sự an toàn và phổ biến của phương pháp đối xứng, đồng thời cũng là điểm yếu, bởi vì chỉ cần một bên để lộ khoá thì bí mật sẽ bị mất

Hệ mã cổ điển là loại mã được thực hiện thông qua hàm f có tính thuận nghịch,

sử dụng f để mã hoá, biết f có thể suy ra hàm giải mã f-1

Khi một mật mã đối xứng được sử dụng cho một bản rõ, người sử dụng thực hiện mã hoá với một secret key Khi một giao tiếp được sử dụng mã hoá đối xứng, hai giao tiếp sẽ chia sẻ nhau cùng một mật mã để mã hoá và giải mã gói tin

Trong hệ thống mã hoá đối xứng, trước khi truyền dữ liệu, 2 bên gửi và nhận phải thoả thuận về khoá dùng chung cho quá trình mã hoá và giải mã Sau đó, bên gửi sẽ mã hoá bản rõ (Plaintext) bằng cách sử dụng khoá bí mật này và gửi thông điệp đã mã hoá cho bên nhận Bên nhận sau khi nhận được thông điệp đã mã hoá sẽ

sử dụng chính khoá bí mật mà hai bên thoả thuận để giải mã và lấy lại bản rõ (Plaintext)

Sự bảo mật của một thuật toán đối xứng dựa trên khoá Tiết lộ khoá có nghĩa rằng bất cứ ai biết khoá đều có thể mã hoá và giải mã thông tin trên hệ thống này

Hình 3 Một hệ thống mật mã đối xứng

Trang 8

Nhóm mã hoá và giải mã bằng thuật toán đối xứng được thể hiện bằng công thức:

- Quá trình mã hóa: E k (P)=C

- Quá trình giải mã: D k (C)=P hoặc D k (E k (P))=P

Một số hệ mã cổ điển điển hình cho phương pháp mã hóa đối xứng như:

1.2.3 Thuật toán mã hóa phi đối xứng(Puclic-key-Algorithms)

Hay còn được gọi với một cái tên khác là mã hoá khoá công khai (Public Key Cryptography), nó được thiết kế sao cho khoá sử dụng trong quá trình mã hoá khác biệt với khoá được sử dụng trong quá trình giải mã Hơn thế nữa, khoá sử dụng trong quá trình giải mã không thể được tính toán hay luận ra được từ khoá được dùng để mã hoá và ngược lại, tức là hai khoá này có quan hệ với nhau về mặt toán học nhưng không thể suy diễn được ra nhau Thuật toán này được gọi là mã hoá công khai vì khoá dùng cho việc mã hoá được công khai cho tất cả mọi người Một người bất kỳ có thể dùng khoá này để mã hoá dữ liệu nhưng chỉ duy nhất người

mà có khoá giải mã tương ứng mới có thể đọc được dữ liệu mà thôi Do đó trong thuật toán này có 2 loại khoá: Khoá để mã hoá được gọi là Public Key, khoá để giải

mã được gọi là Private Key

Trong mỗi quá trình truyền thông tin sử dụng mật mã bất đối xứng cần một cặp key duy nhất Nó tạo ra khả năng có thể sử dụng linh hoạt và phát triển trong tương lai hơn là giải pháp mật mã đối xứng Private key bạn cần phải dữ riêng và đảm bảo tính bảo mật và nó không truyền trên mạng Public key được cung cấp miễn phí và được công bố rộng rãi cho mọi người

Trang 9

Thuật toán này được thể hiện bằng:

- Quá trình mã hóa: E k1 (P)=C

- Quá trình giải mã: D k2 (C)=P hoặc D k2 (E k1 (P))=P

Trong một số trường hợp, thông điệp sẽ được mã hoá bằng khoá riêng và giải

mã bằng khoá công khai, điều này thường được áp dụng đối với chữ ký điện tử Một số hệ mã công khai điển hình cho phương pháp mã hóa bất đối xứng như:

Trang 10

Đổi chuỗi ra số theo tứ tự trong bảng chữ cái ta có:

Trang 11

Giả sử P = C = K = Z26 K chứa mọi hoán vị có thể của 26 kí hiệu

0,1…,25 Với mỗi phép hoán vị K ta định nghĩa:

eπ (x) = (x)

và dπ (y) = -1(y) Trong đó -1 là hoán vị ngược của 

Sau đây là một ví dụ về phép hoán vị ngẫu nhiên  tạo nên một hàm mã hoá ( cũng như trước các ký hiệu của bản rõ được kí hiệu bằng chữ in thường còn các ký hiệu của bản mã được kí hiệu bằng chữ in hoa)

Như vậy eπ (a) = X, eπ (b) = N,… Hàm giải mã là phép hoán vị ngược Điều này được thực hiện bằng cách viết hàng thứ hai lên trước rồi sắp xếp theo thứ tự chữ cái Ta nhận được:

Bởi vậy dπ (A) = d, dπ (B) = l,…

Trang 12

Giả sử P = C = K = Z26 và giả sử

P={(a,b)  Z26 x Z26: USCLN(a,26)=1} Với k=(a,b)K, ta định nghĩa:

1.3.3 Mã Affine

1.3.3.1 Mô tả

Mã Affine là một trường hợp đặc biệt của mã thay thế chỉ gồm có 26 trong

số 26! các hoán vị của 26 phần tử Mã Affine được định nghĩa như sau:

Để việc giải mã có thể thực hiện được, yêu cầu nhất thiết là hàm Affine phải là đơn ánh Nói cách khác, với bất kỳ y  Z26, ta muốn có đồng nhất thức sau:

ax + b  y (mod 26) phải có nghiệm x duy nhất Đồng dư thức này tương đương với:

ax  0 (mod 26) sẽ có ít nhất hai nghiệm phân biệt trong Z26 là x = 0 và x = 26/d Trong trường hợp này, e(x) = ax + b mod 26 không phải là một hàm đơn ánh và bởi vậy nó không thể là hàm mã hoá hợp lệ

Trang 13

ở đây tất cả các phép toán đều được thực hiện trên Z26

Để minh hoạ ta hãy mã hoá bản rõ “hot” Trước tiên ta biến đổi các chữ h, o, t thành

các thặng dư theo modulo 26 Ta được các số tương ứng là 7,14,19 bây giờ sẽ mã hoá:

7 x 7+3 mod 26 = 52 mod 26 = 0

7 x 14 + 3 mod 26 = 101 mod 26 = 23

7 x 19 + 3 mod 26 = 136 mod 26 = 6 Bởi vậy 3 kí hiệu của bản mã là 0, 23, 6 tương ứng với xâu kí tự AXG

Thực hiện giải mã theo hàm giả mã ta thu được bản mã “hot”

1.3.3.2 Đánh giá độ an toàn

Do đặc trưng của hệ mã cổ điển: Hàm mã hoá phải khả nghịch, có f thì tính được f-1, hàm f phải là hàm đơn ánh do định lý về nghiệm duy nhất của đồng dư đa thức ax = b mod m Bởi vậy, hàm mã hoá của hệ mã Affine là hàm ek(x) có nghiệm duy nhất khi (a,26) = 1

Từ nhận xét trên ta thấy, sẽ có 12 cách chọn a, 26 cách chọn b do đó có: 12*26 = 312 cách chọn khoá Như vậy độ an toàn là nhỏ

1.3.4 Mã Vigenere

1.3.4.1 Mô tả

Trong cả hai hệ mã dịch vòng và mã thay thế ( một khi khoá đã được chọn) mỗi ký tự sẽ được ánh xạ vào một ký tự duy nhất Vì lý do đó, các hệ mật còn được gọi là các hệ thay thế đơn biểu Còn đây là một hệ mật không phải là bộ chữ đơn, mật mã này lấy tên của Blaise de Vigenere sống vào thế kỷ XVI Hệ mã Vigenere được định nghĩa như sau:

Trang 14

Cho m là một số nguyên dương cố định nào đó Giả sử P = C = K =

(Z26)m Với khoá K = ( k1, k1,…,km) ta xác định:

ek(x1, x2, …, xm) = (x1+k1, x2+k2,…, xm+km)

dk(y1, y2,…, ym) = (y1-k1, y2-k2, …, ym-km) Trong đó tất cả các phép toán đều được thực hiện trên Z26

Sử dụng phép tương ứng A <=> 0, B<=> 1,…, Z<=>25 mô tả ở trên ta có thể gắn cho mỗi khoá K với một chuỗi kí tự có độ dài m được gọi là từ khoá Mật mã Vigenere sẽ đồng thời mã hoá m kí tự

Trang 15

Cho m là một số nguyên dương cố định Cho P=C=(Z26)m và cho K= {các ma trận khả nghịch cấp m x m trên Z26

Với một khoá kK ta xác định

ek(x) = xk

và dk(y) = yk-1

Tất cả các phép toán đều được thực hiện trong Z26

hơn 1,1 x 1027 Lượng khoá này đủ lớn để ngăn ngừa việc tìm khoá bằng tay (chứ không phải dùng máy tính)

Trong hệ mật Vigenere có từ khoá độ dài m, mỗi kí tự có thể được ánh xạ vào trong m ký tự có thể có Một hệ mật như vậy được gọi là hệ mật thay thế đa biểu Nói chung, việc thám mã hệ mật thay thế đa biểu sẽ khó khăn hơn so với thám

mã hệ đơn biểu

1.3.5 Hệ mã Hill

1.3.5.1 Mô tả

Mật mã Hill cũng là một hệ mật thay thế đa biểu do Lester S.Hill đưa ra năm

1929 Giả sử m là một số nguyên dương P=C=(Z26)m Ý tưởng ở đây là lấy m tổ hợp tuyến tính của m ký tự trong một phần tử của bản rõ để tạo ra m ký tự ở một phần tử của bản mã Hệ mã Hill được định nghĩa như sau:

Nhận xét: để giải mã được thì ma trận thức K phải có nghịch đảo K có nghịch đảo khi và chỉ khi định thức của nó khác 0 Tuy nhiên, điều quan trọng cần nhớ là ta đang làm việc trên Z26 Kết quả tương ứng là ma trận K có nghịch đảo theo modulo 26 khi và chỉ khi UCLN( det K, 26) = 1

Sau đây sẽ chứng minh ngắn gọn kết quả này

Trước tiên, giả sử rằng UCLN (det K, 26) =1 Khi đó det K có nghịch đảo trong Z26 Với 1 ≤ i ≤ m, 1 ≤ j ≤ m, định nghĩa Kj i ma trận thu được từ K bằng cách loại bỏ hàng thứ i và cột thứ j Và định nghĩa ma trận K* có phần tử (i,j) của nó nhận giá trị (-1) det Kji (K* được gọi là ma trận bù đại số của K) Khi đó có thể chứng tỏ rằng:

Trang 16

Ngược lại K có nghịch đảo K-1 Theo quy tắc nhân của định thức

1= det I = det (KK-1) = det K det K-1Bởi vậy det K có nghịch đảo trong Z26

Trang 17

Cho m là một số nguyên dương xác định nào đó Cho P=C= (Z26)m và cho K gồm tất cả các hoán vị của {1,…,m} Đối với một khoá  (tức là một hoán vị)

π

-1 (m) ) Trong đó π-1 là hoán vị ngược của hoán vị π

1.3.5.2 Đánh giá độ an toàn

Do không gian khoá nhỏ hơn so với hệ mã Vigenere nên độ an toàn của hệ

mã Hill nhỏ hơn so với hệ mã Vigenere

Ví dụ:

Giả sử m = 6 và các phép hoán vị (π ) như sau:

Khi đó phép hoán vị ngược π-1 sẽ là:

Trang 18

Bây giờ giả sử ta có bản rõ

Shesellsseashellsbytheseashore

Trước tiên ta nhóm bản rõ thành 6 nhóm các kí tự

Shesel lsseas hellsb ythese ashore

Bây giờ mỗi nhóm 6 chữ cái được sắp xếp lại theo phép hoán vị π ta có:

EESLSH SALSES LSHBLE HSYEET HRAEOS Như vậy bản mã thu được là: EESLSHSALSESLSHBLEHSYEET HRAEOS Quá trinh giải mã làm tương tự bằng phép hoán vị đảo π-1

1.3.6.2 Đánh giá độ an toàn

Không giống với Mã Thay Thế ở đây không có các phép toán đại số nào cần thực hiện khi mã hoá và giải mã nên thích hợp hơn cả là dùng các ký tự mà không dùng các thặng dư theo modulo 26 Thực tế mã hoán vị là trường hợp đặc biệt của

mật mã Hill

1.3.7 Sơ lược về thám mã các hệ mã cổ điển

Giả thiết luôn coi đối phương đã biết hệ mật đang dùng Giả thiết này được gọi là nguyên lý Kerekhoff Dĩ nhiên, nếu đối phương không biết hệ mật được dùng thì nhiệm vụ của anh ta sẽ khó khăn hơn Tuy nhiên, ta không muốn độ mật của một

hệ mã lại dựa trên một giả thiết không chắc chắn là đối phương không biết hệ mật được sử dụng Do đó, mục tiêu trong thiết kế một hệ mật là phải đạt được độ mật dưới giả thiết Kerekhoff

Trước tiên ta phân biệt các mức độ tấn công khác nhau vào các hệ mật Sau

đó là một số loại thông dụng nhất:

- Chỉ có bản mã: Thám mã chỉ có xâu bản mã y

- Chỉ có bản mã y và một bản rõ x

- Bản rõ đã biết được lựa chọn: Một người tấn công có thể truy nhập được vào

hệ thống và chọn một bản rõ x,sau đó mã hoá thành bản mã y tương ứng

- Bản mã được lựa chọn: Người tấn công có thể truy nhập được vào hệ thống

và chọn một bản mã y, sau đó giải mã được thành bản rõ x tương ứng Trong mỗi trường hợp trên, điều đối tượng cần phải xác định chính là khoá đã sử dụng Rõ ràng 4 mức tấn công trên đã được liệt kê theo độ tăng của sức mạnh tấn

Trang 19

công Nhận thấy rằng, tấn công theo bản mã được lựa chọn là thích hợp với các hệ mật khoá công khai

Phương pháp chung

Kỹ thuật thám mã sử dụng phương pháp chung là dùng các kỹ thuật thống kê

để tìm tần suất xuất hiện các ký tự và các cụm ký tự

Đối với các bản mã cần phá, cũng thực hiện phép thống kê tương ứng rồi lần lượt thử gán các ký hiệu có tần suất xuất hiện tương đương với nhau Bằng cách như vậy có thể làm giảm bớt số lần thử

1.3.8 Nhận xét chung về các hệ mật mã cổ điển

- Tính bảo mật kém

- Khoá có thể có nhiều dạng khác nhau nhưng chỉ có một khoá chung duy nhất cho cả người mã hoá và người giải mã

- Thuật toán nói chung phải giữ bí mật: ek(x)  dk(y) = ek-1(x)

- Không thể dùng vào mục đích xác thực, không dùng được cho chữ kí điện tử

Chương 2: Một số thuật toán mã hóa công khai

2.1 Giới thiệt chung

Hệ mật mã hóa khóa công khai là một dạng mật mã hóa cho phép người sử

dụng trao đổi các thông tin mật mà không cần phải trao đổi các khóa chung bí mật trước đó Điều này được thực hiện bằng cách sử dụng một cặp khóa có quan hệ toán học với nhau là khóa công khai và khóa cá nhân (hay khóa bí mật)

Thuật ngữ mật mã hóa khóa bất đối xứng thường được dùng đồng nghĩa với mật mã hóa khóa công khai mặc dù hai khái niệm không hoàn toàn tương

đương Có những thuật toán mật mã khóa bất đối xứng không có tính chất khóa công khai và bí mật như đề cập ở trên mà cả hai khóa (cho mã hóa và giải mã) đều cần phải giữ bí mật

Trang 20

Trong mật mã hóa khóa công khai, khóa cá nhân phải được giữ bí mật trong khi khóa công khai được phổ biến công khai Trong 2 khóa, một dùng để mã hóa và khóa còn lại dùng để giải mã Điều quan trọng đối với hệ thống là không thể tìm ra khóa bí mật nếu chỉ biết khóa công khai

Hệ thống mật mã hóa khóa công khai có thể sử dụng với các mục đích:

Mã hóa: Giữ bí mật thông tin và chỉ có người có khóa bí mật mới giải mã

được

Tạo chữ ký số: Cho phép kiểm tra một văn bản có phải đã được tạo với

một khóa bí mật nào đó hay không

Thỏa thuận khóa: Cho phép thiết lập khóa dùng để trao đổi thông tin

mật giữa 2 bên

Thông thường, các kỹ thuật mật mã hóa khóa công khai đòi hỏi khối lượng tính toán nhiều hơn các kỹ thuật mã hóa khóa đối xứng nhưng những lợi điểm mà chúng mang lại khiến cho chúng được áp dụng trong nhiều ứng dụng

Thuật toán mật mã hóa khóa công khai được thiết kế đầu tiên bởi James H Ellis, Clifford Cocks, và Malcolm Williamson tại GCHQ (Anh) vào đầu thập kỷ

1970 Thuật toán sau này được phát triển và biết đến dưới tên Diffie-Hellman, và là một trường hợp đặc biệt của RSA Tuy nhiên những thông tin này chỉ được tiết lộ vào năm 1997

Năm 1976, Whitfield Diffie và Martin Hellman công bố một hệ thống mật

mã hóa khóa bất đối xứng trong đó nêu ra phương pháp trao đổi khóa công khai Công trình này chịu sự ảnh hưởng từ xuất bản trước đó của Ralph Merkle về phân phối khóa công khai Trao đổi khóa Diffie-Hellman là phương pháp có thể áp dụng trên thực tế đầu tiên để phân phối khóa bí mật thông qua một kênh thông tin không

an toàn Kỹ thuật thỏa thuận khóa của Merkle có tên là hệ thống câu đố Merkle

Đối với các hệ mã hoá cổ điển thì nếu biết khoá mã Ek thì cũng biết được khoá giải Dk Nói một cách cụ thể thì khoá giải có thể suy ra trực tiếp từ khoá mã hoặc có thể tính toán từ khoá mã không mấy khó khăn, và ngược lại

Trang 21

Thuật toán mã hoá công khai sử dụng khoá để mã và khoá để giải là khác nhau Các khoá này tạo thành một cặp chuyển đổi ngược nhau Việc biết khoá mã

Ek không nhất thiết làm lộ Dk Cụ thể hơn người thám mã có thể biết Ek và do đó có thể tính được Dk, tuy nhiên việc tính Dk từ Ek có thể là bất trị với hầu hết các khoá

k Do vậy trên thực tế bản mã C vẫn được giữa an toàn mặc dù khoá mã Ek được công bố rộng dãi Khoá mã có thể công khai nhưng khoá giải phải được giữ bí mật

Mặc dù khoá mã (khoá công khai) và khoá giải (khoá riêng) thực hiện các thao tác ngược nhau và do đó có liên quan đến nhau nhưng phải làm sao để không thể suy ra khoá riêng từ khoá công khai Yêu cầu đó có thể đạt được nhờ các hàm toán học đặc biệt gọi là các hàm sập bẫy một chiều (trapdoor one-way function) Các hàm này có đặc điểm là không thể chỉ dựa vào mô tả cả hàm mà còn phải biết được cách xây dựng hàm thì mới có thể suy ra được nghịch đảo của nó

(Khoá công khai)

Điều kiện khởi đầu

Thám mã

K2 (Khoá bí mật)

Hình 12 Mã hoá công khai

Trang 22

Hạn chế của giải thuật khóa công khai :

 Tốc độ xử lý :

– Các giải thuật khóa công khai chủ yếu dùng các phép nhân chậm, hơn nhiều so với các giải thuật đối xứng

– Không thích hợp cho mã hóa thông thường

– Thường dùng trao đổi khóa bí mật đầu phiên truyền tin

 Tính xác thực của khóa công khai :

– Bất cứ ai cũng có thể tạo ra một khóa công bố đó là của một người khác – Chừng nào việc giả mạo chưa bị phát hiện có thể đọc được nội dung các thông báo gửi cho người kia

– Cần đảm bảo những người đăng ký khóa là đáng tin

Một số thuật toán mã hóa khóa công khai được đánh giá cao:

 Diffie-Hellman

 DSS (Tiêu chuẩn chữ ký số)

 ElGamal

 Các kỹ thuật Mã hóa đường cong elliptic

 Các kỹ thuật Thỏa thuật khóa chứng thực bằng mật khẩu

 Hệ thống mật mã Paillier

 Thuật toán mã hóa RSA

Các hệ mã hoá công khai này đều dựa trên cơ sở những vấn đề phức tạp thuộc lĩnh vực lý thuyết số, đó là các thuật toán số học được thực hiện trên các số nguyên tố rất lớn

2.2 Một số hệ mã hóa công khai

2.2.1 Hệ mã Ba Lô (MHK)

2.2.1.1 Tạo khoá

Hệ mật mã ba lô dựa trên sự khó giải của bài toán tổng các tập con

Trang 23

Tạo khoá của hệ mã ba lô theo các bước:

Bước 1: Tạo dãy siêu tăng S = (s1, s2,…, sn)

Bước 2: Chọn P (P > 2*Sn)

Bước 3: Chọn a (a  [1, p-1] và (p, a)=1)

Bước 4 : Tính khoá T = (t1, t2,…, tn)

Ti = a * si mod P cuối cùng ta được khoá chung là T -> công bố

Khoá riêng là (S, P, a) -> bí mật

2.2.1.2 Mã hoá

Bước 1: Nhập bản rõ, tạo khoá

Bước 2: Đổi xâu bản rõ ra số

Bước 3: Đổi số sang dãy nhị phân Xi

Bước 3: Thực hiện mã hoá theo công thức

Và Xi = 0 Nếu C = 0 và Si = S1 thì bài toán có nghiệm

Nếu không bài toán vô nghiệm

Trang 24

Bước 3: Chuyển dãy nhị phân về số

Bước 4: Chuyển số sang xâu ta được bản rõ

Tính C=a-1*y mod p =18*545 mod 737= 229

Tìm dãy nhị phân như sau

Vậy X= 00011001 => 25 = z (đây chính là bản rõ)

Trang 25

số đó cho tất cả các số nguyên tố nhỏ hơn căn của nó Đây là việc làm không khả thi

Người ta chứng minh được rằng, phép lũy thừa cần O((log n)3) phép toán, nên có thể coi lũy thừa là bài toán dễ Cần chú ý rằng ở đây ta sử dụng các số rất lớn khoảng 1024 bit, tức là cỡ 10350 Tính an toàn dựa vào độ khó của bài toán phân tích

ra thừa số các số lớn Bài toán phân tích ra thừa số yêu cầu O(e log n log log n) phép toán, đây là bài toán khó

Hệ mã cổ điển tuy có ưu điểm là mã hóa và giải mã dễ dàng nhưng độ an toàn thuật toàn rất kém vì thế mà ngày nay người ta không sử dụng hệ mã này nữa Thay vào đó là hệ mật mã công khai với độ tin cậy cao Đặc biệt là hệ mã RSA được sử dụng tương đối nhiều do độ an toàn cao và khó bị tấn công Là thuật toán đầu tiên phù hợp với việc tạo ra chữ ký điện tử đồng thời với việc mã hóa Nó đánh dấu một sự tiến bộ vượt bậc của lĩnh vực mật mã trong việc sử dụng khóa công cộng RSA đang được sử dụng phổ biến trong thương mại điện tử và được cho là

đảm bảo an toàn trong trường hợp khóa đủ lớn

Thuật toán được Ron Rivest, Adi Shamir và Len Adleman mô tả lần đầu tiên vào năm 1977 tại Học viện Công nghệ Massachusetts (MIT) Tên của thuật toán lấy

từ 3 chữ cái đầu của tên 3 tác giả

Trước đó, vào năm 1973, Clifford Cocks, một nhà toán học người Anh làm việc tại GCHQ, đã mô tả một thuật toán tương tự Với khả năng tính toán tại thời điểm đó thì thuật toán này không khả thi và chưa bao giờ được thực nghiệm Tuy nhiên, phát minh này chỉ được công bố vào năm 1997 vì được xếp vào loại tuyệt mật

Trang 26

Tư tưởng của thuật toán RSA

Thuật toán RSA có hai khóa: khóa công khai (hay khóa công cộng) và khóa

bí mật (hay khóa cá nhân) Mỗi khóa là những số cố định sử dụng trong quá trình

mã hóa và giải mã Khóa công khai được công bố rộng rãi cho mọi người và được dùng để mã hóa 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 Nói cách khác, mọi người đều có thể mã hóa nhưng chỉ có người biết khóa cá nhân (bí mật) mới có thể giải mã được

Sơ dồ hoạt động của thuật toán RSA

Thuật toán RSA được mô phỏng trực quan như sau:

A muốn gửi cho B một thông tin mật mà A muốn duy nhất B có thể đọc được Để làm được điều này, B gửi cho A một chiếc hộp có khóa đã mở sẵn và giữ

Chọn p,q là các số nguyên tố

N=p*q, m=Φ(n)=(p-1)(q-1)

Chọn e € (1,m) thỏa mãn (e,m)=1

Xây Dựng

Trang 27

lại chìa khóa A nhận chiếc hộp, cho vào đó một tờ giấy viết thư bình thường và khóa lại (như loại khoá thông thường chỉ cần sập chốt lại, sau khi sập chốt khóa ngay cả A cũng không thể mở lại được-không đọc lại hay sửa thông tin trong thư được nữa) Sau đó A gửi chiếc hộp lại cho B B mở hộp với chìa khóa của mình và đọc thông tin trong thư Trong ví dụ này, chiếc hộp với khóa mở đóng vai trò khóa công khai, chiếc chìa khóa chính là khóa bí mật

2.2.2.1 Tạo khoá

Giả sử A và B cần trao đổi thông tin bí mật thông qua một kênh không an toàn (ví dụ như Internet) Với thuật toán RSA, đầu tiên A cần tạo ra cho mình cặp khóa gồm khóa công khai và khóa bí mật theo các bước sau:

1 Chọn 2 số nguyên tố lớn và với , lựa chọn ngẫu nhiên và độc lập

2 Tính:

4 Chọn một số tự nhiên e sao cho và là số nguyên tố cùng nhau với

5 B tính d=e-1 bằng cách dùng thuật toán Euclide mở rộng

công bố n và e trong danh bạ làm khoá công khai (publickey), còn d làm khoá bí mật (private key)

2.2.2.2 Mã hoá

* Phương pháp tiến hành:

Để mã hoá văn bản rõ P theo phương pháp RSA, trước tiên ta hiển thị bản rõ như một từ trên bộ chữ cái {0,1,…,9} Từ này đươc chia thành các khối với kích thước thích hợp p1, p2,…,pk (với k là số nguyên) Các khối này được mã hoá riêng

rẽ bằng cách dùng cặp (N,e) Bản rõ P được mã hoá bằng cách nâng từng khối lên luỹ thừa e theo modul N

Trang 28

* Thuật toán mã hoá RSA (mã hoá bản rõ P dùng khoá công khai (N,e)):

Bước 1: Thêm vào P một số kí tự ngẫu nhiên nào đó nếu cần thiết để chiều

dài của P là bội số của độ dài khối

2.2.2.3 Giải mã

Việc giải mã với RSA bằng cách nâng mỗi khối ci lên luỹ thừa d theo modulo

N để phục hồi bản rõ

Pi = Cid mod N = (Pie)d mod N đối với mỗi khối ci

e, d phải được chọn sao cho Ped mod N = W

* Thuật toán giải mã RSA

Giải mã dùng khoá bí mật d

Khởi tạo P = xâu rỗng

For i = 1 to NumberOfBlock do

Tính ci = cid mod N Chuyển ci sang xâu kí tự pi

P = P + pi Return P

Trang 29

Sơ đồ khối quá trình thực hiện giải thuật RSA

e*d mod (N) = 49 * 1089 mod 2668 = 53361 mod 2668 = 1

Như vậy, xác định xong cặp khoá (N,e), (N,d)

Các kí tự trong bản rõ được chuyển số bằng cách dùng bảng mã sau:

Trang 30

Trong trường hợp quan tâm đến kí tự dấu cách thì coi kí tự này có mã 00, A

2.2.3 Ðộ an toàn của hệ RSA

Tính bảo mật của RSA chủ yếu dựa vào việc giữ bí mật khóa giải mã hay giữ

bí mật các thừa số p,q của N Một vài phương thức tấn công điển hình của kẻ địch:

Trường hợp1: Kẻ địch biết được modulo N, khóa công khai e và bản tin mã

hóa C, khi đó kẻ địch sẽ tìm ra bản tin gốc kẻ địch thường tấn công vào hệ thống mật mã bằng phương thức sau đây: Trước tiên dựa vào phân tích thừa số mođun N Tiếp theo sau chúng sẽ tìm cách tính toán ra hai số nguyên tố p và q, và có khả năng thành công khi đó sẽ tính được (N) = (p-1)(q-1) và khóa bí mật d Ta thấy N cần phải là tích của hai số nguyên tố, vì nếu N là tích của hai số nguyên tố thì thuật toán phân tích thừa số đơn giản cần tối đa N1/2 bước, bởi vì có một số nguyên tố nhỏ hơn

N1/2 Mặt khác, nếu N là tích của n số nguyên tố, thì thuật toán phân tích thừa số đơn giản cần tối đa N1/n bước

Trang 31

Trường hợp2: Chúng ta xét trường hợp khi kẻ địch nào đó biết được modulo

N và (N), khi đó kẻ địch sẽ tìm ra bản tin gốc (Plaintext) bằng cách sau:

Biết (N) thì có thể tính p,q theo hệ phương trình:

2.2.4 Sơ lược về thám mã RSA

Cũng giống như các thuật toán mã hóa khác, cách thức phân phối khóa công khai là một trong những yếu tố quyết định đối với độ an toàn của RSA Quá trình phân phối khóa cần chống lại được tấn công đứng giữa (man-in-the-middle attack) Giả sử C có thể gửi cho B một khóa bất kỳ và khiến B tin rằng đó là khóa (công

Trang 32

khai) của A Đồng thời C có khả năng đọc được thông tin trao đổi giữa B và A Khi

đó, C sẽ gửi cho B khóa công khai của chính mình (mà B nghĩ rằng đó là khóa của A) Sau đó, C đọc tất cả văn bản mã hóa do B gửi, giải mã với khóa bí mật của mình, giữ 1 bản copy đồng thời mã hóa bằng khóa công khai của A và gửi cho A

Về nguyên tắc, cả B và A đều không phát hiện ra sự can thiệp của người thứ ba Các phương pháp chống lại dạng tấn công này thường dựa trên các chứng thực khóa công khai (digital certificate) hoặc các thành phần của hạ tầng khóa công khai (public key infrastructure - PKI)

Tấn công dựa trên thời gian

Vào năm 1995, Paul Kocher mô tả một dạng tấn công mới lên RSA: nếu kẻ tấn công nắm đủ thông tin về phần cứng thực hiện mã hóa và xác định được thời

gian giải mã đối với một số bản mã lựa chọn thì có thể nhanh chóng tìm ra khóa d

Dạng tấn công này có thể áp dụng đối với hệ thống chữ ký điện tử sử dụng RSA Năm 2003, Dan Boneh và David Brumley chứng minh một dạng tấn công thực tế hơn: phân tích thừa số RSA dùng mạng máy tính (Máy chủ web dùng SSL) Tấn công đã khai thác thông tin rò rỉ của việc tối ưu hóa định lý số dư Trung quốc mà nhiều ứng dụng đã thực hiện

Để chống lại tấn công dựa trên thời gian là đảm bảo quá trình giải mã luôn diễn ra trong thời gian không đổi bất kể văn bản mã Tuy nhiên, cách này có thể làm giảm hiệu suất tính toán Thay vào đó, hầu hết các ứng dụng RSA sử dụng một kỹ

thuật gọi là che mắt Kỹ thuật này dựa trên tính nhân của RSA: thay vì tính c d mod

n, Alice đầu tiên chọn một số ngẫu nhiên r và tính (r e c) d mod n Kết quả của phép

tính này là rm mod n và tác động của r sẽ được loại bỏ bằng cách nhân kết quả với

nghịch đảo của r Đỗi với mỗi văn bản mã, người ta chọn một giá trị của r Vì vậy, thời gian giải mã sẽ không còn phụ thuộc vào giá trị của văn bản mã

Tấn công lựa chọn thích nghi bản mã

Năm 1981, Daniel Bleichenbacher mô tả dạng tấn công lựa chọn thích nghi bản mã (adaptive chosen ciphertext attack) đầu tiên có thể thực hiện trên thực tế đối với một văn bản mã hóa bằng RSA Văn bản này được mã hóa dựa trên tiêu chuẩn

Trang 33

PKCS #1 v1, một tiêu chuẩn chuyển đổi bản rõ có khả năng kiểm tra tính hợp lệ của văn bản sau khi giải mã.Do những khiếm khuyết của PKCS #1, Bleichenbacher có thể thực hiện một tấn công lên bản RSA dùng cho giao thức SSL (tìm được khóa phiên) Do phát hiện này, các mô hình chuyển đổi an toàn hơn như chuyển đổi mã hóa bất đối xứng tối ưu (Optimal Asymmetric Encryption Padding) được khuyến cáo sử dụng Đồng thời phòng nghiên cứu của RSA cũng đưa ra phiên bản mới của PKCS #1 có khả năng chống lại dạng tấn công nói trên

2.2.5 Ứng dụng của hệ mật mã RSA

Hệ mã hóa RSA được ứng dụng rộng rãi chủ yếu cho Web và các chương trình email Ngày nay, RSA còn được sử dụng rộng rãi trong các công nghệ bảo mật, sử dụng cho thương mại điện tử Đặc biệt thuật toán RSA là thuật toán đầu tiên được dùng để tạo chữ ký điện tử cho văn bản Đây là một ứng dụng đặc biệt của thuật toán RSA

2.2.6 Hệ mã ELGAMAL

Hệ mật Elgamal được xây dựng trên bài toán logarithm rời rạc Chúng ta mô

tả bài toán khi thiết lập môi trường hữu hạn Zp, p là số nguyên tố

Elgamal đã phát triển một hệ mật khóa công khai dựa trên bài toán Logarithm rời rạc

Hệ mật này là một hệ không tất định vì bản mã phụ thuộc vào cả bản rõ x và giá trị ngẫu nhiên k do Alice chọn Bởi vậy có nhiều bản mã được mã từ cùng bản

Bài toán Logarithm rời rạc trong Zp

Đặc trưng của bài toán: I=(p, α, β) trong đó p là số nguyên tố, α € Zp là phần

tử nguyên thủy, β € Z*p

Mục tiêu: Hãy tìm một số nguyên duy nhất a, 0 ≤ a ≤ p-2

Sao cho αa =β (mod p)

Trang 34

Ta sẽ xác định số nguyên a bằng logaβ

Hệ mật khóa công khai Elgamal trong Z * p

2.2.6.1 Mô tả toán họa

Cho p là một số nguyên tố sao cho bài toán Logarithm rời rạc trong Zp là khó giải

Chọn α € Z*p là phần tử nguyên thủy

Chọn một số bí mật a, sau đó ta tính giá trị: β = αa mod P

Các giá trị p, α, β là công khai còn a thì giữ bí mật

Sau đây sẽ mô tả sơ lược cách làm việc của hệ mật Elgamal Bản rõ x được

“che dấu ” bằng cách nhân nó với βk để tạo ra y2 Giá trị αk cũng được gửi đi như một phần của bản mã B người biết số mũ bí mật a có thể tính được βk trừ αk Sau đó anh ta đã “tháo mặt nạ” bằng cách chia y2 cho βk để thu được x

- Ví dụ: cho p= 2579, α= 2, a= 765 khi đó:

β=2765 mod 2579= 949

Bây giờ ta giả sử A muốn gửi thông báo x= 1299 tới B Giả sử số ngẫu nhiên

k mà A chọn là k= 853 Sau đó cô ta tính:

Trang 35

y1=2853mod 2579= 435

y2=1299 x 949853 mod 2579= 2396

Khi đó B nhận được bản mã: y= (435, 2396)

B tính: x= 2396 x (435765)-1 mod 2579= 1299 chính là bản rõ

Đánh giá Độ phức tạp thuật toán

Bài toán Logarithm rời rạc trong Zp là đối tượng trong nhiều công trình nghiên cứu và được xem là bài toán khó nếu p được chọn cẩn thận Cụ thể không có một thuật toán thời gian đa thức nào cho bài toán Logarithm rời rạc Để gây khó khăn cho các phương pháp tấn công đã biết p phải có ít nhất 150 chữ số và (p-1) phải có ít nhất một thừa số nguyên tố lớn Lợi thế của bài toán Logarithm rời rạc trong xây dựng hệ mật là khó tìm được các Logarithm rời rạc Song bài toán ngược

có thể tính toán hiệu quả theo thuật toán bình phương và nhân Nói cách khác lũy thừa theo modulo p là hàm một chiều với các số nguyên tố p thích hợp

Chương 3: Chữ ký điện tử

3.1 Giới thiệu về chữ ký điện tử và vấn đề xác nhận

Để chứng minh rằng một thông điệp đã thực sự được gửi bởi chính người gửi

mà không phải là do một kẻ khác giả mạo Khái niệm Digital Signatures được ra đời Khi sử dụng Digital Signatures ta sẽ kiểm tra được tính xác thực của một thông điệp Việc sử dụng Digital Signatures sẽ giảm bớt nguy cơ giả mạo thông điệp (đặc biệt là các thông điệp giả mạo các hãng Security, Software lớn với mục đích phát tán Virus hay Trojan tới bạn) Bởi ta có thể dễ dàng xác minh được thông điệp đó

có phải thực sự đến từ đó hay không ?

Digital Signatures là sự kết hợp giữa Secret Key (khoá bí mật) và text Tiếp

đó nó sẽ sử dụng Public Key của người gửi để thẩm tra thông điệp Nó không chỉ

Trang 36

kiểm tra, thẩm định thông tin về người gửi mà nó còn có thể kiểm tra cả nội dung của thông điệp Như vậy ta sẽ biết được rằng thông điệp đó không bị giả mạo và nó không bị sửa đổi hay can thiệp vào nội dung trong quá trình vận chuyển

Chữ ký điện tử là một phương pháp ký một thông điệp được lưu trữ ở dạng thư tín điện tử Hiểu theo nghĩa thông thường một thông điệp được ký có thể được truyền trên mạng máy tính Khi truyền tin trên mạng, các văn bản được truyền đi dưới dạng số hoá Vấn đề đặt ra là người gửi có nhận trách nhiệm về văn bản gửi đi

đó không? Việc xác nhận trách nhiệm của người gửi đối với văn bản đó cũng là thể hiện trong thủ tục truyền tin nhưng rõ ràng nảy sinh ra nhiều vấn đề mà cách xác nhận trong việc chuyển văn bản kiểu truyền thống chưa gặp phải

Vấn đề thứ nhất: Trong cách truyền thống chữ kí của người gửi dưới dạng

một văn bản viết tay là bằng chứng xác nhận trách nhiệm của người gửi đối với văn bản đó Với văn bản điện tử, người ta có thể cắt dán và lắp ghép các dãy bit một cách dễ dàng Giả sử người đó có một chữ kí dưới dạng một văn bản thì ai dám đảm bảo là chữ ký đó chịu trách nhiệm đối với toàn văn bản Như vậy một chữ ký điện

tử nếu có phải được ký cho từng bit của văn bản, chứ không phải là một chữ ký rời

ở cuối văn bản

Vấn đề thứ hai là xác nhận chữ ký: Chữ ký tay được xác nhận bằng cách so

với nguyên mẫu Chữ ký điện tử là một dãy các bit không thể thử bằng cách so sánh vật lý với một mẫu cho sẵn mà phải xác nhận bằng thuật toán dựa vào mối quan hệ toán học nào đó

Vấn đề thứ ba là việc sao chép một dạng văn bản cùng chữ ký: Nếu là chữ ký

viết tay thì dễ phân biệt bản gốc với bản sao do đó không dùng lại được văn bản có chữ ký thật Văn bản điện tử cùng chữ ký thì có thể nhân bản tuỳ ý không ai phân biệt được bản gốc hay bản sao, cho nên nguy cơ dùng lại là có thật Phải tránh nguy

cơ đó chẳng hạn bằng cách dán nhãn thời gian cho văn bản được ký

Ðịnh nghĩa sơ đồ chữ ký: Một sơ đồ chữ ký số là bộ 5 (P,A, K,S,V) thoả

mãn các điều kiện dưới đây:

P là tập hữu hạn các bức điện (thông điệp) có thể

A là tập hữu hạn các chữ ký có thể

Ngày đăng: 11/08/2016, 16:44

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Bùi Doãn Khanh – Nguyễn Đình Thúc – Hoàng Đức Hải, Giáo Trình Mã Hóa Thông Tin - Lý Thuyết Và Ứng Dụng, NXB Lao động – Xã hội, 12/2004 Sách, tạp chí
Tiêu đề: Giáo Trình Mã Hóa Thông Tin - Lý Thuyết Và Ứng Dụng
Nhà XB: NXB Lao động – Xã hội
[2] Nguyễn Xuân Dũng, Bảo mật thông tin mô hình và ứng dụng, NXB Thống kê,2007 Sách, tạp chí
Tiêu đề: Bảo mật thông tin mô hình và ứng dụng
Nhà XB: NXB Thống kê
[3] Phạm Thế Bảo – Hoàng Đức Hải – Phương Lan, Bảo mật lập trình mạng trong java 2, Nhà xuất bản thống kê, 2005 Sách, tạp chí
Tiêu đề: Bảo mật lập trình mạng trong java 2
Nhà XB: Nhà xuất bản thống kê
[4] Phương lan – Hoàng Đức Hải, Lập trình java tập 1, NXB thống kê, 2003 Sách, tạp chí
Tiêu đề: Lập trình java tập 1
Nhà XB: NXB thống kê
[5] Nguyễn Đình Thúc – Bùi Doãn Khanh, Mã hóa thông tin với java, Nhà xuất bản lao động xã hội, 2006 Sách, tạp chí
Tiêu đề: Mã hóa thông tin với java
Nhà XB: Nhà xuất bản lao động xã hội
[6] Rich Helton – Johenie Helton, Java Security Solutions, Wiley Publishing, Inc., Indianapolis, Indiana, 2002 Sách, tạp chí
Tiêu đề: Java Security Solutions
[8] Tham khảo một số website và diễn đàn như: http://javavietnam.org Link
[7] Một số tài liệu, Ebook về lập trình Java và Java Security … và một số book khác Khác

HÌNH ẢNH LIÊN QUAN

Hình 12. Mã hoá công khai - Một số phương pháp mã hóa thông tin và ứng dụng trong xác minh thông tin
Hình 12. Mã hoá công khai (Trang 21)
Sơ đồ khối quá trình thực hiện giải thuật RSA - Một số phương pháp mã hóa thông tin và ứng dụng trong xác minh thông tin
Sơ đồ kh ối quá trình thực hiện giải thuật RSA (Trang 29)

TỪ KHÓA LIÊN QUAN

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