1. Trang chủ
  2. » Công Nghệ Thông Tin

tìm hiểu RSA của ptit

33 970 6

Đ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 33
Dung lượng 545,5 KB

Nội dung

Mục lục LỜI MỞ ĐẦU 2 PHẦN I: HỆ MÃ HÓA RSA 3 I. Giới thiệu hệ mã hóa RSA 3 II. Hệ mật mã RSA 4 1.Khái niệm 4 2. Chi ết các bước thực hiện mã hóa: 6 3. Độ an toàn của hệ RSA 12 4. Một số ,nh chất của hệ RSA 13 6. Đánh giá RSA 16 III. Chương trình sử dụng hệ mật mã RSA 17 PHẦN II: HỆ MẬT ĐƯỜNG CONG ELLIPTIC 17 I. Cơ sở toán học 17 1. Phương trình đồng dư bậc 2 và thặng dư bậc 2 17 2. Tiêu chuẩn Euler 17 3.Định lý 1: 18 II:Đường cong Ellipc 19 1.Định nghĩa 19 2.Giới thiệu một số hệ đường cong Ellipc trên trường số thực 20 3.Tính chất của đường cong Ellipc: 22 4.Đường cong Ellipc trên trường hữu hạn 22 5.Các phép toán trên đường cong Ellipc: 23 III: Hệ mật đường cong Ellipc 27 1.Đặt vấn đề: 27 2.Nhúng bản rõ lên đường cong 27 3. Logarit rời rạc trên đường cong Ellipc 28 4.Vấn đề trao đổi khoá DiZe- Hellman(D- H) trên Ellipc 29 5.Hệ mật mã hóa Elgamal trên đường cong Ellipc 29 6. Một số chuẩn sử dụng hệ mật Elipc 30 7.Đánh giá hệ mật đường cong Ellipc 30 1 IV.Tổng kết 31 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 2 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ì đó 3 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 : 4 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). 5 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 . 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) 7 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à 8 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 9 Hình2.Mô tả thực hiện RSA */ Lưu ý về việc chọn tham số trong mã hóa RSA: +Cần chọn p, q đủ lớn +Thường chọn e nhỏ +Thường có thể chọn cùng giá trị của e cho tất cả người dung +Trước đây ta hay lấy giá trị của e là 3nhưng hiện nay thì nó lại được coi là quá nhỏ +Thường chọn e= 2 16 -1=65535 +Giá trị của d sẽ lớn và khó đoán Xét ví dụ sau : p= 61 <- số nguyên tố đầu tiên q = 53 <- số nguyêntố 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 10 [...]... 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 12 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á C, khi đó kẻ địch sẽ tìm ra bản tin gốc (Plaintext)... vượt quá nội dung của bài này Ta chỉ biết đó là một hàm đựơc công khai trên toàn hệ thống Khi cần gửi văn 15 bản , người ta sẽ gửi kèm theo bản giá trị băm của văn bản , sau khi nhận được người ta sẽ băm văn bản lại lần nữa và so sánh với giá trị băm của bên gửi , nếu trùng khớp thì có thể khẳng định văn bản đã không bị thay đổi trên đường đi … 6 Đánh giá RSA 1 .RSA đơn giản, dễ hiểu, dễ cài đặt 2.Hiệu... của Fq ví dụ có thể viết một số nguyên như là một số nguyên cơ số p có độ dài r và coi r như là một phần tử của Z/ pZ, là hệ số của một đa thức cấp r-1 tương ứng với một phần tử của Fq Nghĩa là số nguyên (ar-1, ar-2 …a1, a0)p đặt tương ứng với đa thức mà nó được xem nhưw modulo đa thức bất khả quy r cố định trên F p , cho một phần tử của Fp Do đó cho trước m với j=1,2,3…k sẽ nhận được một phần tử của. .. phân tích một số có 200 chữ số ra thừa số Độ an toàn của thuật toán RSA dựa trên cơ sở những khó khăn của việc xác định các thừa số nguyên tố của một số lớn Bảng dưới đây cho biết các thời gian dự đoán, giả sử rằng mỗi phép toán thực hiện trong một micro giây 14 5 Một số biến thể của hệ mã hóa RSA Hệ mã RSA là một hệ mã có tính an toàn rất cao Nhưng nó có một nhược điểm lớn là tốc độ mã hóa chậm (nhất... quan đến việc tính toán với các con số 13 dài, chi phí của các phép toán thực sự là một yếu tố ngăn cản sự phổ biến ứng dụng của phương pháp này Phần quan trọng nhất của việc tính toán có liên quan đến việc mã hoá bản tin Nhưng chắc chắn là sẽ không có hệ mã hoá nào hết nếu không tính ra được các khoá của chúng là các số lớn 2.Các khoá cho hệ mã hoá RSA có thể được tạo ra mà không phải tính toán quá nhiều... địch có khả năng tìm ra được giá trị của k B hay không nếu cho trước N và KB Rất khó có thể tìm ra được kB từ KB cần biết về p và q, như vậy cần phân tích N ra thành thừa số để tính p và q Nhưng việc phân tích ra thừa số là một việc làm tốn rất nhiều thời gian, với kỹ thuật hiện đại ngày nay thì cần tới hàng triệu năm để phân tích một số có 200 chữ số ra thừa số Độ an toàn của thuật toán RSA dựa trên cơ... khoá chung của họ sẽ được xây dựng từ một điểm ngẫu nhiên P của đường cong vừa cho, họ làm cách này bằng cách chọn toạ độ x của P là ngẫu nhiên trong F q Sau đó nó được chuyển đổi thành số nguyên cơ số P có r số( q = p r) mà được coi là khoá đối với hệ mã truyền thống của họ Cụ thể như sau: Trước hết A, B chọn công khai một điểm B ,E B đóng vai trò như là phần tử sinh g trong trường hữu hạn của hệ thống... an 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 31 2.Thời gian thực thi ECC có... 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 toàn của nó dựa trên bài toán Phân tích số nguyên Mà thuật toán phân tích một... lại như ban đầu Thuật toán RSA chỉ bị phá vỡ khi tìm được một cách nào đó cho ta trực tiếp các thừa số nguyên tố của một số Cho đến bây giờ việc đó chưa được chứng minh là bất khả Nhưng nếu chúng ta biết rằng các số nguyên tố đã được nghiên cứu từ cả ngàn năm nay, và trong vòng vài thập niên qua được nghiên cứu rầm rộ trở lại thì câu trả lời có vẻ còn rất xa vời Nhưng nếu tìm ra được một phương pháp . HÓA RSA 3 I. Giới thiệu hệ mã hóa RSA 3 II. Hệ mật mã RSA 4 1.Khái niệm 4 2. Chi ết các bước thực hiện mã hóa: 6 3. Độ an toàn của hệ RSA 12 4. Một số ,nh chất của hệ RSA 13 6. Đánh giá RSA. 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. 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

Ngày đăng: 02/12/2014, 16:38

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w