Chủ đề 6: Mã hóa bất đối xứng

51 33 0
Chủ đề 6: Mã hóa bất đối xứng

Đ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

Chủ đề 6: Mã hóa bất đối xứng PGS.TS Trần Minh Triết 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 toà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   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 cịn 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ố nguyên 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ố nguyên tố lẻ phân biệt  Cho P = C = Zn định nghĩa:  K = {((n, p, q, a, b): n = pq, p, q số nguyên 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ố nguyên tố có giá trị lớn p q  Tính n = pq (n) = (p – 1) (q – 1)  Chọn ngẫu nhiên số nguyên b (1 < b < (n)) thỏa gcd(b, (n)) =  Tính giá trị a = b–1 mod (n) (bằng thuật toá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) Một số phương pháp cơng RSA  Tính chất an toàn phương pháp RSA dựa sở chi phí cho việc giải mã bất hợp lệ thơng tin mã hóa q lớn nên xem khơng thể thực  Vì khóa cơng cộng nên việc 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 khóa riêng tương ứng Điều quan trọng dựa vào n để tính p, q n, từ tính a Phương pháp sử dụng (n)  Giả sử người công biết giá trị (n) Khi việc xác định giá trị p, q đưa việc giải hai phương trình sau n=pq  Thay q = n/p, ta phương trình bậc hai  (n ) = ( p − 1)(q − 1) p − (n −  (n) + 1) p + n =  p, q hai nghiệm phương trình bậc hai Tuy nhiên vấn đề phát giá trị (n) cịn khó việc xác định hai thừa số nguyên tố n 10 Vấn đề số nguyên tố  Để bảo đảm an tồn cho hệ thống mã hóa RSA, số nguyên n = pq phải đủ lớn để dễ dàng tiến hành việc phân tích n thừa số nguyên tố  Hiện tại, thuật toán phân tích thừa số ngun tố giải số nguyên có 130 chữ số (thập phân)  Để an toàn, số nguyên tố p q cần phải đủ lớn, ví dụ 100 chữ số  Vấn đề đặt giải toán: làm để kiểm tra cách nhanh chóng xác số ngun dương n số nguyên tố hay hợp số? 37 Vấn đề số nguyên tố  Theo định nghĩa, số nguyên dương n số nguyên tố n chia hết cho n (ở xét số nguyên dương)  Từ suy ra, n số nguyên tố n khơng có ước số dương thuộc đoạn  2, ,  n       Như vậy, ta có: n số nguyên tố  i  2, ,  n   ,  ( n  ( mod i ) )   38 Vấn đề số nguyên tố  Việc kiểm tra số nguyên dương n số nguyên 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 toán rõ ràng lớn, chí khơng thể thực được, trường hợp n tương đối lớn 39 Thuật toán Miller-Rabin  Trên thực tế, việc kiểm tra số nguyên dương n số nguyên tố thường áp dụng phương pháp thuộc nhóm thuật tốn Monte Carlo,  ví dụ:  thuật toán Solovay-Strassen hay thuật toán Miller-Robin;  thuật toán Miller-Robin thường sử dụng phổ biến 40 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 41 Thuật tốn Miller-Rabin  Ưu điểm: Xử lý nhanh (số nguyên 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ố nguyên 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 toá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 42 Thuật tốn Miller-Rabin Phân tích số nguyên dương n = 2km + với m lẻ Chọn ngẫu nhiên số nguyên dương a  {1, 2, , n – 1} Tính b = am mod p if b  (mod p) then Kết luận “p số nguyên tố” dừng thuật toán end if for i = to k − if b  p − (mod p) then Kết luận “p số nguyên tố” dừng thuật toán else b = b2 mod p end if end for Kết luận “p hợp số” 43 Thuật toán Miller-Rabin  Thuật toán Miller-Rabin thuật toán “yes-biased Monte Carlo” phát biếu “số nguyên dương n hợp số”  Xác suất xảy kết luận sai, nghĩa thuật toán đưa kết luận “n số nguyên tố” n thật hợp số, tối đa 25%  Nếu áp dụng thuật toá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 44 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 ) { if ( IsOdd (b) ) t = t + c c = c > } c = c + t Phép nhân Ấn Độ 46 Phép lũy thừa c = ab t = c = a while ( b > ) { if ( IsOdd (b) ) t = t * c c = c * c b = b >> } c = c * t Phương pháp Square and Multiply 47 Phép nhân modulo c = (a*b) % n (n0) if ( b == ) c = t = c = a % n b = b % n while ( b > ) { if ( IsOdd (b) ) t = (t + c) % n; c = ( c > } c = (c + t) % n; Làm đến đâu, modulo đến 48 Phép lũy thừa modulo c = ab % n (n0) t = c = a % n while ( b > ) { if ( IsOdd (b) ) t = (t * c) % n c = (c * c) % n b = b >> } c = (t * c) % n Làm đến đâu, modulo đến 49 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 phải giữ 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 50 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 bí mật  Để tìm khóa bí mật, người giải mã cần phải có thêm số thơng tin liên quan đến đặc tính văn nguồn trước mã hóa để tìm manh mối giải mã thay phải sử dụng phương pháp vét cạn mã khóa  Ngồi ra, việc xác định xem thơng điệp sau giải mã có thơng điệp ban đầu trước mã hóa hay khơng lại vấn đề khó khăn  Đối với khóa cơng cộng, việc cơng phá hồn tồn thực với điều kiện có đủ tài nguyên thời gian xử lý 51 ... modulo đến 49 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... 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 50 Mã hóa đối xứng VS mã hóa. .. hóa bất đối xứng  Khóa cơng cộng dễ bị cơng khóa bí mật  Để tìm khóa bí mật, người giải mã cần phải có thêm số thơng tin liên quan đến đặc tính văn nguồn trước mã hóa để tìm manh mối giải mã

Ngày đăng: 07/05/2021, 17:33

Tài liệu cùng người dùng

Tài liệu liên quan