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

Khảo sát các chữ kí số dựa trên hệ RSA, nghiên cứu lược đồ chữ kí RSA-PSS và những chuẩn hóa

99 1,8K 10

Đ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 99
Dung lượng 1,51 MB

Nội dung

Nó dựa trên các công cụ toán học cơ bản như: lý thuyết số học-cụ thể lý thuyết đồng dư thức, logarit rời rạc, lý thuyết về độ phức tạp tính toán hàm một chiều cũng như khả năng phân tích

Trang 2

MỤC LỤC

LỜI CẢM ƠN 4

LỜI CAM ĐOAN 5

CÁC KÝ HIỆU VIẾT TẮT 6

MỞ ĐẦU 7

Chương 1 NGHIÊN CỨU HỆ MẬT KHOÁ CÔNG KHAI 10

1.1 Lịch sử ra đời và phát triển 10

1.2 Định nghĩa hệ mật khoá công khai 11

1.3 Tính an toàn của hệ mật mã 14

1.4 Thám mã chống lại hệ mật khoá công khai 14

1.5 Sự cần thiết của việc xác minh hệ thống khóa công khai .16

1.5 So sánh hệ mật khóa đối xứng và hệ mật khóa công khai 17

1.5.1 Lợi thế của hệ mật khóa đối xứng .18

1.5.2 Điểm yếu của hệ mật khóa đối xứng .18

1.5.3 Lợi thế của hệ mật khóa công khai 18

1.5.4 Điểm yếu của hệ mật khóa công khai 19

1.6 Hệ chữ ký số 21

1.6.1 Định nghĩa hệ chữ ký số 21

1.6.2 Các ưu điểm của chữ ký số 23

1.6.3 Ứng dụng của chữ ký số 24

Chương 2 NGHIÊN CỨU HỆ MẬT VÀ CHỮ KÝ SỐ RSA 25

2.1 Tính an toàn các thuật toán mã hoá 25

2.2 Hệ mật RSA 26

2.2.1 Quá trình tạo khóa 26

2.2.2 Quá trình mã hóa 27

Trang 3

2.2.3 Quá trình giải mã 27

2.2.4 Chuyển đổi văn bản rõ 28

2.2.5 Tính không an toàn của hệ mật RSA 29

2.2 Hệ chữ ký số RSA 32

2.2.1 Định nghĩa hệ chữ ký số RSA 32

2.2.2 Hệ thống ký hiệu an toàn cho lược đồ ký số 33

2.2.3 Tính an toàn 34

Chương 3 CHỮ KÝ SỐ RSA-PSS 35

3.1 Tổng quan về sơ đồ chữ ký RSA-PSS 35

3.1.1 RSA-PSS hoạt động như thế nào ? 36

3.1.2 Ưu thế của RSA-PSS 38

3.1.3 Các công trình chuẩn 39

3.1.4 Một số nhận xét về lược đồ ký RSA-PSS 40

3.2 Định nghĩa lược đồ ký PSS2000 40

3.2.1 Lược đồ ký điện tử PSS96 40

3.2.2 Lược đồ ký điện tử PSS2000 41

3.2.3 Lược đồ tổng quát hóa 43

3.2.4 Định nghĩa lược đồ RSA-GENPSS 44

3.2.5 Các mô hình an toàn 47

3.2.6 Một số xem xét về vấn đề lưu trữ 48

3.2.7 Phân tích cấu trúc hàm băm 49

3.2.8 Phân tích chuỗi cố định E (bc) 51

Chương 4 SỰ CHUẨN HOÁ CỦA LƯỢC ĐỒ KÝ RSA-PSS 54

4.1 Nguyên lý chung 54

4.2 Các hàm chuyển đổi dữ liệu 55

4.2.1 Hàm cơ sở chuyển đổi từ dạng số sang dạng chuỗi Octet 55

4.2.2 Hàm chuyển đổi từ dạng Octet sang dạng số nguyên 55

Trang 4

4.3 Các phép toán mật mã cơ sở 56

4.3.1 Phép toán cơ sở RSASP1 56

4.3.2 Phép toán cơ sở RSAVP1 57

4.3.3 Phương pháp định dạng cho cho chữ ký với phần nối thêm vào 58

4.4 Lược đồ ký với phần nối thêm vào 64

4.4.1 Thao tác sinh chữ ký 65

4.4.2 Thao tác kiểm tra chữ ký 66

4.5 Tiêu chuẩn tham số sử dụng trong chữ ký số RSA-PSS 67

Chương 5 CHỨNG MINH TÍNH AN TOÀN TỐI ƯU CHO LƯỢC ĐỒ KÝ DỰA VÀO PHƯƠNG PHÁP XÁC SUẤT 70

5.1 Các định nghĩa 70

5.2 Một biến thể của PSS 72

5.3 Áp dụng PSS 76

5.4 Chứng minh tính an toàn tối ưu cho PSS 80

5.5 Bàn luận thêm 85

Chương 6 CHỨNG MINH TÍNH AN TOÀN CHO LƯỢC ĐỒ KÝ RSA-PSS 86

6.1 Kết quả chính 86

6.2 RSA-PSS với việc khôi phục thông điệp 93

6.3 Các mô hình an toàn của lược đồ ký RSA-PSS với việc khôi phục thông điệp 95

KẾT LUẬN 97

TÀI LIỆU THAM KHẢO 98

Trang 5

CÁC KÝ HIỆU VIẾT TẮT

CRT Chinese remainder theorem-Định lý số dƣ Trung Quốc

EM Thông điệp đƣợc mã hoá, là một xâu gồm 8 bit

IEEE Institute of Electrical and Electronics Engineers

IFP Bài toán phân tích số nguyên (Integer Factorization

Problem) IFSSA Integer Factorization Signature Scheme with Appendix-

Lƣợc đồ ký thừa số nguyên với phần nối thêm vào I2OSP Interger to Octet String primitive- Nguyên thuỷ chuyển

kiểu số sang xâu kiểu byte lcm Bội chung nhỏ nhất (Least Common Multiple)

MGF Mask Generation Function- Hàm sinh mặt nạ

MIT Massachusetts Institute of Technology

NIST National Institute of Standards and Technology

OS2IP Octet to Interger String primitive – Nguyên thuỷ chuyển

kiểu byte sang kiểu số RSA Hệ mã hóa khóa công khai Rivest – Shamir – Adleman SSA Signature Scheme with Appendix- Lƣợc đồ ký với phần nối

thêm vào

Trang 6

MỞ ĐẦU

Trong kỷ nguyên công nghệ thông tin, Internet tại Việt Nam đã và đang có những bước phát triển mạnh mẽ, tạo nền tảng cho những ứng dụng hết sức đa dạng và phong phú như chính phủ điện tử, giao dịch điện tử, truyền thông giải trí Tuy nhiên một vấn đề lâu nay vẫn gây lo ngại cho các cấp quản lý cũng như đông đảo quần chúng và giới doanh nghiệp, đó là tính an toàn Trên thực tế, rất nhiều website và thông tin dữ liệu về sản phẩm dịch vụ do không đảm bảo tính toàn vẹn đã bị sụp đổ Các hacker có thể thâm nhập vào những hệ thống của các “đại gia” như Microsoft, Cisco, ở Việt Nam thì VDC, FPT cũng bị hacker thâm nhập Việc bị cướp tên miền cũng xảy ra nhiều lần

Cho tới nay, việc mã hoá dữ liệu là một phương pháp đủ mạnh để bảo vệ những

dữ liệu quan trọng hoặc riêng tư không bị xâm phạm bởi chú ý, tò mò Tuy nhiên, ngày càng có nhiều tin tặc có thể thêm, tráo đổi dữ liệu, mạo danh một cách táo tợn và thiện nghệ Chữ ký điện tử giúp người ta tin tưởng vào tính nguyên vẹn của thông báo, xác thực được người ký thông báo và tạo chứng cứ không thể chối bỏ được về trách nhiệm của người ký Đó là lý do tại sao sự an toàn trong dữ liệu cần phải tích hợp các chữ ký điện tử, các chứng thực điện tử và phương pháp quản lý khoá theo trật tự cấp bậc Nếu áp dụng một cách khôn ngoan các phương pháp này vào việc quản lý dữ liệu cùng với sự hỗ trợ của những khuôn mẫu thực thi, thì chúng ta sẽ có một nền tảng an toàn lưu trữ đa tầng, toàn diện, có khả năng đối đầu được với tình trạng đe doạ đa chiều trước mắt và trong tương lai Thị trường an toàn thông tin tại Việt Nam đang bước vào giai đoạn giao thời khi cơ cở hạ tầng truyền thông cơ bản đã hình thành rõ nét, nhu cầu sử dụng ngày càng nhiều các thiết bị của thời đại kỹ thuật số…Đã đến giai đọan cần phải nắn nót và trau chuốt lại hệ thống của mình, nếu không bảo đảm an toàn tốt, chúng ta sẽ đánh mất nhiều thứ

