Tìm hiểu về hệ mã hóa khóa công khai RSA và hệ đường cong Elliptic
Lý thuyết mã hóa thông tin NHÓM 6 TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN Môn:Lý thuyết mã hóa thông tin Đề tài: Tìm hiểu về hệ mã hóa khóa công khai RSA và hệ đường cong Elliptic G.V hướng dẫn:GV.Mai Thanh Hồng Nhóm thực hiện: NHÓM 22 KHMT3-K3 1. Đào Xuân Đức 2. Nguyễn Thị Thu Hà 3. Đỗ Quốc Vinh Hà nội,ngày 15 tháng 11 năm 2011 1 Lý thuyết mã hóa thông tin NHÓM 6 Mục lục LỜI MỞ ĐẦU 3 PHẦN I: HỆ MÃ HÓA RSA 4 I. Giới thiệu hệ mã hóa RSA 4 II. Hệ mật mã RSA 5 1.Khái niệm 5 2. Chi tiết các bước thực hiện mã hóa: 7 3. Độ an toàn của hệ RSA 13 4. Một số tính chất của hệ RSA 14 6. Đánh giá RSA 17 III. Chương trình sử dụng hệ mật mã RSA 18 PHẦN II: HỆ MẬT ĐƯỜNG CONG ELLIPTIC 18 I. Cơ sở toán học 18 1. Phương trình đồng dư bậc 2 và thặng dư bậc 2 18 2. Tiêu chuẩn Euler 18 3.Định lý 1: 19 II:Đường cong Elliptic 20 1.Định nghĩa 20 2.Giới thiệu một số hệ đường cong Elliptic trên trường số thực 21 3.Tính chất của đường cong Elliptic: 23 4.Đường cong Elliptic trên trường hữu hạn 23 5.Các phép toán trên đường cong Elliptic: 24 III: Hệ mật đường cong Elliptic 28 1.Đặt vấn đề: 28 2.Nhúng bản rõ lên đường cong 28 3. Logarit rời rạc trên đường cong Elliptic 29 4.Vấn đề trao đổi khoá Diffie- Hellman(D- H) trên Elliptic 30 5.Hệ mật mã hóa Elgamal trên đường cong Elliptic 30 6. Một số chuẩn sử dụng hệ mật Eliptic 31 7.Đánh giá hệ mật đường cong Elliptic 31 2 Lý thuyết mã hóa thông tin NHÓM 6 IV.Tổng kết 32 LỜI MỞ ĐẦU Thế kỷ XXI thế kỷ công nghệ thông tin, thông tin đã và đang tác động trực tiếp đến mọi mặt hoạt động kinh tế xã hội của hầu hết các quốc gia trên thế giới. Thông tin có một vai trò hết sức quan trọng, bởi vậy chúng ta phải làm sao đảm bảo được tính trong suốt của thông tin nghĩa là thông tin không bị sai lệch, bị thay đổi, bị lộ trong 3 Lý thuyết mã hóa thông tin NHÓM 6 quá trình truyền từ nơi gửi đến nơi nhận. Với sự phát triển rất nhanh của công nghệ mạng máy tính đặc biệt là mạng INTERNET thì khối lượng thông tin ngày càng chuyển tải nhiều hơn. Những tập đoàn công nghiệp, những công ty đa quốc gia, thị trường chứng khoán tiến hành xử lý và truyền nhận những thông tin đắt giá, những phiên giao dịch hay mua bán cổ phiếu, trái phiếu đều được tiến hành qua mạng. Giờ đây với sự tăng trưởng nhanh của các siêu thị điện tử, thương mại điện tử thì hàng ngày có một khối lượng tiền rất lớn được lưu chuyển trên mạng toàn cầu INTERNET, vấn đề khó khăn đặt ra là làm sao giữ được thông tin bí mật và giữ cho tiền đến đúng được địa chỉ cần đến. Bạn sẽ ra sao nếu như bạn gửi thư cho một người bạn nhưng lại bị một kẻ lạ mặt nào đó xem trộm và sửa đổi nội dung bức thư trái với chủ ý của bạn, tệ hại hơn nữa là khi bạn ký một hợp đồng, gửi thông qua mạng và lại bị kẻ xấu sửa đổi những điều khoản trong đó, và sẽ còn nhiều điều tương tự như vậy nữa Hậu quả sẽ như thế nào nhỉ ? Bạn bị người khác hiểu nhầm vì nội dung bức thư bị thay đổi, còn hợp đồng bị phá vỡ bởi những điều khoản đã không còn nguyên vẹn. Như vậy là cả tình cảm, tiền bạc của bạn và nói rộng hơn là cả sự nghiệp của bạn đều bị đe dọa nếu như những thông tin mà bạn gửi đi không đảm bảo được tính nguyên vẹn của chúng. Mã hoá thông tin là một trong các phương pháp đảm bảo được tính trong suốt của thông tin. Nó có thể giải quyết các vấn rắc rối ở trên giúp bạn, một khi thông tin đã được mã hoá và gửi đi thì kẻ xấu rất khó hoặc không thể giải mã được. Với mong muốn phục vụ những thông tin được truyền đi trên mạng được nguyên vẹn .Nhiều phương pháp được tạo ra nhằm tối ưu sự bảo mật, nổi bật hơn cả là 2 phương pháp mã hóa khóa công khai là RSA và hệ mật đường cong Elliptic với độ an toàn cao được trình bày dưới đây. PHẦN I: HỆ MÃ HÓA RSA I. Giới thiệu hệ mã hóa RSA Với đề tài xây dựng thư viện các hàm mã hoá dùng cho việc bảo mật thông tin trao đổi trong mô hình Client/Server, thì cần thiết một phương pháp mã hoá để áp dụng, thuật toán mã hoá công khai RSA đã được lựa chọn cho giải pháp này. Phương pháp này có những ưu điểm, nhược điểm, đặc tính gì đó 4 Lý thuyết mã hóa thông tin NHÓM 6 là phần sẽ trình bày trong chương này * Khái niệm hệ mật mã RSA * Phân phối khoá công kkai trong RSA * Độ an toàn của hệ RSA * Một số tính chất của hệ RSA II. Hệ mật mã RSA 1.Khái niệm Khái niệm hệ mật mã RSA đã được ra đời năm 1976 bởi các tác giả R.Rivets, A.Shamir, và L.Adleman. Hệ mã hoá này dựa trên cơ sở của hai bài toán : + Bài toán Logarithm rời rạc (Discrete logarith) + Bài toán phân tích thành thừa số. Trong hệ mã hoá RSA các bản rõ,các bản mã và các khoá (public key và private key) là thuộc tập số nguyên ZN = {1, . . . , N-1}. Trong đó tập ZN với N=p×q là các ốs nguyên tố khác nhau cùng với phép cộng và phép nhân . Modulo N tạo ra modulo số học N. Khoá mã hoá EKB là cặp số nguyên (N,KB) và khoá giải mã D kB là cặp số nguyên (N,kB), các số là rất lớn, số N có thể lên tới hàng trăm chữ số. Các phương pháp mã hoá và giải mã là rất dễ dàng. Công việc mã hoá là sự biến đổi bản rõ P (Plaintext) thàn h bản mã C (Ciphertext) dựa trên cặp khoá công khai KB và bản rõ P theo công thức sau đây : Công việc giải mã là sự biến đổi ngược lại bản mã C thành bản rõ P dựa trên cặp khoá bí mật kB , modulo N theo công thức sau : 5 Lý thuyết mã hóa thông tin NHÓM 6 Dễ thấy rằng, bản rõ ban đầu cần được biến đổi một cách thích hợp thành bản mã, sau đó để có thể tái tạo lại bản rõ ban đầu từ chính bản mã đó : Thay thế (1) vào (2) ta có : Trong toán học đã chứng minh được rằng, nếu N là số nguyên tố thì công thức (4) sẽ có lời giải khi và chỉ khi KB.kB = 1 (mod N-1), áp dụng thuật toán ta thấy N=p×q với p, q là số nguyên tố, do vậy (4) sẽ có lời giải khi và chỉ khi : KB.kB ≡1 (mod γ(N)) (5) trong đó γ(N) = LCM(p-1,q-1) . LCM (Lest Common Multiple) là bội số chung nhỏ nhất. Nói một cách khác, đầu tiên người nhận B lựa chọn một khoá công khai KB một cách ngẫu nhiên. Khi đó khoá bí mật kB được tính ra bằng công thức (5). Điều này hoàn toàn tính được vì khi B biết được cặp số nguyên tố (p,q) thì sẽ tính được γ(N). 6 Lý thuyết mã hóa thông tin NHÓM 6 Hình 1. Sơ đồ các bước thực hiện mã hoá theo thuật toán RSA. 2. Chi tiết các bước thực hiện mã hóa: 2.1 Tạo khóa RSA Mỗi bên tự tạo ra một cặp khóa công khai-khóa riêng theo các bước sau: B1.Chọn ngẫu nhiên 2 số nguyên tố đủ lớn p#q B2.Tính n=pq B3.Tính . 7 Lý thuyết mã hóa thông tin NHÓM 6 B4.Chọn ngẫu nhiên khóa mã hóa e sao cho và là số nguyên tố cùng nhau với . B5.Tính khóa giải mã: d <= n sao cho . 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 (xem thêm: số học môđun). • Bước 5 có thể viết cách khác: Tìm số tự nhiên sao cho cũng là số tự nhiên. Khi đó sử dụng giá trị . • Từ bước 3, PKCS#1 v2.1 sử dụng thay cho . Công bố khóa mã hóa công khai KU={e,n} trong đó: e : Số mũ công khai hay số mũ mã hóa n :Modul Giữ khóa bí mật giải mã riêng KR={d,n} trong đó: n :Modul d :Số mũ bí mật hay số mũ giả mã Các mã bí mật p,q bị hủy bỏ Một dạng khác của khóa bí mật bao gồm: + p, q :2 số nguyên tố chọn ban đầu + d mod(p-1) và d mod(q-1) +(1/q) mod p (thường gọi là iqmp) 8 Lý thuyết mã hóa thông tin NHÓM 6 Dạng này cho phép thực hiện giả mã và ký nhanh hơn với việc sử dụng Định lý số dư Trung Quốc.Ở dạng này tất cả các thành phần của khóa bí mật phải được giữ bí mật. Alice gửi khóa công khai cho Bob, và giữ bí mật khóa cá nhân của mình. Ở đây, p và q giữ vai trò rất quan trọng. Chúng là các phân tố của n và cho phép tính d khi biết e. Nếu không sử dụng dạng sau của khóa bí mật (dạng CRT) thì p và q sẽ được xóa ngay sau khi thực hiện xong quá trình tạo khóa. 2.2: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: 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. 2.3.Giải mã Alice nhận c từ Bob và biết khóa bí mật d. Alice có thể tìm được m từ c theo công thức sau: Biết m, Alice tìm lại M theo phương pháp đã thỏa thuận trước. Quá trình giải mã hoạt động vì ta có . Do ed ≡ 1 (mod p-1) và ed ≡ 1 (mod q-1), (theo Định lý Fermat nhỏ) nên: và 9 Lý thuyết mã hóa thông tin NHÓM 6 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ó: . hay: 2.4:Ví dụ */ Tạo khóa RSA +Chọn 2 số nguyên tố p=17 và q=11 +Tính n=pq=17*11=187 +Tính =16*10=160 +Chọn e=gcd(e,160)=1 và 1<e<160; lấy e=7 +Xác định d: de = 1 mod 160 và d<=187 Giá trị d=23 vì 23*7=161=1*160+1 +Công bố khóa công khai KU={7,187} +Giữ bí mật khóa riêng KR={23,187} _Hủy bỏ các giá trị bí mật p=17 và q=11 */ Thực hiện RSA 10 [...]... một hệ trên ECC dựa trên hệ Elgamal 30 Lý thuyết mã hóa thông tin NHÓM 6 Để xây dựng hệ mã hoá dựa trên đƣờng cong elliptic ta chọn đường cong E(a, b) và một điểm G trên đường cong làm điểm cơ sở Mỗi ngƣời dùng A một khoá bí mật nA là một số nguyên, và sinh khoá công khai PA = nA * G Khi đó hệ mã hoá đường cong elliptic được xây dựng tương tự hệ mã hoá ElGamal, trong đó thuật toán mã hoá và giải mã. .. toàn 1.Kích thước khóa: Đối với RSA, tuy ECC có kích thước khóa nhỏ hơn nhưng ECC vẫn có cùng mức độ bảo mật với RSA Hướng dẫn của NIST về kích thước khóa công khai đối với chuẩn AES Kích thước khóa Kích thước khóa Tỷ lệ kích thước khóa ECC(Bits) RSA (Bits) 163 1024 1:06 256 3072 1:12 384 7680 1:20 512 15360 1:30 Bảng so sánh về kích thước khóa công khai giữa ECC ,RSA 32 Lý thuyết mã hóa thông tin NHÓM... P1 và P2 nằm trên đường cong E +Tiếp tuyến của đường cong tại điểm bất kỳ P(x,y) trên đường cong E cuãng cắt đường cong E tại một điểm duy nhất nằm trên đường E, điểm này cũng có thể xác định được thông qua P Dựa vào những tính chất đó người ta đã nghiên cứu và phát hiện ra mọt khả năng mới cho kỹ thuật mã hóa nói chung và chứng thực nói riêng, kỹ thuật mã hóa dự trên đường cong Elliptic 4 .Đường cong. .. ra được một phương pháp như thế, thì thuật toán mã hoá sẽ bị thay đổi toàn diện 17 Lý thuyết mã hóa thông tin NHÓM 6 Sau khi hệ mã RSA xuất hiện , đã có rất nhiều hệ mã công khai khác được ra đời với rất nhiều cải tiến Và với sự phát triển của mật mã khóa công khai , có lẽ sẽ có lúc việc mã hóa không còn là việc xa lạ với mọi người nữa , mà có thể mã hóa sẽ được áp dụng rộng rãi trong đời sống chúng... 7.Đánh giá hệ mật đường cong Elliptic 7.1.Ưu điểm các hệ thống dựa trên ECC + Được đánh giá là an toàn hơn các hệ thống mã hóa công cộng khác dựa trên DLP/IFP + Thực thi nhanh 31 Lý thuyết mã hóa thông tin NHÓM 6 + Băng thông nhỏ +Các thông số ngắn hơn + Tạo các cặp khóa đơn giản + Các hệ thống ECC có thể chống lại các tấn công trên các hệ thống mã hóa dwuaj trên DLP/IFP 7.2.Khuyết điểm các hệ thống dựa... thứ hai p và q phải được giữ bí mật m=p*q = 3233 e = 17 e và m được thông báo công khai ta tìm được nghịch đảo của 17 modulo Φ(3233) là d = 2753 11 : Lý thuyết mã hóa thông tin NHÓM 6 d phải được giữ bí mật Chìa khóa công cộng là (e ,m) Chìa khóa riêng là (e,m) Hàm số mã hóa là: mãhoá(P) ≡ (P^e) mod m ≡ (P^17) mod 3233 Hàm số giải mã là: giảimã(C) ≡ (C^d) mod m ≡ (C^2753) mod 3233 Để mã hoá số “123”,... bí mật (khóa dùng cho các hệ thống mã hóa đối xứng-hay khóa riêng), hay chỉ mã hóa một lượng dữ lệu nhỏ 3.Tính bảo mật:Như đã trình bày ở trên , độ an toàn của RSA dựa tren bài toán phân tích ra thừa số nguyên tố.Do đó, chiều dài số càng lớn thì càng khó phân ticchs ra thừa số nguyên tố Dù là hệ mã công khai xuất hiện đầu tiên , nhưng cho đến nay hệ mã RSA vẫn cho thấy làmột hệ mã rất an toàn Tính an... P =61 và Q =53 3 Độ an toàn của hệ RSA Một nhận định chung là tất cả các cuộc tấn công giải mã đều mang mục đích không tốt Trong phần độ an toàn của hệ mã hoá RSA sẽ đề cập đến một vài phương thức tấn công điển hình của kẻ địch nhằm giải mã trong 13 Lý thuyết mã hóa thông tin NHÓM 6 thuật toán này Chúng ta xét đến trường hợp khi kẻ địch nào đó biết được modulo N, khoá công khai KB và bản tin mã hoá... đó Và cũng đảm bảo việc không ai có thể mạo danh người khác để gửi thư Để làm được điều đó , khi anh U muốn gửi bức thư P cho anh V Đầu tiên anh U dùng khóa lập mã Ev ( được công khai của anh V ) để mã hóa P thu được Ev ( P ) Sau đó dùng khóa giải mã của mình là Du ( bí mật ) để tính Du (Ev ( P )) = C và gửi đi Sau khi nhận được mật thư C , anh V sẽ dùng khóa lập mã của anh U là Eu ( công khai. .. yêu cầu ít không gian lưu trữ, ít năng lượng, ít bộ nhớ và yêu càu băng thông ít hơn(do khóa nhở hơn tạo chữ ký ngắn hơn) những hệ thống khóa công khác 4.Độ an toàn Cùng một mức độ bảo mật (Cùng một thời gian giải mã khóa) nwhng kích thước khóa của RSA dài hơn ECC 33 Lý thuyết mã hóa thông tin NHÓM 6 Hình 7.So sánh mức độ bảo mật giữa ECC và RSA Cho đến năm 2002, thuật toán hiệu quả nhất để giải bài . mã hóa thông tin NHÓM 6 TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN Môn:Lý thuyết mã hóa thông tin Đề tài: Tìm hiểu về hệ mã hóa khóa công khai RSA và hệ. cả là 2 phương pháp mã hóa khóa công khai là RSA và hệ mật đường cong Elliptic với độ an toàn cao được trình bày dưới đây. PHẦN I: HỆ MÃ HÓA RSA I. Giới thiệu hệ mã hóa RSA Với đề tài xây dựng. 3 PHẦN I: HỆ MÃ HÓA RSA 4 I. Giới thiệu hệ mã hóa RSA 4 II. Hệ mật mã RSA 5 1.Khái niệm 5 2. Chi tiết các bước thực hiện mã hóa: 7 3. Độ an toàn của hệ RSA 13 4. Một số tính chất của hệ RSA 14 6.