MỤC LỤC MỤC LỤC 2 CHƯƠNG 1: GIỚI THIỆU VỀ MẬT MÃ KHÓA CÔNG KHAI 3 1.1 Lịch sử phát triển của hệ mật mã khóa công khai 3 1.2 Mật mã khóa công khai 4 CHƯƠNG 2: CÁC HỆ MẬT 6 2.1 Hệ mật RSA 6 a, Lịch sử hình thành 6 b, Quá trình tạo khóa cho hệ mật RSA. 8 c, Quá trình mã hóa: 8 d, Quá trình giải mã: 8 e, Một số chú ý quan trọng về RSA 9 f, Một số phương pháp tấn công hệ mã RSA 10 g, Ứng dụng của hệ mật mã RSA 11 2.2 Hệ mật Elgama 11 a, Hình thành khóa: 11 b, Quá trình mã hóa bản tin T: 11 c, Quá trình giải mã: 11 2.3 Hệ mật Rabin 12 a, Quá trình tạo khóa: 12 b, Quá trình mã hóa: 12 c, Qúa trình giải mã: 12 2.4 Hệ mật HerkleHellman 14 a, Quá trình mã hóa: 14 b, Quá trình giải mã. 15 2.5 Hệ mật McEliece 15 a, Quá trình hình thành khóa: 15 b, Quá trình mã hóa: 15 c, Quá trình giải mã: 16 2.6 Hệ mật bất đối xứng trên cơ sở đường cong Elliptic 17 a, Khái niệm về đường cong Elliptic 17 b, Quá trình mã hóa: 18 c, Quá trình giải mã: 19 d, Ứng dụng của mật mã đường cong Elliptic 19 CHƯƠNG 3: CHỮ KÍ SỐ 19 3.1 Giới thiệu 19 3.2 Ứng dụng của chữ kí số 21 a, Chứng thực xác nhận một Identity 21 b, Chữ ký và mã hóa Email 24 CHƯƠNG 4: KẾT LUẬN 25 CHƯƠNG 1: GIỚI THIỆU VỀ MẬT MÃ KHÓA CÔNG KHAI 1.1 Lịch sử phát triển của hệ mật mã khóa công khai 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ã hóa công khai đã giải quyết được vấn đề này vì nó cho phép người dùng gửi thong 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. Năm 1974, William Stanley Jevons xuấn bản cuốn sách mô tả mối quan hệ giữa các hàm một chiều với mật mã học đồng thời đi sâu vào bài toán phân tích ra thừa số nguyên tố ( sử dụng trong thuật toán RSA ). Whillam S. Jevons đã phát hiện nhiều phép toán rất dễ thực hiện theo một chiều nhưng rất khó theo chiều ngược lại. Một ví dụ đã chứng tỏ mã hóa rất dễ dàng trong khi giải mã thì không. Đây chính là nguyên tắc cơ bản trong thuật toán mã hóa khóa công khai RSA. Thuật toán 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 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 thong tin này chỉ được tiết lộ vào năm 1977. Năm 1976, Whitfeld 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. 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 truyền thông tin không an toàn. Kể từ thập kỷ 1970, đã có rất nhiều thuật toán mã hóa, tạo chữ ký số, thảo 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 cũng dựa trên các bài toán logarit rời rạc tương tự như RSA. 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 Mật mã khóa công khai Mật mã khóa công khai tạo điều kiện cho các nhiệm vụ sau: Mã hóa và giải mã cho phép hai bên giao tiếp để che giấu thông tin mà họ gửi cho nhau. Người gửi mã hóa, hoặc những cuộc đua xe, thông tin trước khi gửi đi. Người nhận giải mã, hoặc unscrambles, các thông tin sau khi nhận được. Trong khi quá cảnh, các thông tin được mã hóa là khó hiểu cho một kẻ xâm nhập. Phát hiện giả mạo cho phép người nhận thông tin để xác minh rằng nó đã không được sửa đổi trong quá cảnh. Bất kỳ cố gắng sửa đổi dữ liệu hoặc thay thế một tin nhắn giả cho một hợp pháp sẽ được phát hiện. Xác thực cho phép người nhận thông tin để xác định nguồn gốc của nóđó là, để xác nhận danh tính của người gửi. Chống chối bỏ ngăn chặn người gửi thông tin từ tuyên bố một ngày sau đó rằng thông tin không bao giờ được gửi. Phần này giới thiệu các khái niệm về mật mã khóa công khai làm cơ sở cho khả năng này. Chúng ta rõ rằng các bên tham gia cần có một khóa mật để mã hóa và giải mã. Điều này đồng nghĩa với việc trao đổi khóa mật qua kênh. Việc giữ bí mật khóa mật đồng nghĩa với việc giữ mật thông tin. Nên việc trao đổi khóa chỉ diễn ra trên kênh mật thì mới đảm bảo được, thế nhưng việc trao đổi này cung không phải dễ để đảm bảo độ an toàn cao. Từ đây hình thành nên ý tưởng của mật mã công khai. Tức là không cần phải trao đổi khóa mật qua kênh nữa. Có hai mục đích sử dụng chính của mật mã khóa công khai: Mã hóa khóa công khai , trong đó tin nhắn được mã hóa với khóa công khai của người nhận. Thông điệp này không thể được giải mã bởi bất cứ ai không có khóa riêng phù hợp, do đó những người được cho là chủ sở hữu của chủ chốt và người có liên quan với khóa công khai. Này được sử dụng trong một nỗ lực để đảm bảo tính bảo mật . Chữ ký kỹ thuật số , trong đó tin nhắn được ký kết với khóa riêng của người gửi và có thể được xác nhận bởi bất cứ ai có quyền truy cập vào khóa công khai của người gửi.Xác minh điều này chứng tỏ rằng người gửi đã truy cập vào khóa riêng, và do đó có thể sẽ là người kết hợp với khóa công khai. Điều này cũng đảm bảo rằng thông điệp đã không bị giả mạo, như bất kỳ thao tác của tin nhắn sẽ dẫn đến những thay đổi trong mã hóa thông điệp tiêu hóa , mà nếu không thay đổi giữa người gửi và người nhận. Ý tưởng của hệ mật công khai được Diffie và Hellman đưa ra năm 1976. Còn việc thực hiện hệ mật công khai thì do Rivest, Shamir và Adleman đưa ra đầu tiên năm 1977, họ đề xuất một hệ mật RSA nổi tiếng. Và kể từ đó có một số hệ mật khác được công bố, độ mật của chúng dựa trên bài tính toán khác nhau, như dựa trên độ khó của bài toán phân tích thành nhân tử như hệ mật RSA, dựa vào độ khó logarithm rời rạc như hệ mật ElGamal, hay dựa trên đường cong Elliptíc. Chúng ta đi tìm hiểu cụ thể các hệ mật này trong các phần sau. Nhưng trước tiên chúng ta đi tìm hiểu sơ đồ và nguyên tắc mã và giải mã của hệ mật công khai.
[...]... vậy, nếu ta có thể tạo ra một khóa bí mật cho giải mã vầ một khoa công khai tương ứng cho lập mã thì quá trình lập mã không còn bất kỳ bí mật nào Tuy có vẻ tự nhiên nhưng việc mã khóa sử dụng khóa công khai làm thay đổi hoàn toàn yêu cầu về sự an toàn: 25 16/9/ 2014 TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG Khóa bí mật không cần chia sẻ nữa , mỗi người dữ khóa bí mật riêng mình Sự đảm bảo an toàn... (G’, t) và giử kín khóa mật (G,P,S) 15 16/9/ 2014 TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG b, Quá trình mã hóa: Bob muốn gởi thông tin mật m cho Alice, Bob sử dụng khóa công cộng (G’,t) và tiến hành mã hóa theo các bước sau: Mã hóa bản tin x ở dạng nhị phân chiều dài k Tính véc tơ c’=xG’ Tạo ra một véc tơ ngẫu nhiên e, có trọng số t và chiều dài n Hình thành bản mã: y=c’+e c, Quá trình giải mã: Tính...16/9/ 2014 TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG M =C1a.C2bmod n g, Ứng dụng của hệ mật mã RSA Thực tiễn cho thấy tốc độ thực hiện của RSA là chậm Tuy nhiên, người ta tìm thấy ở hệ mã RSA những khả năng ứng dụng độc đáo khác, thay vì trực tiếp mã hoá văn bản Tạo vỏ bọc an toàn cho văn bản Tạo chữ ký số cho văn bản 2.2 Hệ mật Elgama Hệ mật Elgama hình thành trên cơ sở bài... và q: n = p ⋅ q * Chọn số ngẫu nhiên b ∈ Z n Sử dụng cặp (n,b) làm cặp khóa công cộng và cặp (p,q) làm khóa mật b, Quá trình mã hóa: * Để gởi thông tin mật M ∈ Z n cho Alice, Bob cần tạo ra bảng mã c như sau: c ← M ( M + b)(mod n) c, Qúa trình giải mã: Để giải mã bản mã c, Alice giải phương trình bậc hai sau: M 2 + bM − c ≡ 0(mod n) Với M . 545579 31 3868 2222 554 2224 114192 39 4828 69 134 8 39 4828 530 064 554 6878 1175 4 130 40 35 19 63 378587 35 19 63 684082 6878 34 333 954 53 77756 698244 760 73 698244 1947 93 3 433 3 33 2 545 417805 231 659 454024. 454024 231 659 89120 33 2 978 9996 618551 527400 421976 527400 247794 978 8656 778645 30 5246 30 532 1 144687 30 532 1 32 9172 8656 1 233 7564 558848 5 239 37 37 9425 5 239 37 419571 1 233 8965 34 34 239 368 658412. dụ: =p 707 93; =q 707 933 ; =⋅= qpn 50116700869 ( ) ( )( ) =−−=ϕ 1q1pn 50115922144 =d 30 4 830 41; =e 5851898625 M )(modnmc e = )(mod ' ncm d = 30 4 830 41 75 236 19714 30 4 830 41 75 236 19714 38 1014581 13 75 236 19714 34 87987