Có rất nhiều hệ mã hoá đã được biết đến trong lĩnh vực mật mã học Nhưng không phải hệ mã hoá nào cũng đáp ứng đủ các thuộc tính cần thiết của hệ mật: tính bí

Trang 7

mật, tính nguyên vẹn, tính xác thực, tính không bị từ chối và tính chống chối lặp Có

ba hệ mã hóa thông dụng đã đứng vững và được sử dụng để xây dựng các lược đồ ký điện tử: RSA, hệ mã hoá dựa trên logarit rời rạc, và hệ mã hoá dựa trên đường cong elliptic Các hàm một chiều sử dụng trong hệ mã này được xem là an toàn theo thừa nhận,tức là không có thuật toán nào hữu hiệu để tính hàm ngược của chúng Trong khoảng mười năm trở lại đây, vấn đề này đang thu hút rất nhiều sự quan tâm của cộng đồng mật mã trên thế giới RSA được liệt vào một trong các giải thuật mã hóa bất đối xứng được dùng thông dụng nhất cho đến ngày hôm nay (ra đời năm 1977 tại MIT), RSA được đặt tên từ ba nhà khoa học phát minh ra nó: Ron Rivest, Adi Shamir, và Leonard Adleman Nó được dùng hàng ngày trong các giao dịch thương mại điện tử qua web browser (SSL), PGP, dùng cho chữ ký số đảm bảo tính toàn vẹn của các thông điệp khi lưu chuyển trên Internet, phân phối & cấp phát các khoá bí mật

Mật mã khoá công khai liên quan đến các khái niệm, định nghĩa và cấu trúc của các hệ thống tính toán, liên quan đến tính an toàn Để thiết kế các hệ thống mật mã phải dựa trên cơ sở vững chắc Nó dựa trên các công cụ toán học cơ bản như: lý thuyết

số học-cụ thể lý thuyết đồng dư thức, logarit rời rạc, lý thuyết về độ phức tạp tính toán (hàm một chiều) cũng như khả năng phân tích các thuật toán…

Người ta đang cố gắng đưa ra những lược đồ ký sao cho tính không thể giả mạo được của nó có thể đánh giá thông qua độ an toàn của các hàm một chiều mà nó sử dụng Trong phạm vi luận văn này lược đồ ký sử dụng hàm một chiều của hệ mã RSA-PSS được đi sâu nghiên cứu, trong đó nêu ra một số phương pháp chứng minh

cho tính an toàn của lược đồ đó Luận văn gồm 6 chương:

Chương 1: Trong phần này luận văn trình bày những nghiên cứu lý thuyết về hệ mật khoá công khai bao gồm: Lịch sử ra đời và phát triển, định nghĩa hệ mật khoá công khai và xem xét tính an toàn của hệ mật khoá công khai

Chương 2: Chương này nghiên cứu cụ thể hệ mật khoá công khai và hệ chữ ký số RSA Những lý thuyết được đề cập đến bao gồm: Nghiên cứu quá trình tạo khoá, mã

Trang 8

hoá, giả mã, và tính không an toàn của hệ mật RSA Đồng thời cũng nghiên cứu tính

an toàn của lược đồ ký số RSA

Chương 3: Giới thiệu tổng quan lược đồ ký RSA-PSS bao gồm Cơ chế hoạt động, ưu thế, các công trình chuẩn và một số nhận xét quý báo về lược đồ ký này Sau đấy định nghĩa và nghiên cứu cụ thể lược đồ ký PSS2000

Chương 4: Nghiên cứu sự chuẩn hoá của lược đồ ký RSA-PSS, cụ thể là các tiêu chuẩn tham số sử dụng trong chữ ký số RSA-PSS để áp dụng lược đồ vào các ứng dụng thực tế an toàn

Chương 5: Chứng minh tính toàn cho lược đồ ký dựa vào phương pháp xác suất Chương 6: Chứng minh tính toàn cho lược đồ ký RSA-PSS và giới thiệu các mô hình

an toàn của lược đồ ký RSA-PSS với việc khôi phục thông điệp

Trang 9

Chương 1 NGHIÊN CỨU HỆ MẬT KHOÁ CÔNG KHAI

1.1 Lịch sử ra đời và phát triển

Trong hầu hết lịch sử mật mã học, khóa dùng trong các quá trình mã hóa và giải mã phải được giữ bí mật và cần được trao đổi bằng một phương pháp an toàn khác (không dùng mật mã) như gặp nhau trực tiếp hay thông qua một người đưa thư tin cậy Vì vậy quá trình phân phối khóa trong thực tế gặp rất nhiều khó khăn, đặc biệt

là khi số lượng người sử dụng rất lớn Mật mã khóa công khai đã giải quyết được vấn

đề này vì nó cho phép người dùng gửi thông tin mật trên đường truyền không an toàn

mà không cần thỏa thuận khóa từ trước

Mật mã 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 Sau này được phát triển

và biết đến 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ã 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 ả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

Thuật toán đầu tiên cũng được Rivest, Shamir và Adleman tìm ra vào năm 1977 tại MIT Công trình này được công bố vào năm 1978 và thuật toán được đặt tên là RSA RSA sử dụng phép toán tính hàm mũ môđun (môđun được tính bằng tích số của 2 số nguyên tố lớn khác nhau) để mã hóa và giải mã cũng như tạo chữ ký số An toàn của thuật toán được đảm bảo với điều kiện là không tồn tại kỹ thuật hiệu quả để phân tích một số rất lớn thành thừa số nguyên tố.[3]

Trang 10

Kể từ thập kỷ 1970, đã có rất nhiều thuật toán mã hóa, tạo chữ ký số, thỏa thuận khóa được phát triển Các thuật toán như ElGamal (mật mã) do Netscape phát triển hay DSA do NSA và NIST dựa trên các bài toán lôgarit rời rạc Vào giữa thập kỷ 1980, Neal Koblitz bắt đầu cho một dòng thuật toán mới: mật mã đường cong elliptic và cũng tạo ra nhiều thuật toán tương tự Mặc dù cơ sở toán học của dòng thuật toán này phức tạp hơn nhưng lại giúp làm giảm khối lượng tính toán, đặc biệt khi khóa có độ dài lớn

1.2 Định nghĩa hệ mật khoá công khai

từ KC P, được gọi là phép giải mã Với mỗi k  K, ta định nghĩa ek: PC,

dk : : CP là hai hàm cho bởi:

x  P: ek(x) = E(k,x); y  C: dk(y) = D(k,y);

ek và dk được gọi lần lượt là hàm lập mã và hàm giải mã ứng với khóa mật mã k Các hàm đó phải thỏa mãn hệ thức: x  P: dk(ek(x)) = x

Bây giờ chúng ta xem một bài toán truyền thông tin giữa hai thành phần là Bob và Alice được minh hoạ như hình vẽ dưới đây

Trang 11

Chọn một số ngẫu nhiên lớn để sinh cặp kkhóa

Dùng khoá công khai để mã hóa, nhƣng dùng khoá bí mật để giải mã

Hình vẽ 1.1 Minh họa sau hệ mật khoá công khai Bob chọn cặp khoá (e,d) Bob gửi khoá mã hoá e (đƣợc gọi là khoá công khai) cho Alice qua một kênh nào đó nhƣng giữ lại khóa giải mã d an toàn và bảo mật (đƣợc gọi

là khóa bí mật) Sau đó Alice có thể gửi một thông điệp m cho Bob bằng cách áp dụng phép biến đổi mã hóa đƣợc xác định bởi khóa công khai của Bob để có đƣợc c=Ee(m) Bob giải mã bản mã c bằng cách áp dụng phép biến đổi ngƣợc Dd đƣợc xác định duy nhất bởi d

Trang 12

Ta có thể mô phỏng trực quan một hệ mật mã khoá công khai như sau : Bob muốn gửi cho Alice một thông tin mật mà Bob muốn duy nhất Alice có thể đọc được Để làm được điều này, Alice gửi cho Bob một chiếc hộp có khóa đã mở sẵn và giữ lại chìa khóa Bob 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ả Bob 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

đó Bob gửi chiếc hộp lại cho Alice Alice 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

