Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 37 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
37
Dung lượng
1,09 MB
Nội dung
Chủ đề 4: Mã hóa bất đối xứng Mở đầu Vấn đề phát sinh hệ thống mã hóa quy ước việc quy ước chung mã khóa k người gửi A người nhận B Trên thực tế, nhu cầu thay đổi nội dung mã khóa k cần thiết, đó, cần có trao đổi thơng tin mã khóa k A B Để bảo mật mã khóa k, A B phải trao đổi với kênh liên lạc thật an tồn bí mật Tuy nhiên, khó bảo đảm an tồn kênh liên lạc nên mã khóa k bị phát người C! Mở đầu Ý tưởng hệ thống mã hóa khóa cơng cộng Martin Hellman, Ralph Merkle Whitfield Diffie Đại học Stanford giới thiệu vào năm 1976 Sau đó, phương pháp Diffie-Hellman Martin Hellman Whitfield Diffie cơng bố Năm 1977, báo "The Scientific American", nhóm tác giả Ronald Rivest, Adi Shamir Leonard Adleman cơng bố phương pháp RSA, phương pháp mã hóa khóa cơng cộng tiếng sử dụng nhiều ứng dụng mã hóa bảo vệ thơng tin Mở đầu Một hệ thống khóa cơng cộng sử dụng hai loại khóa cặp khóa: khóa cơng cộng (public key) cơng bố rộng rãi sử dụng mã hóa thơng tin, khóa riêng (private key) người nắm giữ sử dụng để giải mã thơng tin mã hóa khóa cơng cộng Các phương pháp mã hóa khai thác ánh xạ f mà việc thực ánh xạ ngược f –1 khó so với việc thực ánh xạ f Chỉ biết mã khóa riêng thực ánh xạ ngược f –1 Mã h óa kh óa cơng c ộng hóa khóa cộng Phương pháp RSA Năm 1978, R.L.Rivest, A.Shamir L.Adleman đề xuất hệ thống mã hóa khóa cơng cộng RSA (hay gọi “hệ thống MIT”) Trong phương pháp này, tất phép tính thực Zn với n tích hai số ngun tố lẻ p q khác Khi đó, ta có φ(n) = (p–1) (q–1) Phương pháp mã hóa RSA n = pq với p q hai số ngun tố lẻ phân biệt Cho P = C = Zn định nghĩa: K = {((n, p, q, a, b): n = pq, p, q số ngun tố, ab ≡ (mod φ(n))} Với k = (n, p, q, a, b) ∈ K, định nghĩa: ek(x) = xb mod n dk(y) = ya mod n, với x, y ∈ Zn Giá trị n b cơng bố (public key) Giá trị p, q, a giữ bí mật (private key) Sử dụng phương pháp RSA Phát sinh hai số ngun tố có giá trị lớn p q Tính n = pq φ(n) = (p – 1) (q – 1) Chọn ngẫu nhiên số ngun b (1 < b < φ(n)) thỏa gcd(b, φ(n)) = Tính giá trị a = b–1 mod φ(n) (bằng thuật tốn Euclide mở rộng) Giá trị n b cơng bố (khóa cơng cộng) giá trị p, q, a giữ bí mật (khóa riêng) Ví dụ p=5 & q=7 n=5*7=35 φ(n) =(4)*(6) = 24 b=5 a = 29 , (29x5 –1) chia hết cho 24 Cặp khóa xác định sau: Khóa cơng cộng: (n,b) = (35,5) Khóa riêng: (n,a) = (35, 29) Mã hóa từ love sử dụng cơng thức (e = xb mod n) Giả sử ký tự Alphabet nằm khoảng từ 1Ỉ26 Plain Text l o v e Numeric Representation 12 15 22 xb 248832 759375 5153632 3125 Cipher Text (e = xb mod n) 17 15 22 10 Ví dụ Giải mã từ love sử dụng cơng thức (d = ya mod n) n = 35, a=29 Cipher Text ya (d = ya mod n) Plain Text 17 481968572106750915091411825223072000 12 15 12783403948858939111232757568359400 15 22 852643319086537701956194499721110000000 22 10 100000000000000000000000000000 l o v e Sự che dấu thơng tin hệ thống RSA Với giá trị n, có trường hợp kết mã hóa liệu nguồn ban đầu Thật vậy, M = Me mod n hay: M = Me mod p M = Me mod q (*) Với e, đẳng thức (*) có ba giải pháp thuộc tập {0, 1, -1} Số thơng điệp khơng che dấu (khơng bị thay đổi sau mã hóa): m = [1+gcd(e-1, p-1)][1+gcd(e-1), q-1] Nhận xét Mấu chốt để giải mã thơng tin có giá trị p q tạo nên giá trị n Khi có hai giá trị này, ta dễ dàng tính φ(n) = (p – 1)(q – 1) giá trị a = b–1 mod φ(n) theo thuật tốn Euclide mở rộng Nếu số ngun n phân tích thừa số ngun tố, tức giá trị p q xác định xem tính an tồn phương pháp RSA khơng bảo đảm Nhận xét Như vậy, tính an tồn phương pháp RSA dựa sở máy tính thời điểm chưa đủ khả giải việc phân tích số ngun lớn thừa số ngun tố Năm 1994, Peter Shor, nhà khoa học phòng thí nghiệm AT&T, đưa thuật tốn phân tích cách hiệu số ngun lớn máy tính lượng tử Vấn đề số ngun tố Để bảo đảm an tồn cho hệ thống mã hóa RSA, số ngun n = pq phải đủ lớn để khơng thể dễ dàng tiến hành việc phân tích n thừa số ngun tố Hiện tại, thuật tốn phân tích thừa số ngun tố giải số ngun có 130 chữ số (thập phân) Để an tồn, số ngun tố p q cần phải đủ lớn, ví dụ 100 chữ số Vấn đề đặt giải tốn: làm để kiểm tra cách nhanh chóng xác số ngun dương n số ngun tố hay hợp số? Vấn đề số ngun tố Theo định nghĩa, số ngun dương n số ngun tố n chia hết cho n (ở xét số ngun dương) Từ suy ra, n số ngun tố n khơng có ước số dương thuộc đoạn ⎣⎡ 2, , ⎡⎣ n ⎤⎦ ⎦⎤ Như vậy, ta có: n số ngun tố ⇔ ∀i ∈ ⎡ 2, , ⎡⎣ n ⎤⎦ ⎤ , ¬ ( n ≡ ( mod i ) ) ⎣ ⎦ Vấn đề số ngun tố Việc kiểm tra số ngun dương n số ngun tố theo phương pháp đưa kết hồn tồn xác Tuy nhiên, thời gian xử lý thuật tốn rõ ràng lớn, chí khơng thể thực được, trường hợp n tương đối lớn Thuật tốn Miller-Rabin Trên thực tế, việc kiểm tra số ngun dương n số ngun tố thường áp dụng phương pháp thuộc nhóm thuật tốn Monte Carlo, ví dụ: thuật tốn Solovay-Strassen hay thuật tốn MillerRobin; thuật tốn Miller-Robin thường sử dụng phổ biến Thuật tốn thuộc nhóm Monte Carlo Thuật tốn thuộc nhóm Monte Carlo sử dụng việc khẳng định hay phủ định vấn đề Thuật tốn ln đưa câu trả lời câu trả lời thu có khả “Có” (yes) “Khơng” (no) Thuật tốn “yes-biased Monte Carlo” thuật tốn Monte Carlo, đó, câu trả lời “Có” (Yes) ln xác câu trả lời “Khơng” (No) khơng xác Thuật tốn Miller-Rabin Ưu điểm: Xử lý nhanh (số ngun dương n kiểm tra thời gian tỉ lệ với log2n, tức số lượng bit biểu diễn nhị phân n) Có khả kết luận thuật tốn khơng hồn tồn xác, nghĩa có khả hợp số n lại kết luận số ngun tố, xác suất xảy kết luận khơng xác khơng cao Có thể khắc phục cách thực thuật tốn nhiều lần để giảm khả xảy kết luận sai xuống ngưỡng cho phép Ỵ kết luận có độ tin cậy cao Thuật tốn Miller-Rabin Phân tích số ngun dương n = 2km + với m lẻ Chọn ngẫu nhiên số ngun dương a ∈ {1, 2, , n – 1} Tính b = am mod p if b ≡ (mod p) then Kết luận “p số ngun tố” dừng thuật tốn end if for i = to k − if b ≡ p − (mod p) then Kết luận “p số ngun tố” dừng thuật tốn else b = b2 mod p end if end for Kết luận “p hợp số” Thuật tốn Miller-Rabin Thuật tốn Miller-Rabin thuật tốn “yes-biased Monte Carlo” phát biếu “số ngun dương n hợp số” Xác suất xảy kết luận sai, nghĩa thuật tốn đưa kết luận “n số ngun tố” n thật hợp số, tối đa 25% Nếu áp dụng thuật tốn k lần với giá trị a khác mà ta thu kết luận “n số ngun tố” xác suất xác kết luận 1-4-k Ỉ 1, với k đủ lớn Xử lý số học Tính giá trị biểu thức z = xb mod n Thuật tốn “bình phương nhân” Biểu diễn b dạng nhị phân bl-1bl-2 b1b0, bi∈{0, 1}, 0≤ i[...]... z = z×x mod n end if end for Mã hóa đối xứng VS mã hóa bất đối xứng Các phương pháp mã hóa quy ước có ưu điểm xử lý rất nhanh so với các phương pháp mã hóa khóa cơng cộng Do khóa dùng để mã hóa cũng được dùng để giải mã nên cần phải giữ bí mật nội dung của khóa và mã khóa được gọi là khóa bí mật (secret key) Ngay cả trong trường hợp khóa được trao đổi trực tiếp thì mã khóa này vẫn có khả năng bị phát... khóa được trao đổi trực tiếp thì mã khóa này vẫn có khả năng bị phát hiện Vấn đề khó khăn đặt ra đối với các phương pháp mã hóa này chính là bài tốn trao đổi mã khóa 4K 2K 1K 512 256 128 64 Chi phí Mã hóa đối xứng VS mã hóa bất đối xứng Độ dà i mã khó a (bits) Đồ thị so sánh chi phí cơng phá khóa bí mật và khóa cơng cộng ... số phương pháp tấn cơng RSA Tính chất an tồn của phương pháp RSA dựa trên cơ sở chi phí cho việc giải mã bất hợp lệ thơng tin đã được mã hóa sẽ q lớn nên xem như khơng thể thực hiện được Vì khóa là cơng cộng nên việc tấn cơng bẻ khóa phương pháp RSA thường dựa vào khóa cơng cộng để xác định được khóa riêng tương ứng Điều quan trọng là dựa vào n để tính p, q của n, từ đó tính được d Phương pháp sử... một hệ thống mã hóa khóa cơng cộng RSA an tồn đối với giải thuật tấn cơng p − 1 Cách đơn giản nhất là tìm một số ngun tố p1 lớn, mà p = 2p1 + 1 cũng là số ngun tố, tương tự tìm q1 ngun tố lớn và q = 2q1 + 1 ngun tố Bẻ khóa dựa trên các tấn cơng lặp lại Simons và Norris: hệ thống RSA có thể bị tổn thương khi sử dụng tấn cơng lặp liên tiếp Nếu đối thủ biết cặp khóa cơng cộng {n, b} và từ khóa C thì có... ta muốn gởi bất cứ dữ liệu nào thuộc tập sau {1, 6, 7, 8, 13, 14, 15, 20, 21, 22, 27, 28, 29, 34} thì kết quả của việc mã hóa lại chính là dữ liệu ban đầu Nghĩa là, M = Me mod n Còn khi p = 109, q = 97, e = 865 thì hệ thống hồn tồn khơng có sự che dấu thơng tin, bởi vì: ∀M, M = M865 mod (109*97) Sự che dấu thơng tin trong hệ thống RSA Với mỗi giá trị n, có ít nhất 9 trường hợp kết quả mã hóa chính là... và M = Me mod q (*) Với mỗi e, mỗi đẳng thức trong (*) có ít nhất ba giải pháp thuộc tập {0, 1, -1} Số thơng điệp khơng được che dấu (khơng bị thay đổi sau khi mã hóa) : m = [1+gcd(e-1, p-1)][1+gcd(e-1), q-1] Nhận xét Mấu chốt để có thể giải mã được thơng tin là có được giá trị p và q tạo nên giá trị n Khi có được hai giá trị này, ta có thể dễ dàng tính ra được φ(n) = (p – 1)(q – 1) và giá trị a = b–1... ngun tố Để bảo đảm an tồn cho hệ thống mã hóa RSA, số ngun n = pq phải đủ lớn để khơng thể dễ dàng tiến hành việc phân tích n ra thừa số ngun tố Hiện tại, các thuật tốn phân tích thừa số ngun tố đã có thể giải quyết được các số ngun có trên 130 chữ số (thập phân) Để an tồn, số ngun tố p và q cần phải đủ lớn, ví dụ như trên 100 chữ số Vấn đề đặt ra ở đây là giải quyết bài tốn: làm thế nào để kiểm tra một... cơng lặp liên tiếp Nếu đối thủ biết cặp khóa cơng cộng {n, b} và từ khóa C thì có thể tính chuỗi các từ khóa sau: C1=Ce (mod n) C2=C1e (mod n) … Ci=Ci-1e (mod n) Nếu có một phần tử Cj trong chuỗi C1, C2, C3,…., Ci sao cho Cj = C thì khi đó sẽ tìm được M = Cj-1 vì Cj = Cj-1e (mod n) C = Me (mod n) Bẻ khóa dựa trên các tấn cơng lặp lại Ví dụ: Giả sử anh ta biết {n, b, C}={35, 17, 3},anh ta sẽ tính: C1 =... 1 (mod p) then Kết luận “p là số ngun tố” và dừng thuật tốn else b = b2 mod p end if end for Kết luận “p là hợp số” Thuật tốn Miller-Rabin Thuật tốn Miller-Rabin là thuật tốn “yes-biased Monte Carlo” đối với phát biếu “số ngun dương n là hợp số” Xác suất xảy ra kết luận sai, nghĩa là thuật tốn đưa ra kết luận “n là số ngun tố” khi n thật sự là hợp số, chỉ tối đa là 25% Nếu áp dụng thuật tốn k lần với... Việc tính USCLN sử dụng thuật tốn Euclide có độ phức tạp O((log n)3) Như vậy, độ phức tạp của thuật tốn là O(B log B(log n)2 + (log n)3) Thuật tốn phân tích ra thừa số p-1 Xác suất chọn giá trị B tương đối nhỏ và thỏa điều kiện là rất thấp Khi tăng giá trị B (chẳng hạn như B ≈ n ) thì giải thuật sẽ thành cơng, nhưng thuật tốn này sẽ khơng nhanh hơn giải thuật chia dần như trình bày trên Thuật tốn phân ... phí Mã hóa đối xứng VS mã hóa bất đối xứng Độ dà i mã khó a (bits) Đồ thị so sánh chi phí cơng phá khóa bí mật khóa cơng cộng Mã hóa đối xứng VS mã hóa bất đối xứng Khóa cơng cộng dễ bị cơng khóa... if end for Mã hóa đối xứng VS mã hóa bất đối xứng Các phương pháp mã hóa quy ước có ưu điểm xử lý nhanh so với phương pháp mã hóa khóa cơng cộng Do khóa dùng để mã hóa dùng để giải mã nên cần... bí mật nội dung khóa mã khóa gọi khóa bí mật (secret key) Ngay trường hợp khóa trao đổi trực tiếp mã khóa có khả bị phát Vấn đề khó khăn đặt phương pháp mã hóa tốn trao đổi mã khóa 4K 2K 1K 512