Do khóa mã e không cần phải giữ bí mật mà nó được công khai, nên bất kỳ thực thể nào cũng có thể gửi các thông điệp đã được mã hóa cho Bob mà chỉ có Bob mới giải

mã được nó Hình 2 minh họa cho điều này, trong đó A1,A2,A3 là các thực thể khác nhau Chú ý rằng nếu thực thể A1, gửi thông điệp m1 sau khi mã hóa nó thành c1 thì A1

không thể khôi phục lại m1 từ c1

Hình vẽ 1.2 Minh hoạ quá trình trao đổi khoá công khai Với mật mã khoá công khai như đã mô tả ở trên, giả sử rằng việc biết khóa công khai

e cũng không cho phép tính toán được khóa bí mật d Điều này được giả thiết rằng có

sự tồn tại của hàm sập một cửa

Trang 13

1.3 Tính an toàn của hệ mật mã

Tính an toàn của một hệ mật mã phụ thuộc vào độ khó của bài toán thám mã khi sử dụng hệ mật đó Người ta đã đề xuất ra một số cách hiểu cho khái niệm an toàn của hệ thống mật mã, để trên cơ sở các cách hiểu đó nghiên cứu tính an toàn của nhiều

hệ mật mã khác nhau, sau đây là một số cách hiểu chung nhất:

1 An toàn vô điều kiện: Giả thiết người thám mã có được thông tin về bản mã Theo quan niệm lý thuyết thông tin, nếu những hiểu biết về bản mã không thu hẹp được độ bất định về bản rõ đối với người thám mã, thì hệ mật mã là an toàn

vô điều kiện, hay theo thuật ngữ của C.Shannon, hệ là bí mật hoàn toàn Như vậy, hệ là an toàn vô điều kiện, nếu độ bất định về bản rõ sau khi người thám

độ phức tạp như nhau)

3 An toàn tính toán: Hệ mật được xem là an toàn tính toán, nếu mọi phương pháp thám mã đã biết đều đòi hỏi một nguồn năng lực tính toán vượt mọi khả năng (kể cả phương tiện thiết bị ) tính toán của một kẻ tấn công

1.4 Thám mã chống lại hệ mật khoá công khai

Tính an toàn của một hệ mật được định nghĩa bằng một cuộc tấn công Các tấn công tích cực đã được mô hình hoá thành 3 mô hình thông thường Các mô hình này được sử dụng để phân tích các hệ mật mã trong tài liệu này[4]

1 Tấn công bản rõ được chọn (Chosen-plaintext attack -CPA)

Trang 14

Kẻ tấn công chọn bản rõ và sử dụng sự trợ giúp của hàm mã hoá để thu được bản mã tương ứng Mục đích của kẻ tấn công là phá vỡ hệ mật mã bằng cách sử dụng cặp bản rõ - bản mã

2 Tấn công chọn bản mã (Chosen-ciphertext attack -CCA)

Kẻ tấn công chọn bản mã và sử dụng sự trợ giúp của hàm giải mã để thu được bản rõ tương ứng Mục đích của nguời tấn công là phá vỡ hệ mật mã bằng cách sử dụng cặp bản rõ- bản mã Việc tấn công thành công nếu anh ta có thể lấy lại thông tin bản rõ nào đó từ một bản mã đích chặn bắt bởi người tấn công sau khi hàm giải mã kết thúc

3 Tấn công chọn thích hợp bản mã (Adaptive chosenciphertext attack CCA2)

-Đây là kiểu tấn công CCA trong đó sự trợ giúp của hàm giải mã của hệ mật

mã đích luôn sẵn sàng, ngoại trừ bản mã đích

Như vậy chúng ta có thể hình dung 3 kiểu tấn công này với các tình huống như sau:

1 Ở mô hình CPA, kẻ tấn công được quyền sở hữu một hàm mã hoá

2 Ở mô hình CCA kẻ tấn công được quyền sử dụng hàm giải mã: Hàm giải mã

sẽ dừng lại khi người tấn công đưa cho nó bản mã đích

3 Ở mô hình CCA2 kẻ tấn công được quyền sử dụng một hàm giải mã mà anh

ta muốn Trước hoặc sau khi kẻ tấn công có được bản mã đích, anh ta không cung cấp bản mã đích cho hàm giải mã

CPA và CCA được xem như là các mô hình thám mã chống lại hệ mật khoá khoá công khai trong đó mục tiêu của người tấn công là phá vỡ hệ mật mã đích bằng cách sử dụng cặp bản rõ-bản mã anh ta có được từ các kiểu tấn công Chúng ta nên chú ý đến

ba điểm sau đây được xác định cho một hệ mật khoá công khai[4]

1 Hàm mã hoá của hệ mật luôn dùng được đối với mọi người, do khi một khoá công khai được công khai thì mọi người dễ dàng điều khiển hoàn toàn hàm mã

Trang 15

hoá Mặt khác CPA có thể luôn được dùng để chống lại một hệ mật khoá công khai Vì vậy, chúng ta có thể gọi một tấn công đối với hệ mật khoá công khai

là CPA nếu việc tấn công không sử dụng bất kỳ hàm giải mã nào Do đó bất

kỳ hệ mật nào cũng phải chống lại CPA, nếu không nó không phải là một hệ mật mã sử dụng được

2 Thông thường, lý thuyết toán làm cơ sở cho hầu hết các hệ mật khóa công khai có một vài thuộc tính của một cấu trúc đại số như là: tính kết thúc, tính kết hợp, tính đồng cấu Kẻ tấn công có thể khai thác các thuộc tính này và thiết lập một bản mã qua một số tính toán khéo léo Nếu kẻ tấn công được trợ giúp bởi một phép giải mã, thì những tính toán khéo léo của anh ta có thể cho phép anh ta có được một số thông tin văn bản gốc, hoặc thậm chí khoá bí mật của hệ mật đích Do đó, hệ mật khoá công khai dễ bị tấn công bởi CCA và CCA2

3 Dường như CCA bị giới hạn Trong các ứng dụng người dùng bị tấn công thường không biết việc tấn công đó Do đó người dùng có thể không bao giờ biết khi nào nên bắt đầu dừng hỗ trợ sự trợ giúp giải mã Chúng ta thường giả

sử rằng người dùng bình thường không biết được sự tồn tại của việc giả mạo,

do đó thông thường sự trợ giúp của hàm giải mã luôn sẵn sàng Mặt khác, bất

kỳ hệ mật khoá công khai nào nên chống lại CCA do kẻ giả mạo luôn luôn tìm

ra cách để thực hiện sự trợ giúp của hàm giải mã

1.5 Sự cần thiết của việc xác minh hệ thống khóa công khai

Giả thiết rằng hệ mật khóa công khai là một hệ thống lý tưởng, không yêu cầu một kênh truyền an toàn để truyền khóa mã hóa Điều này ngụ ý rằng hai thực thể có thể truyền thông tin cho nhau bằng một kênh không an toàn mà không cần phải gặp nhau để trao đổi khóa Thật chẳng may điều này không đảm bảo Hình 3 minh họa một

kẻ giả mạo có thể làm cho hệ thống thất bại mà không cần phải phá vỡ hệ thống mã hóa Đây chính là kiểu giả mạo về danh nghĩa Ở tình huống này người giả mạo làm giả thực thể B bằng cách gửi cho thực thể A một khoá công khai e’ mà A nghĩ rằng đó

Trang 16

là khóa công khai của B Kẻ giả mạo chặn lấy thông điệp đƣợc mã hoá do A gửi cho

B, giải mã với khoá bí mật riêng d’, rồi lại mã hoá thông điệp bằng khoá công khai e của A và gửi nó cho B Điều này cho thấy cần thiết phải xác minh khoá công khai để

có đƣợc sự xác minh nguồn gốc dữ liệu của khoá công khai A phải đƣợc thuyết phục rằng anh ta đang mã hóa bằng khoá công khai hợp lệ của B Do vậy, công nghệ mật

mã khoá công khai phải chấp nhận một số giải pháp để giải quyết vấn đề này

1.5 So sánh hệ mật khóa đối xứng và hệ mật khóa công khai

Sơ đồ khóa đối xứng và khóa công khai có những điểm thuân lợi và không thuận lợi khác nhau Phần này nêu ra những đặc điểm này

Hình 1.3 Minh hoạ Kẻ giả mạo tấn công vào quá trình trao đổi thông tin giữa hai

thực thể

Trang 17

1.5.1 Lợi thế của hệ mật khóa đối xứng

1 Mật mã khóa đối xứng có tốc độ xử lý cao Sự bổ sung phần cứng nào đó

có thể thu được tốc độ mã hoá hàng trăm mega byte trên một giây

2 Khóa dùng cho hệ mật khóa đối xứng tương đối ngắn

3 Hệ mật khóa đối xứng có thể sử dụng như một nguyên thuỷ để tạo ra nhiều công nghệ mật mã khác nhau bao gồm bộ sinh số giả ngẫu nhiên, hàm băm, lược đồ ký số có hiệu suất tính toán cao

4 Hệ mật khóa đối xứng có thể được sử dụng để xây dựng các hệ mật tốt hơn Các phép biến đổi đơn giản và dễ dàng phân tích

1.5.2 Điểm yếu của hệ mật khóa đối xứng

1 Trong bài toán truyền thông tin giữa hai thực thể thì khoá phải được giữ

bí mật ở cả hai người

2 Trong một mạng lớn thì có nhiều cặp khóa cần phải quản lý, do đó muốn quản lý khoá hiệu quả yêu cầu sử dụng một thành phần thứ ba được tin cậy không điều kiện

3 Việc truyền thông tin giữa hai thực thể A và B trong một hệ mật khoá đối xứng yêu cầu thay đổi khoá thường xuyên, có thể là phải thay đổi đối với mỗi phiên truyền tin

4 Công nghệ chữ ký số dựa trên hệ mật khóa đối xứng càng lớn mạnh thì yêu cầu các khoá phải lớn hơn đối với việc xác minh công khai hoặc phải

sử dụng thành phần thứ ba tin cậy

1.5.3 Lợi thế của hệ mật khóa công khai

1 Chỉ cần giữ bí mật đối với khoá bí mật

2 Việc quản lý khóa trong một mạng yêu cầu sự hiện diện của duy nhất một bộ phận được tin cậy chứ không phải là một thành phần thứ ba tin

Trang 18

cậy không điều kiện Phụ thuộc vào chế độ sử dụng, thành phần thứ ba được tin cậy có thể chỉ yêu cầu chế độ “off-line’ chứ không phải chế độ thời gian thực

3 Phụ thuộc vào chế độ sử dụng, một cặp khoá khoá bí mật và khoá công khai vẫn không được thay đổi đối với một định kỳ thời gian đáng kể Ví

dụ qua nhiều phiên truyền tin hoặc thậm chí vài năm

4 Nhiều lược đồ ký khóa công khai mang lại nhiều công nghệ chữ ký số tương đối hiệu quả Khoá được sử dụng để mô tả hàm kiểm tra công khai nhỏ hơn nhiều so với bản sao của khóa đối xứng

5 Trong một mạng lớn, số lương khoá cần thiết ít hơn nhiều so với trường hợp dùng khóa đối xứng

1.5.4 Điểm yếu của hệ mật khóa công khai

1 Tốc độ xử lý đối với hầu hết các phương pháp mã hóa khóa công khai chậm hơn so với mã hoá khóa đối xứng

2 Kích thước khoá lớn hơn khóa đối xứng rất nhiều

3 Không có lược đồ khóa công khai nào được chứng minh là an toàn Lược đồ mã hoá khoá công khai hiệu quả nhất được phát minh để khẳng định tính an toàn của chúng dựa vào một tập hợp nhỏ các bài toán lý thuyết số được thừa nhận là khó

4 Hệ mật khoá công khai công không có bề dày lịch sử bằng hệ mật khóa đối xứng Nó đã được phát minh vào giữa thập niên 1970

Trang 19

Bảng tổng kết sự so sánh giữa hệ mật khóa đối xứng và hệ mật khóa công khai

Đặc điểm Hệ mật khoá đối xứng Hệ mật khoá công khai

Hệ mật này có ưu điểm lớn là

có thể dùng khoá ngẫu nhiên

vì thế mà có thể đạt tới độ mật lý tưởng Hệ mật này thường được dùng để mã hoá các thông tin được phân loại

là tuyệt mật và tối mật

Hệ mật không đối xứng chủ yếu được dùng trên các mạng thông tin công cộng như Internet ở đó sự phân phối khoá bí mật là hết sức khó khăn Hệ mật này dùng để xác thực và chữ ký

số

Lượng

khoá Rất lớn Không lớn

Phân phối Phức tạp Đơn giản (công khai hoá)

Đo độ mật Không thể giải được bằng

tính toán (lý tưởng)

Đo bằng độ phức tạp tính toán (thời gian để giải bài toán ngược của hàm một chiều)

Dùng khoá Một lần, không trùng Nhiều lần

- Xác thực và chữ ký số

- Sử dụng để phân phối khoá khởi điểm cho hệ mật khó đối xứng

- Truyền thông

Trang 20

1.6 Hệ chữ ký số

1.6.1 Định nghĩa hệ chữ ký số

Một sơ đồ chữ ký bao gồm các thành phần sau đây

1 M là một tập hữu hạn các thông báo có thể có

2 S là một tập hữu hạn các chữ ký có thể có

3 K là một tập hữu hạn các khoá ký và K' là tâp hữu hạn khoá kiểm thử

4 Một thuật sinh khoá hiêu quả Gen : N K  K' trong đó K là khoá bí mật, K' là khoá công khai

5 Thuật toán ký Sign : M  K S

6 Thuật toán kiểm thử Ver : M  S  K'  {true, false}

Với mỗi sk  K và m  M nào đó, chúng ta biểu diễn phép toán ký bởi

s Signsk(m) với ý nghĩa " s là một chữ ký của m và được tạo ra bằng cách sử dụng khoá sk"

Với mỗi khoá bí mật sk, gọi pk là khoá công khai tương ứng với nó, và với mỗi m 

M, s  S điều cần thiết là: Verifypk(m, s) = true nếu Signsk(m)s (mod N) ngược lại trả về false

Chữ ký số khóa công khai dựa trên nền tảng mật mã hóa khóa công khai Để có thể trao đổi thông tin trong môi trường này, mỗi người sử dụng có một cặp khóa: một công khai và một bí mật Khóa công khai được công bố rộng rãi còn khóa bí mật phải được giữ kín và không thể tìm được khóa bí mật nếu chỉ biết khóa công khai

Với sơ đồ trên, mỗi chủ thể sở hữu một bộ khoá K và K', công bố công khai khoá để mọi người có thể kiểm thử chữ ký của mình, và giữ bí mật khoá thực hiện chữ ký trên các thông báo mà mình muốn gửi đi Các hàm Ver và Sign phải tính được một cách dễ dàng (trong thời gian đa thức), tuy nhiên hàm Sign là khó tính được nếu không biết khoá bí mật, điều này đảm bảo bí mật cho việc ký, tức là đảm bảo chống giả mạo chữ

Trang 21

Sơ đồ tạo và kiểm thử chữ ký số đƣợc minh họa nhƣ sau:

Toàn bộ quá trình gồm 3 thuật toán: Thuật toán tạo khóa, thuật toán tạo chữ ký số, thuật toán kiểm tra chữ ký số

Hình 1.4 : Minh hoạ tiến trình ký và kiểm tra chữ ký Xét ví dụ sau: Bob muốn gửi thông tin cho Alice và muốn Alice biết thông tin đó thực

sự do chính Bob gửi Bob gửi cho Alice bản tin kèm với chữ ký số Chữ ký này đƣợc tạo ra với khóa bí mật của Bob Khi nhận đƣợc bản tin, Alice kiểm tra sự thống nhất giữa bản tin và chữ ký bằng thuật toán kiểm tra sử dụng khóa công cộng của Bob Bản

Trang 22

chất của thuật toán tạo chữ ký đảm bảo nếu chỉ cho trước bản tin, rất khó (gần như không thể) tạo ra được chữ ký của Bob nếu không biết khóa bí mật của Bob Nếu phép thử cho kết quả đúng thì Alice có thể tin tưởng rằng bản tin thực sự do Bob gửi

Thông thường, Bob không ký trên toàn bộ bản tin với khóa bí mật mà chỉ thực hiện với giá trị băm của bản tin đó Điều này khiến việc ký trở nên đơn giản hơn và chữ ký ngắn hơn Tuy nhiên nó cũng làm nảy sinh vấn đề khi 2 bản tin khác nhau lại cho ra cùng một giá trị băm Đây là điều có thể xảy ra mặc dù xác suất rất thấp

1.6.2 Các ưu điểm của chữ ký số

Việc sử dụng chữ ký số mang lại một số lợi ích sau:

1 Khả năng nhận thực

Các hệ thống mật mã hóa khóa công khai cho phép mã hóa văn bản với khóa bí mật mà chỉ có người chủ của khóa biết Để sử dụng chữ ký số thì văn bản không cần phải được mã hóa mà chỉ cần mã hóa hàm băm của văn bản đó (thường có độ dài cố định và ngắn hơn văn bản) Khi cần kiểm tra, bên nhận tính lại giá trị băm và kiểm tra với chữ ký của văn bản nhận được Nếu 2 giá trị này phù hợp thì bên nhận có thể tin tưởng rằng văn bản xuất phát từ người sở hữu khóa bí mật Tất nhiên là chúng ta không thể đảm bảo 100% là văn bản không bị giả mạo vì hệ thống vẫn có thể bị phá vỡ

Vấn đề nhận thực đặc biệt quan trọng đối với các giao dịch tài chính Chẳng

hạn một chi nhánh ngân hàng gửi một gói tin về trung tâm dưới dạng (a, b), trong đó a

là số tài khoản và b là số tiền chuyển vào tài khoản đó Một kẻ lừa đảo có thể gửi một

số tiền nào đó để lấy nội dung gói tin và truyền lại gói tin thu được nhiều lần để thu lợi (tấn công truyền lại gói tin) Vì vậy, cần có biện pháp chống lại tấn công này

2 Tính toàn vẹn

Cả hai bên tham gia vào quá trình thông tin đều có thể tin tưởng là văn bản không bị sửa đổi trong khi truyền vì nếu văn bản bị thay đổi thì hàm băm cũng sẽ thay đổi và lập tức bị phát hiện Quá trình mã hóa sẽ ẩn nội dung của gói tin đối với bên thứ

3 nhưng không ngăn cản được việc thay đổi nội dung của nó Một ví dụ cho trường

Trang 23

hợp này là tấn công đồng cấu: tiếp tục ví dụ nhƣ ở trên, một kẻ lừa đảo gửi 1.000.000

đồng vào tài khoản của a, chặn gói tin (a, b) mà chi nhánh gửi về trung tâm rồi gửi gói tin (a, b 3 ) thay thế để lập tức trở thành tỷ phú!(nếu gói tin (a, b) không đƣợc ký)

3 Tính không thể phủ nhận

Trong giao dịch, một bên có thể từ chối nhận một văn bản nào đó là do mình gửi Để ngăn ngừa khả năng này, bên nhận có thể yêu cầu bên gửi phải gửi kèm chữ ký số với văn bản Khi có tranh chấp, bên nhận sẽ dùng chữ ký này nhƣ một chứng cứ để bên thứ ba giải quyết Tuy nhiên, khóa bí mật vẫn có thể bị lộ

và tính không thể phủ nhận cũng không thể đạt đƣợc hoàn toàn

Trang 24

Chương 2 NGHIÊN CỨU HỆ MẬT VÀ CHỮ KÝ SỐ RSA

2.1 Tính an toàn các thuật toán mã hoá

Trong phạm vi của hệ mật khoá công khai, các thuật toán mã hoá giáo khoa thường có một tính chất không an toàn đuợc phát biểu ở tính chất sau:

Tính chất 1 -Tính không an toàn của các thuật toán mã hoá gíáo khoa

Trong pham vi của mục này, tính an toàn cho một hệ mật được xem xét theo hai nghĩa sau đây:

1 An toàn All-or-nothing: Đối với một bản mã là kết quả của một thuật toán

mã hoá nào đó, nhiệm vụ của kẻ tấn công là lấy lại toàn bộ khối bản rõ có kích thước được qui định rõ bởi một tham số an toàn của hệ mật mã; hoặc đối với một cặp bản rõ -bản mã có được qua một phép mã hoá đã cho, nhiệm vụ của kẻ tấn công là phát hiện toàn bộ khoá bí mật cơ sở hoặc là thất bại Chúng ta nên chú ý đặc biệt đối với nghĩa của từ "nothing" Nó có nghĩa là kẻ tấn công không có bất kỳ sự hiểu biết nào về sự bí mật đích trước hoặc sau khi tấn công

2 Kẻ tấn công bị động: Kẻ tấn công không điều khiển hoặc sửa đổi bản mã khi

sử dụng dữ liệu anh ta được sở hữu, và không yêu cầu chủ sở hữu khoá cung cấp dịch vụ mã hoá hoặc giải mã

Đầu tiên chúng ta giải thích tại sao tính chất 1.1 là tính chất không an toàn Cụ thể là,

dữ liệu thuần tuý có thông tin phụ không bí mật đối với kể tấn công Chẳng hạn như một số dữ liệu luôn ở trong một giới hạn nhỏ: đa số tiền lương thường là ít ỏi, hoặc nếu có nhiều hơn thì cũng chỉ là một con số có ý nghĩa rất nhỏ trong mật mã Một ví

dụ khác đó là một mật khẩu thường là một xâu bit tạo thành tám ký tự Thông thường, biết các thông tin phụ giúp kẻ giả mạo thành công và có được toàn bộ bản rõ

Trang 25

Tính chất 1.2 cũng không an toàn bởi lý do sau đây Chúng ta không nên mong đợi một kẻ tấn công tốt bụng và luôn ở thế bị động Hành vi điển hình của kẻ tấn công là

sẽ thử tất cả các cách mà anh ta có, bao gồm việc dàn xếp để liên hệ với người dùng đích, gửi một bản mã tới người sau để được giải mã với bản rõ được trả về cho người trước đó Cách tương tác này được xem như là một người dùng (một sở hữu khoá công khai) cung cấp một dịch vụ giải mã ngẫu nhiên cho kẻ tấn công [4]

2.2 Hệ mật RSA

Trong mật mã học, RSA là một thuật toán mật mã hóa khóa công khai Đây 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ã học 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 với điều kiện độ dài 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

Thuật toán RSA được MIT đăng ký bằng sáng chế tại Hoa Kỳ vào năm 1983 (Số đăng

ký 4, 405, 829) Bằng sáng chế này hết hạn vào ngày 21 tháng 9 năm 2000 Tuy nhiên,

do thuật toán đã được công bố trước khi có đăng ký bảo hộ nên sự bảo hộ hầu như không có giá trị bên ngoài Hoa Kỳ Ngoài ra, nếu như công trình của Clifford Cocks

đã được công bố trước đó thì bằng sáng chế RSA đã không thể được đăng ký

2.2.1 Quá trình tạo khóa

Giả sử Alice và Bob 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, Alice đầu tiên 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:

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

Trang 26

Tính: n = p.q

Tính: giá trị hàm số Ơle (n)(p1)(q1)

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

Tính: d sao cho de 1(mod(n))

Một số lưu ý

Các số nguyên tố thường được chọn bằng phương pháp thử xác suất

Các bước 4 và 5 có thể được thực hiện bằng giải thuật Euclid mở rộng

Bước 5 có thể viết cách khác: Tìm số tự nhiên x sao cho d =

e

q p

x(  1 )(  1 )  1

cũng là

số tự nhiên Khi đó sử dụng giá trị d mod (p-1)(q-1)

Từ bước 3, PKCS#1 v2.1 sử dụng λ = LCM(p-1, q-1) thay cho (n)(p1)(q1)

Khóa công khai bao gồm: n, e- số mũ công khai (số mũ mã hóa)

Khóa bí mật bao gồm: n, d- số mũ bí mật (số mũ giải mã)

2.2.2 Quá trình mã hóa

Giả sử Bob muốn gửi đoạn thông tin M cho Alice Đầu tiên Bob chuyển M thành một số m < n theo một hàm có thể đảo ngược (từ m có thể xác định lại M) được

thỏa thuận trước

Lúc này Bob có m và biết n cũng như e do Alice gửi Bob sẽ tính c là bản mã hóa của

m theo công thức c = m e mod n

Hàm trên có thể tính dễ dàng sử dụng phương pháp tính hàm mũ (theo môđun) bằng

(thuật toán bình phương và nhân) Cuối cùng Bob gửi c cho Alice

Trang 27

m ed m (mod p) và m ed m (mod q)

Do p và q là hai số nguyên tố cùng nhau, áp dụng định lý số dư Trung Quốc, ta có:

m ed m (mod pq)

hay c d m (mod n)

2.2.4 Chuyển đổi văn bản rõ

Trước khi thực hiện mã hóa, ta phải thực hiện việc chuyển đổi văn bản rõ

(chuyển đổi từ M sang m) sao cho không có giá trị nào của M tạo ra văn bản mã không

an toàn Nếu không có quá trình này, RSA sẽ gặp phải một số vấn đề sau:

Nếu m = 0 hoặc m = 1 sẽ tạo ra các bản mã có giá trị là 0 và 1 tương ứng

Khi mã hóa với số mũ nhỏ (chẳng hạn e = 3) và m cũng có giá trị nhỏ, giá trị m e

2553 nhỏ hơn giá trị n chấp nhận được Những bản mã này sẽ dễ dàng bị phá mã

Để tránh gặp phải những vấn đề trên, trên thực tế RSA thường bao gồm một hình thức

chuyển đổi ngẫu nhiên hóa m trước khi mã hóa Quá trình chuyển đổi này phải đảm bảo rằng m không rơi vào các giá trị không an toàn Sau khi chuyển đổi, mỗi bản rõ

khi mã hóa sẽ cho ra một trong số khả năng trong tập hợp bản mã Điều này làm giảm

Trang 28

tính khả thi của phương pháp tấn công lựa chọn bản rõ (một bản rõ sẽ có thể tương ứng với nhiều bản mã tuỳ thuộc vào cách chuyển đổi)

Một số tiêu chuẩn, chẳng hạn như PKCS, đã được thiết kế để chuyển đổi bản rõ trước khi mã hóa bằng RSA Các phương pháp chuyển đổi này bổ sung thêm bít vào M Các phương pháp chuyển đổi cần được thiết kế cẩn thận để tránh những dạng tấn công phức tạp tận dụng khả năng biết trước được cấu trúc của bản rõ Phiên bản ban đầu của PKCS dùng một phương pháp đặc ứng (ad-hoc) mà về sau được biết là không an toàn trước tấn công lựa chọn bản rõ thích ứng (adaptive chosen ciphertext attack) Các phương pháp chuyển đổi hiện đại sử dụng các kỹ thuật như chuyển đổi mã hóa bất đối xứng tối ưu (Optimal Asymmetric Encryption Padding - OAEP) để chống lại tấn công dạng này Tiêu chuẩn PKCS còn được bổ sung các tính năng khác để đảm bảo an toàn cho chữ ký RSA (Probabilistic Signature Scheme for RSA - RSA-PSS)

2.2.5 Tính không an toàn của hệ mật RSA

Mục này khảo sát tính an toàn của thuật toán mã hoá RSA Đối với trường hợp khoá ngẫu nhiên và thông điệp ngẫu nhiên, sự tồn tại của một CPA hiệu quả chống lại hệ mật RSA có nghĩa là giả thuyết RSA phải thất bại

Định nghĩa 1: Hệ mật RSA là an toàn "all-or-nothing" chống lại CPA nếu và chỉ nếu

giả thuyết RSA vững chắc

Ở đây, ý nghĩa của "all-or-nothing" đã được giải thích ở phần 2.1 và CPA đã được nhắc đến ở mục 1.4

Đầu tiên chúng ta hãy tìm hiểu an toàn kiểu "all-or-nothing" Từ "all" ở đây có nghĩa

là phải tìm toàn bộ khối bản rõ trong trường hợp thông thường: thông điệp có kích thước của modulo Trong các ứng dụng thực tế, một bản rõ cụ thể chứa vài thông tin phụ không bí mật Hệ mật RSA không che giấu vài thông tin phụ về một bản rõ Ví

dụ, nếu một bản rõ được biết như là một con số bé hơn 1.000.000 (ví dụ một cuộc đấu giá bí mật hoặc là số tiền lương), sau đó được cho một bản mã, một kẻ tấn công có thể tìm ra bản

Trang 29

rõ trong quá trình mã hoá trial-and-error

Thông thường, cho một bản rõ m (< N), với một xác suất đáng kể, chỉ cần m lần thử

để xác định m nếu bộ nhớ đáp ứng được kích thước m Tính chất nhân của hàm RSA như sau:

e e e

m m m

m1 2) 1 2

(    c1c2(mod N)

Phân tích bản rõ thành thừa số có được các bản mã tương ứng Thường một bài toán phân tích thừa số của bản mã RSA là khó do tính chất biến đổi hỗn hợp của hàm mã hoá sẽ là cách chung nhất làm cho một bản mã có kích thước của modulo đó Tuy nhiên tính chất luỹ thừa cho thấy rằng nếu một bản rõ dễ dàng phân tích thành thừa số thì bản mã cũng dễ dàng như thế Tính lỏng lẻo của sự phân tích thành thừa số nguyên

tố dẫn đến một cuộc tấn công gặp ở giữa.[4]

Tấn công gặp ở giữa và tấn công tích cực vào hệ mã RSA

Trang 30

Từ (1), (2), một tấn công vào ở giữa, điều kiện ở (3) sẽ chỉ ra trước 22

l

bước tính toán e

i (mod N) Như vậy thì Malice biết bản rõ i, j và anh ta

khôi phục lại m = i.j

Hãy làm một phép đo chi phí của Malice Không gian lưu trữ cho cơ sở dữ liệu là

có thể thực hiện với một xác suất đáng kể (để phân tích khoá DES thành hai số nguyên

28 bit), sử dụng không gian lưu trữ 228.1024 = 238 bit =32 gigabit và tính toán đồng dư thức luỹ thừa 229 Chi phí không gian lưu trữ và thời gian có thể đáp ứng được bởi máy tính cá nhân có cấu hình tốt, trong khi tìm kiếm khóa DES trực tiếp từ quá trình

mã hoá yêu cầu tính toán đồng dư thức luỹ thừa 256 có thể không thực hiện được thậm chí sử dụng một thiết bị tốt

Bây giờ chúng ta biết rằng chúng ta không nên sử dụng hệ mật RSA để mã hoá một khoá hoặc mật khẩu ngắn hơn 264bit Điều gì xảy ra nếu trong một ứng dụng chúng ta phải thực hiện mã hoá RSA cho các số nguyên bé, thậm chí là một thông điệp dài bằng

Trang 31

một bit Như vậy chúng ta nên sử dụng các phương pháp mã hoá.được giới thiệu ở chương 3

Trang 32

Cần chú ý rằng các phương pháp chuyển đổi bản rõ, chẳng hạn như lược đồ ký PSS giữ vai trò quan trọng đối với quá trình mã hóa cũng như chữ ký điện tử và không được dùng khóa chung cho đồng thời cho cả hai mục đích trên

RSA-2.2.2 Hệ thống ký hiệu an toàn cho lược đồ ký số

Tính chất 1-Hệ thống ký hiệu an toàn cho lược đồ ký

Chúng ta nói rằng một lược đồ ký là an toàn nếu một kẻ giả mạo không thể tính toán được để đưa ra một cặp bản rõ-chữ ký hợp lệ Nghĩa là, kẻ tấn công có được khóa công khai và sự mô tả của lược đồ ký, được yêu cầu đưa ra một cặp bản rõ-chữ ký hợp

lệ không bao giờ được sử dụng bởi người ký đích Kẻ tấn công là không hợp lệ nếu không có gắng đưa ra sự giả mạo thông qua các nhiệm vụ, ví dụ sử dụng các cặp bản rõ-chữ ký có sẵn khác hoặc liên lạc với người ký đích của quá trình ký để sử dụng các chữ ký hợp lệ trên các bản rõ qua lựa chọn của anh ta.[4]

Hệ thống an toàn cho lược đồ ký này không đầy đủ cho các ứng dụng bởi vì tính chất này yêu cầu rằng kẻ tấn công quá yếu hoặc môi trường ký cực kỳ khó để tấn công Trong thực tế, cặp bản rõ-chữ ký là riêng cho một khoá công khai và một lược đồ ký luôn dùng được vì chúng không có gì bí mật Thường thì kẻ tấn công có quyền yêu cầu một người ký sử dụng các chữ ký trên các bản rõ qua lựa chọn của anh ta Một kiểu tấn công như thế là hợp lý vì nó có thể chọn các bản rõ phù hợp Tấn công theo kiểu CPA, kẻ tấn công được cho một bản rõ đích hoặc có thể chọn các thông điệp dựa vào bản rõ đích (có thể thực hiện các phép biến đổi đại số trên bản rõ đích) và gửi thông điệp chính anh ta chọn cho người ký đích để chúng được ký Điều này dường như người ký trợ giúp kẻ tấn công sinh ra chữ ký giả mạo Nhiệm vụ của kẻ giả mạo là giả mạo một chữ ký trên bản rõ đích

Chính bản thân một khoá công khai không cung cấp một "dịch vụ giải mã ngờ nghệch" cho kẻ tấn công Mức độ thận trọng có thể là hợp lý nếu việc sở hữu khoá không đủ mạnh, thậm chí yêu cầu người dùng có tính thận trọng cao hơn không phải

là giải pháp đúng cho các tấn công thích hợp Trong trường hợp ký, chúng ta không thể yêu cầu lâu hơn hoặc khuyến cáo người dùng cung cấp "các dịch vụ ký ngờ

Trang 33

Bài toán RSA là bài toán tính căn bậc e môđun n (với n là hợp số): tìm số m sao cho

m e c mod n, trong đó (e, n) chính là khóa công khai và c là bản mã Hiện nay phương pháp triển vọng nhất giải bài toán này là phân tích n ra thừa số nguyên tố Khi thực hiện được điều này, kẻ tấn công sẽ tìm ra số mũ bí mật d từ khóa công khai và có thể giải mã theo đúng quy trình của thuật toán Nếu kẻ tấn công tìm được 2 số nguyên tố p

và q sao cho: n = pq thì có thể dễ dàng tìm được giá trị (p-1)(q-1) và qua đó xác định d

từ e Chưa có một phương pháp nào được tìm ra trên máy tính để giải bài toán này trong thời gian đa thức (polynomial-time) Tuy nhiên người ta cũng chưa chứng minh

được điều ngược lại (sự không tồn tại của thuật toán)

Số lớn nhất có thể được phân tích ra thừa số nguyên tố có độ dài 663 bít với phương pháp phân tán trong khi khóa của RSA có độ dài từ 1024 tới 2048 bít Một số chuyên gia cho rằng khóa 1024 bít có thể sớm bị phá vỡ (cũng có nhiều người phản đối việc này) Với khóa 4096 bít thì hầu như không có khả năng bị phá vỡ trong tương lai gần

Do đó, người ta thường cho rằng RSA đảm bảo an toàn với điều kiện n được chọn đủ lớn Nếu n có độ dài 256 bít hoặc ngắn hơn, nó có thể bị phân tích trong vài giờ với

máy tính cá nhân dùng các phần mềm có sẵn Nếu n có độ dài 512 bít, nó có thể bị phân tích bởi vài trăm máy tính tại thời điểm năm 1999 Vì vậy hiện nay người ta khuyến cáo sử dụng khóa có độ dài tối thiểu 2048 bít.[12]

Trang 34

Chương 3 CHỮ KÝ SỐ RSA-PSS

3.1 Tổng quan về sơ đồ chữ ký RSA-PSS

Mật mã xác suất là một ý tưởng được đề xuất bởi Goldwasser và Micali từ năm

1984, xuất phát từ yêu cầu giải quyết một vấn đề sau đây: Giả thiết ta có một hệ mật

mã khoá công khai, và ta muốn lập mật mã cho bản rõ chỉ gồm một bit Điều đó thường gặp khi ta muốn bí mật truyền đi một thông tin chỉ có nội dung là có hoặc không, tức là một thông tin đặc biệt quan trọng nhưng chỉ gồm một bit Nếu ta dùng

hệ mật mã công khai thường, thì một bản mật mã đã được truyền đi sẽ là ek(0) hoặc

ek(1), và khi lấy được bản mã truyền đi trên kênh truyền thông tin công cộng, chỉ cần

so sánh bản mã nhận được đó với hai bản ek(0) và ek(1) đã được tính sẵn là đủ biết được thông tin mật được truyền đi là 0 hay 1 Các hệ mật khoá công khai sở dĩ có được tính bảo mật là vì từ thông tin bản mã khó lòng khai thác được thông tin gì về bản rõ, nhưng rõ ràng điều đó không còn được đảm bảo nếu số các bản rõ là rất ít, chẳng hạn như khi các bản rõ có độ dài cực ngắn, hay trong trường hợp trên, số các bản rõ chỉ là hai, cụ thể là 0 và 1.[2]

Mục đích của việc xây dựng mật mã xác suất là để đảm bảo không một thông tin nào

về bản rõ có thể khai thác được (trong thời gian đa thức) từ bản mã; điều này đối với các hệ mật khoá công khai, có thể được thực hiện bằng cách tạo cho một bản rõ nhiều bản mã khác nhau theo cách ngẫu nhiên với việc sử dụng các số ngẫu nhiên trong tiến trình lập mã

“PSS” ám chỉ tới lược đồ chữ ký xác suất (Probabilistic Signature Scheme) khởi đầu bởi Mihir Bellare và Phillip Rogaway Công trình của Bellare và Rogaway đã nâng mức trong cộng đồng nghiên cứu cho một lược đồ chữ ký an toàn Thực hành dựa trên

hệ chữ ký RSA RSA-PSS là một cập nhập kết quả của họ dành cho các chuẩn công nghiệp

Trang 35

RSA-PSS gần đây đã được đưa vào các công cụ phần mềm của hãng RSA Security là RSA BSAFE Crypto-C và Crypto-J toolkits.[10]

3.1.1 RSA-PSS hoạt động như thế nào ?

RSA-PSS, giống như hầu hết các lược đồ chữ ký số, tuân theo kiểu mẫu “băm-rồi-ký’

Giả sử M là văn bản cần phải ký Chữ ký được tính trên văn bản M theo 3 bước:

1 Áp dụng hàm băm một chiều vào văn bản M để sinh ra giá trị băm mHash

2 Biến đổi giá trị băm mHash thành văn bản đã mã hoá EM

3 Áp dụng thành tố chữ ký vào văn bản đã mã hoá EM sử dụng khoá bí mật để sinh ra chữ ký S

Điều đó có thể được biểu diễn ở dạng công thức như sau:

S = SigPrim (khoá bí mật, Transform (Hash (M)))

Ở đây, SigPrim ký hiệu thành tố chữ ký Với hệ mật RSA, đó là công thức kinh điển:

S = EM d mod n với (n, d) là khoá bí mật, còn EM và S được xem như các số nguyên

Giả thiết rằng văn bản đã mã hoá có thể được khôi phục từ chữ ký, đó là trường hợp cho các lược đồ được mô tả ở đây, chữ ký được kiểm tra trong 3 bước:

1 Áp dụng hàm băm một chiều vào văn bản để sinh ra giá trị băm mHash

2 Áp dụng thành tố kiểm định vào chữ ký S để khôi phục văn bản đã mã hoá

EM

3 Xác định xem văn bản đã mã hoá EM có là biến đổi hợp lệ của giá trị băm mHash (Nếu chỉ có một biến đổi hợp lệ cho mỗi giá trị băm, thì người ta có thể chỉ cần biến đổi mHash một lần và so sánh với EM; nhưng nếu có hơn

một biến đổi hợp lệ, thì quá trình xử lý tiếp là cần thiết)

Trong lược đồ chữ ký PKCS #1 v1.5, thao tác Transform bao gồm một phép đệm cố định, giá trị băm đơn thuần được nối vào đầu bằng một chuỗi tiếp đầu ngữ có dạng 00

01 ff ff … ff ff 00 (theo dạng hex), sau đó là một chuỗi định ra hàm băm Trong

Trang 36

RSA-PSS, thao tác Transform là ngẫu nhiên hơn nhiều Thay cho một phép đệm cố định, lược đồ sinh ra một giá trị “salt” ngẫu nhiên, sau đó áp dụng hàm băm và hàm sinh mặt nạ vào giá trị salt và giá trị băm để sinh ra văn bản mã hoá Biến đổi được minh hoạ ở dưới đây, bao gồm các bước sau:

1 Sinh ra một giá trị ngẫu nhiên salt

2 Nối phần đệm cố định, giá trị băm mHash và salt để tạo ra chuỗi M’

3 Áp dụng hàm băm vào chuỗi M’ để tính ra giá trị băm H

4 Nối phần đệm cố định và giá trị salt để tạo ra khối dữ liệu DB

5 Áp dụng hàm sinh mặt nạ vào chuỗi H để tính ra giá trị mặt nạ dbMask

6 Áp dụng phép toán XOR đối với giá trị mặt nạ dbMask với khối dữ liệu DB

có đúng hay không

Do có hàm băm và hàm sinh mặt nạ, văn bản đã được mã hoá EM hầu như hoàn toàn

ngẫu nhiên đến mức không có một cấu trúc đặc biệt có thể phân biệt nó với chuỗi ngẫu nhiên có cùng độ dài với giả thiết rằng 2 hàm được xem như là các “hộp đen” (đó chính là “các tiên đoán ngẫu nhiên”) Chỉ có các phần không ngẫu nhiên là phần đệm

bc ở cuối (được đưa vào để tương thích với các chuẩn khác) và có thể một số bit 0 ở

đầu (khi EM được xem như là số nguyên modulo n) Thêm vào đó, phép biến đổi là được ngẫu nhiên hoá bởi vì giá trị salt ngẫu nhiên: có nhiều bản mã hoá có thể, cho nên có nhiều chữ ký có thể cho một văn bản đã cho M Điều này giúp đỡ cho phân tích

độ an toàn được mô tả về sau

Trang 37

Hình 3.1 Minh hoạ hoạt động của lược đồ ký RSA-PSS

3.1.2 Ưu thế của RSA-PSS

Ưu thế chính của RSA-PSS đối với lược đồ chữ ký PKCS#1 v1.5 kinh điển ở chỗ các phương pháp hiện đại về phân tích độ an toàn có thể liên hệ độ an toàn của nó với độ an toàn của bài toán RSA Trong khi chưa có tấn công nào được biết đối với lược đồ kinh điển và việc giải bài toán RSA cơ sở (tức là phân tích modulus) là phương pháp tốt nhất được biết để giả mạo chữ ký, thì không có một mối liên hệ nào giữa lược đồ chữ ký số PKCS#1 v1.5 với bài toán RSA được chứng minh RSA-PSS, ngược lại, có một chứng minh như vậy nếu người ta mô hình hoá các hàm băm của nó như là các “tiên đoán ngẫu nhiên” như vẫn thường được làm

Trong các năm gần đây có một xu hướng hướng tới các kỹ thuật mật mã được gọi là

Trang 38

“an toàn chứng minh được” Nếu một lược đồ chữ ký không có chứng minh an toàn, thì có thể về mặt lý thuyết các chữ ký dễ bị giả mạo, trong khi bài toán nằm dưới vẫn

là khó giải Mặc dù theo lý thuyết độ phức tạp không cho phép chúng ta chứng minh rằng bài toán cơ sở, tức là RSA, là chắc chắn khó giải, chúng ta sẽ có một sự tin tưởng rằng nếu bài toán đó là thực sự khó giải, thì các chữ ký cũng khó giả mạo như vậy RSA-PSS mang lại tin cậy cao độ vào việc thu gọn khoảng cách giữa giả thuyết bài toán RSA là khó giải và khẳng định rằng các chữ ký là khó giả mạo Thực ra, RSA-PSS có một trong những khoảng cách nhỏ nhất như vậy trong số các kỹ thuật “an toàn chứng minh được” hiện thời; theo cách nói thông thường, phép chứng minh cho độ an toàn của RSA-PSS là rất “chặt” Việc ngẫu nhiên hoá trong lược đồ chữ ký đóng một vai trò quan trọng trong việc đạt được tính chặt và là một trong những đóng góp cơ bản từ lược đồ PSS của Bellare và Rogaway

Một ưu thế nữa của RSA-PSS là, do việc ngẫu nhiên hoá, kẻ tấn công không biết xem

trước văn bản đã được mã hoá EM như thế nào Điều này làm cho các tấn công “phân

tích lỗi” kiểu như được đề xuất bởi Bellcore một số năm trước đây khó có thể thực hiện được (xem RSA Laboratories’ [14])

3.1.3 Các công trình chuẩn

RSA-PSS đã được thêm vào phiên bản 2.1 của PKCS #1: RSA Cryptography Standard, nó đã được công bố bởi RSA Laboratories vào tháng 6 năm

2002 Tài liệu này đã được công bố lại là IETF RFC 3447

Lược đồ chữ ký số này đã được khuyến cáo bởi dự án NESSIE của châu Âu, nó cũng nhận được đánh giá đồng tình bởi dự án CRYPTREC của Nhật Bản RSA-PSS cũng

có ở trong phiên bản dự thảo (gần như cuối) của IEEE P1363a Một lược đồ đồng hành cung cấp khả năng “khôi phục văn bản” cũng được đưa vào chuẩn quốc tế ISO/IEC 9796-2:2002

RSA Laboratories cũng khuyến khích chuyển dần sang dùng RSA-PSS như là các chuẩn khác như: SHA-256 hay AES RSA Laboratories hoan nghênh các đề nghị cho

Trang 39

các tổ chức khác nhằm khuyến khích lược đồ mới RSA-PSS

Trang 68 báo cáo tổng kết của CRYPTREC 2003 có viết về độ an toàn của RSA-PSS như sau:

PSS là lược đồ mã hoá chữ ký số được đề xuất bởi Bellare và Rogaway Bằng cách thêm một số thành phần các số ngẫu nhiên vào văn bản sẽ được ký, các lược đồ chữ

ký tất định giống như chữ ký RSA có sinh ra các chữ ký khác nhau RSA-PSS không chỉ thay đổi lược đồ chữ ký tất định thành xác suất mà còn cho phép độ an toàn của

nó là chứng minh được trong mô hình tiên đoán ngẫu nhiên [14]

Đối với độ dài salt, một số tài liệu cho rằng kích thước 30-bit là đủ để đảm bảo độ an toàn mặc dù kích thước salt 180-bit là cần thiết trong kỹ thuật chứng minh trước đây

3.2 Định nghĩa lược đồ ký PSS2000

3.2.1 Lược đồ ký điện tử PSS96

Lược đồ ký PSS96 bao gồm một phép toán mã hóa PSS96-ENCODE và một

phép toán xác minh PSS96-VERIFY được tham số hóa bởi hai số nguyên dương k r

k h thỏa mãn k r +k h ≤ k -1, trong đó k là độ dài bit của modun phép toán xác minh RSA,

k r là độ dài bit của muối, một phần tử được sinh ngẫu nhiên trong quá trình mã hóa

PSS96 dựa trên sự kết hợp giữa hai hàm

Hàm h : {0, 1}* {0, 1} k h và hàm g : {0, 1} k  {0, 1}kg

Trong đó k g = k -1 -k h Kết quả hàm g trả về che giấu muối trong thông điệp được mã hóa Vì vậy g thường được xem như là hàm sinh mặt nạ Chúng ta xem g và

Trang 40

h nhƣ là hàm băm Trong tài liệu này mỗi khi nhắc đến h(m) nghĩa là nói đến việc băm chuỗi m

Cho một tập hữu hạn S, chọn ngẫu nhiên một phần tử s từ tập S (ký hiệu là s

S) Phép toán mã hóa và phép toán xác minh PSS96 thực hiện nhƣ sau

Phép toán ký đầy đủ RSA-PSS96-SIGN có đầu vào là thông điệp M, tính

y = PSS96-ENCODE(M), trả về x = f-1(y), trong đó f chính là phép toán xác minh của

hệ mật mã RSA Phép toán xác minh RSA-PSS96-VERIFY có đầu vào là thông điệp

M và chữ ký x, tính y = f(x), sau đó xác minh kết quả trả về bằng cách áp dụng thuật toán PSS96-VERIFY(M, y)

(1) r ; /* Sinh ngẫu nhiên số r có độ dài bit là kr*/

(2) w ← h(M || r) ; /* Phép toán || là phép nối hai dãy bit */

(3) r * =g(w) ( || r ); /* Phép là phép toán XOR bit */

(4) Return y = 0 || r* || w ;

Ngày đăng: 25/03/2015, 09:46

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[7] RSA Laboratories, June 14, 2002.PKCS #1 v2.1: RSA Cryptography Standard [8] Jean-Sébastien, Advances in Cryptology-CRYPTO 2000, pp. 229-235 Springer- Verlag On the Exa Security of Full Domain Sách, tạp chí
Tiêu đề: PKCS #1 v2.1: RSA Cryptography Standard "[8] "Jean-Sébastien, Advances in Cryptology-"CRYPTO 2000, pp. 229-235 Springer-Verlag
[10] Raising the Standard for RSA Signatures: RSA-PSS của Burt Kaliski đăng trên trang web http://www.rsasecurity.com/rsalabs/ Link
[1] Bùi Văn Phát, Phạm Huy Điển Viện Toán học, viện Khoa học và Công nghệ Việt Nam, Về độ an toàn của một số lược đồ tạo chữ ký điện tử Khác
[2] Phan Đình Diệu, Lý thuyết mật mã và An toàn thông tin Khác
[3] A. Menezes, P. van, Oorschot, and S. Vanstone, CRC Press 1996. Handbook of Applied Cryptography Khác
[4] D.StinSon, Cryptography: Theory and Practice Khác
[5] Jakob Jonsson, Security Proofs for the RSA-PSS Signature Scheme and Its Variants- Draft 1.1 Khác
[6] Jean-Sébastien Coron, Optimal security proofs for PSS and other signature schemes Khác
[9] Wenbo Mao, Modern Cryptography : Theory and Practice Khác
[12] Bellare và P. Rogaway. The exact Security of Digital Signatures-How to sign with RSA and Rabin M. Proceedings Khác

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w