Mật mã và An toàn Thông tin pptx

14 607 2
Mật mã và An toàn Thông tin pptx

Đ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

Nguyễn Khanh Văn Mật An toàn Thông tin ĐHBKHN-2000 HỆ THỐNG VỚI KHÓA CÔNG KHAI PUBLIC KEY CRYPTOSYSTEMS 1976, Diffie & Hellman. Khái niệm Các hệ thống đã nghiên cứu trong chương trước có thể gọi là các hệ khóa đối xứng (Symmtric Key Cryptosystems) do hai bên gửi nhận tin đều thống nhất chung một khoá bí mật. Các hệ này còn có các tên gọi khác là: Hệ với khóa sở hữu riêng (Private Key Cryptosystems) Hệ với khóa bí mật (Secret Key Cryptosystems) Hệ truyền thống (Conventional Cryptosystems) tuỳ theo các ngữ cảnh khác nhau. K AC K BC K AB A C B K CD K AD K CD D Điểm yếu của hệ đối xứng là:  Vấn đề quản lý khoá (Tạo, lưu mật, trao chuyển ) là rất phức tạp càng ngày càng khó khi sử dụng trong môi trường trao đổi tin giữa rất nhiều người dùng. Với số lượng user là n thì số lượng khoá cần tạo lập là n(n-1)/2. Mỗi người dùng phải tạo lưu n-1 khoá bí mật để làm việc với n-1 người khác trên mạng. Như vậy rất khó khăn không an toàn khi n tăng lớn.  Vấn đề thứ hai là trên cơ sở đối xứng, không thể thiết lập được khái niệm chữ ký điện tử (mà thể hiện được các chức năng của chữ ký tay trong thực tế) cũng do đó không có dịch vụ non-repudiation 1 (không thể phủ nhận được) cho các giao dịch thương mại trên mạng. Vấn đề là ở chỗ trong hoá với khoá bí mật, thông tin mật đều được chia sẻ chung bởi cả hai bên Alice Bob, do đó Alice có thể làm được bất kỳ cái gì Bob làm ngược lại (chữ ký ở đây là hoá của tài liệu theo khoá đối xứng do đó cả hai bên đều có thể tạo được, tức là không thoả mãn tính một chủ duy nhất như chữ ký tay thường). Giải pháp duy nhất cho vấn đề này là phải có thêm một thành phần thứ ba trong bất cứ giao dịch nào giữa 1 Dịch vụ non-repudiation cho phép trong mọi trường hợp của một quá trình giao dịch giữa hai bên Alice (A B(Bob), mỗi bên đều có bằng chứng để chứng gian những trường hợp phía bên kia chối bỏ một giao dịch nào đó, chẳng hạn như Alice có thể cãi lấy cớ là một kẻ nào khác mạo nhận là mình để tiến hành giao dịch x nào đó với Bob từ trước. Chương III - 1 - Nguyễn Khanh Văn Mật An toàn Thông tin ĐHBKHN-2000 Alice Bob, được gọi là trusted authorty, tức là một người có thẩm quyền cả Alice Bob đều tin tưởng là trung thực. Người này sẽ làm chứng trọng tài trong trường hợp xảy ra tranh cãi giữa hai bên trung thực. Người này sẽ làm chứng trọng tài trong trường hợp xảy ra tranh cãi giữa hai bên Alice Bob. Tuy nhiên theo sơ đồ thì công việc của người trọng tài này sẽ rất nặng vì phải tham gia vào tất cả các giao dịch của các bên, sớm muộn cũng sẽ trở thành điểm quá tải về giao thông truyền tin cũng như tốc độ xử lý - bottleneck). Diffie & Hellman trong các công trình của mình (1975-76) đã đề xuất những tư tưởng về một loại hệ với nguyên tắc mới, trong đó hệ được gắn với một user (người sử dụng) nhất định chứ không phải là gắn với một cuộc truyền tin giữa một cặp user. Trong hệ thống mới này, mỗi user có hai khoá, một được gọi là khoá bí mật (secret key hay private key) một được gọi là khoá công khai (public key). Khoá thứ nhất chỉ mình user biết giữ bí mật, còn khoá thứ hai thì anh ta có thể tự do phổ biến công khai. Khoá thứ nhất thường đi liền với thuật toán giải mã, còn khoá thứ hai thường đi liền với thuật toán sinh mã, tuy nhiên điều đó không phải là bắt buộc. Ta hãy ký hiệu chúng là z (khóa riêng) Z (khóa công khai) Hoạt động của chúng là đối xứng X = D(z, E(Z, X)) (1) X = E(Z, D(z, X)) (2) Trong đó (1) được sử dụng cho truyền tin mật: B,C,D muốn gửi tin cho A chỉ việc hoá thông tin với khoá CK (Z A ) của A rồi gửi đi. Chỉ có A mới có thể khoá riêng để giải (z A ) đọc được tin, E dù có nghe trộm cũng không thể giải để lấy được tin vì không có khoá z A . Còn (2) sẽ được sử dụng để xây dựng các hệ chữ ký điện tử như sau này ta sẽ nghiên cứu (Ký bằng E(Z A ) kiểm định bằng D(z A ) ). Hệ theo nguyên tắc nói trên được gọi là hệ với khoá công khai (public key cryptosystems - PKC) hay còn được gọi là phi đối xứng (asymmetric key cryptosystems). Nguyên tắc cấu tạo một hệ PK (trapdoor) Một hệ PKC có thể được tạo dựng trên cơ sở sử dụng một hàm kiểu one - way (1 chiều). Một hàm f được gọi là one-way nếu: 1. Đối với mọi X tính ra Y = f(X) là dễ dàng. 2. Khi biết Y rất khó để tính ra X. Ví dụ. Cho n số nguyên tố p 1 , p 2 , p n ta có thể dễ dàng tính được N = p 1 * p 2 * * p n , tuy nhiên khi biết N, việc tìm các thừa số nguyên tố của nó là khó khăn hơn rất nhiều, đặc biệt là khi N lớn các thừa số nguyên tố của nó cũng lớn. Chương III - 2 - Nguyễn Khanh Văn Mật An toàn Thông tin ĐHBKHN-2000 Chúng ta cần một hàm one-way đặc biệt có trạng bị một trap door (cửa bẫy), sao cho nếu biết trap- door này thì việc tính X khi biết f(X)( tức là đi tìm nghịch đào của f) là dễ dàng, còn ngược lại thì vẫn khó như thường. Một hàm one-way có trap door như thế có thể dùng để tạo ra một hệ PKC. Lấy E z (hàm sinh mã) là hàm one- way có trap-door. Trap- door chính khoá mật, nếu biết nó thì có thể dễ dàng tính được cái nghịch đảo của E z tức là biết D z , còn nếu không biét thì rất khó tính được. Sau đây chúng ta sẽ khảo sát hai ví dụ về việc xây dựng trap-door cho một hàm one-way. Ví dụ đầu tiên là một cố gắng nhưng thất bại, hệ Trapdoor Knapsack. Ví dụ thứ hai là một hệ đã thành công rất nổi tiếng, đó là hệ RSA. Trapdoor Knapsack dựa trên bài toán đóng thùng 1978, hai ông Merkle - Hellman đã đề xuất một thuật toán hoá theo mô hình PKC dựa trên bài toán ĐÓNG THÙNG như sau: Cho 1 tập hợp các số dương a i , 1≤i≤n 1 số T dương. Hãy tìm 1 tập hợp chỉ số S ⊂ {1,2, ,n } sao cho: ∑ a i = T i∈S Bài toán này là một bài toán khó, theo nghĩa là chưa tìm được thuật toán nào tốt hơn là thuật toán thử-vét cạn như vậy thời gian xử lý sẽ được tính theo luỹ thừa với số mũ là số lượng n số dương cho trước. VD: (a 1 , a 2 , a 3 , a 4 ) = (2, 3, 5, 7) T = 7. Như vậy ta có 2 đáp số S = (1, 3) S = (4). Từ bài toán đóng thùng này chúng ta sẽ khảo sát các khả năng vận dụng để tạo ra thuật toán khối PKC. Sơ đồ đầu tiên như sau: Chọn một vector a = (a 1 , a 2 , , a n ) - được gọi là vector mang (cargo vector) Với một khối tin X = (X 1 ,X 2 ,X 3 , X n ), ta thực hiện phép hoá như sau: T= ∑ a i X i (*) i=1,n Việc giải là: Cho T, vector mang a, tìm các X i sao cho thoả mãn (*). Trong sơ đồ này thể hiện một hàm one-way với việc sinh rất dễ dàng nhưng việc giải là rất khó. Bây giờ ta phải tìm cách xây dựng một trapdoor để việc giải có thể làm được dễ dàng. Merkle sử dụng một mẹo là áp dụng một vector mang đặc biệt là vector siêu tăng (super- increasing), trong đó thành phần i+1 là lớn hơn tổng giá trị của các thành phần đứng trước nó (1÷i). Khi đó việc giải có thể diễn ra dễ dàng như ví dụ bằng số sau: Ví dụ: Chương III - 3 - Nguyễn Khanh Văn Mật An toàn Thông tin ĐHBKHN-2000 Vector mang siêu tăng: a=(1,2,4,8) Cho T=14, ta sẽ thấy việc tìm X=(X 1 ,X 2 ,X 3 ,X 4 ) sao cho T= ∑ a i X i là dễ dàng: Đặt T=T 0 X 4 =1 T 1 =T 0 -X 4 =6 Î (X 1 X 2 X 3 1) X 3 =1 T 2 =T 1 -X 3 =2 Î (X 1 X 2 1 1) X 2 =1 T 3 =T 2 -2=0 Î (X 1 1 1 1) X 1 = 0 Î (0 1 1 1) Bài toán được giải quyết dần qua các bước. Ở bước i, tổng đích là T i (tức là phải tìm các a j để tổng bằng T i ). Ta đem so sánh T i với thành phần lớn nhất trong phần còn lại của vector, nếu lớn hơn thì thành phần này được chọn tức là X i tương ứng bằng 1, còn ngược lại thì X i tương ứng bằng 0. Sau đó tiếp tục chuyển sang bước sau với T i+1 = T i -X i . Mặc dù ta đã thấy vector siêu tăng cho phép giải dễ dàng nhưng tất nhiên nó chưa thể đem áp dụng thẳng tuột ngay vì phải làm sao để cho chỉ có người chủ mới biết được nó còn kẻ thù thì không, tức là người chủ phải tìm cách chủ động “nguỵ trang” vector siêu tăng để chỉ có anh ta mới biết còn người ngoài không thể lần ra được. Sơ đồ sau đây sẽ trình bày một cơ chế nguỵ trang như vậy. Tạo khoá: 1. Alice chọn một vector siêu tăng: a’ = (a 1 ’,a 2 ’, ,a n ’) a’ được giữ bí mật tức là một thành phần của khoá bí mật 2. Sau đó chọn một số nguyên m > ∑ a i ’, gọi là mo-dul đồng dư một số nguyên ngẫu nhiên ω, gọi là nhân tử, sao cho nguyên tố cùng nhau với m. Khoá công khai của Alice sẽ là vector a là tích của a’ với nhân tử ω: a = (a 1 ,a 2 , ,a n ) a i =ω×a i ’ (mod m); i=1,2,3 n Còn khoá bí mật sẽ là bộ ba (a’, m, ω) Sinh mã: Khi Bob muốn gửi một thông báo X cho Alice, anh ta tính theo công thức: T=∑ a i X i Giải mã: Alice nhận được T, giải như sau: 1. Để bỏ lớp nguỵ trang cô ta trước hết tính ω -1 (là giá trị nghịch đảo của ω, tức là ω×ω -1 =1 mod m, sẽ giới thiệu thuật toán tính sau), rồi tính T’=T×ω -1 (mod m) 2. Alice biết rằng T’ = a’. X nên cô ta có thể dễ dàng giải ra được X theo siêu tăng a’. Chú thích: ở đây ta có T’ = T×ω -1 = ∑ a i X i ω -1 = ∑ a i ’ωX i ω -1 = ∑ (a i ’ωω -1 )X i ω -1 = ∑ a i ’X i = a’.X Chương III - 4 - Nguyễn Khanh Văn Mật An toàn Thông tin ĐHBKHN-2000 Như vậy chúng ta đã xem xét xong sơ đồ cụ thể của Merkle-Hellman về một hệ PKC dựa trên bài toán đóng thùng. Brute Force Attack (tấn công vũ phu) Với những kẻ không biết trapdoor (a’, m, ω), giải đòi hỏi phải tìm kiếm vét cạn qua 2 n khả năng của X. Sự đổ vỡ của giải pháp dùng Knapsack (1982-1984). Shamir-Adleman đã chỉ ra chỗ yếu của GP này bằng cách đi tìm 1 cặp (ω ’ ,m ’ ) sao cho nó có thể biến đổi ngược a về a ’ (từ Public key về Private key). 1984, Brickell tuyên bố sự đổ vỡ của hệ thống Knapsack với dung lượng tính toán khoảng 1 giờ máy Cray -1, với 40 vòng lặp chính cỡ 100 trọng số. Thuật toán tìm giá trị nghịch đảo theo modul đồng dư Việc xây dựng Knapsack với cửa bẫy đòi hỏi phải tính giá trị nghịch đảo của ω theo modul m. Thuật toán tìm x = ω -1 mod m, sao cho x.ω = 1 (mod m) được gọi là thuật toán GCD mở rộng hay Euclide mở rộng (GCD - Greatest common divior - ước số chung lớn nhất). Sở dĩ như vậy là vì trong khi đi tìm ước số chung lớn nhất của hai số nguyên n 1 n 2 , người ta sẽ tính luôn các giá trị a,b sao cho GCD(n 1 , n 2 ) = a.n 1 + b.n 2 . Từ đó suy ra nếu ta đã biết (n 1 ,n 2 )=1 thì thuật toán này sẽ cho ta tìm được a, b thoả mãn a.n 1 +b.n 2 =1, tức là n 1 chính là nghịch đảo của a theo modulo n 2 (tức là m) Sau đây là sơ đồ thuật toán ví dụ bằng số Start n1, n2 n1>0 Initialization: a=1, b1=0 a2 = 0, b2 = 1 Compute quotient q and remainder r when n1 is divided by a2 r=0 g = n2 a = a2 b = b2 g,a,b UPDATE: n1=n2 n2 = r t=a2 a2 = a1 - q* a2 a1 = t t=b2 b2=b1-q*b2 b1 = t yes No Chương III - 5 - Nguyễn Khanh Văn Mật An toàn Thông tin ĐHBKHN-2000 Ví dụ tính bằng số: Tìm ngịch đảo của 11 theo modulo 39 Đặt n 1 =39, n 2 =11 ta có bảng tính minh họa các bước như sau: n 1 n 2 r q a 1 b 1 a 2 b 2 39 11 6 3 1 0 0 1 11 6 5 1 0 1 1 -3 6 5 1 1 1 -3 -1 4 5 1 -1 4 2 -7 Bài tập: Bạn hãy tự minh lý giải sơ đồ khối thuật toán gcd ở trên. Tính nghịch đảo của 23 theo modulo 40. Kể từ năm 1976, nhiều giải pháp cho PKC đã được nêu ra nhưng khá nhiều trong số đó đã bị phá vỡ: chứng minh được là không an toàn. Trong số những sản phẩm được coi là an toàn thì một số cũng bị chê là không thực dụng do dung lượng tính toán lớn hoặc thông tin nở ra quá lớn khi hoá. Một hệ thống PKC có thể đáp ứng 2 mục đích: i) Bảo mật thông tin truyền tin. ii) Chứng thực chữ ký điện tử. Hai thuật toán đáp ứng các ứng dụng trên thành công nhất là RSA Elgamal. Nói chung thuật toán PKC là chậm không thích hợp cho trên dòng truyền tin cần tốc độ cao, vì vậy chỉ thường được sử dụng khi cần đến tính an toàn cao chấp nhận tốc độ chậm. Ngoài ra người ta thường sử dụng kết hợp PKC SKC (symmetric key cryptosystems) với PKC có tác dụng “khởi động mồi” cho SKC: dùng PKC để thiết lập thuật toán tạo ra khoá bí mật thống nhất chung giữa hai bên truyền tin sau đó sử dụng khoá bí mật trên cho pha truyền tin chính bằng SKC sau đó. RSA Public key cryptosystems RSA là hệ PK phổ biến cũng đa năng nhất trong thực tế, phát sinh bởi Rivest, Shamir & Adleman. Nó là chuẩn bất thành văn đối với PKC, cung cấp tính secretcy, authentication digital signature. RSA dựa trên tính khó của bài toán phân tích các số lớn ra thừa số nguyên tố: Biết một số nguyên tố nhân chúng với nhau để thu được một hợp số là dễ còn biết hợp số, phân tích nó ra thừa số nguyên tố là khó. Chương III - 6 - Nguyễn Khanh Văn Mật An toàn Thông tin ĐHBKHN-2000 Ý tưởng(Motivation) ý tưởng của các nhà phát minh là gắn các thuật toán sinh hoá vưói phép toán lấy luỹ thừa trên trường Z n = {0,1,2, n-1}. Chẳng hạn, việc sinh cho tin X sẽ được thực hiện qua: Y = nX e ± (Ký hiệu a = b + n nghĩa là a = b + k. n a ∈ Z n còn k = 1,2,3, , ví dụ 7 = 3 3 + 10) còn việc giải mã: X = nY d ± (e - encryption, d-decryption) Do đó e d phải được chọn sao cho X ed = X (mod n) Người ta đã tìm được cách xây dựng cặp số (e,d) này trên cơ sở công thức như sau: 1 )( = n X φ (mod n) (định lý Ơ - le) Trong đó φ(n) là số các thuộc Z n nguyên tố cùng nhau với n. Người ta chọn e*d sao cho chia φ(n) dư 1, hay d= e -1 (mod φ (n), khi đó ta sẽ có điều cần thiết: X ed = X k. φ (n)+1 =(X φ (n) ) d .X = 1.X =X φ(n) có thể tính được khi đã biết công thức phân tích thừa số nguyên tố của n, cụ thể là nếu đã biết n = p.q (p.q là số nguyên tố) thì φ(n) = (p-1) (q=1). Nói cách khác nếu như cho trước một số e thì nếu đã biết công thức phân tích thừa số nguyên tố của n ta có thể dễ dàng tìm được d sao cho d = e -1 (mod φ(n)) hay là X ed = X (mod n), còn nếu không biết thì rất khó. Vừa rồi là phần trình bày dẫn dắt về cội nguồn của thuật toán, sau đây là thuật toán cụ thể. Thuật toán RSA Các tham số 1. Chọn hai số nguyên tố lớn p q. Tính n = p x q m = φ(n) = (p = 1) x (q-1). 2. Chọn e, 1≤ e ≤ m -1, sao cho gcd (e, m) = 1. 3. Tìm d sao cho e x d = 1 (mod m), tức là tính d = e -1 (mod m), giải theo thuật toán gcd mở rộng đã trình bày ở phần trước. Khóa công khai (Public key) là (e, n) Khoá dùng riêng (Private key) là d, p, q) Giả sử X là một khối tin gốc (plaintext), Y là một khối tương ứng của X, là các thành phần công khai riêng của khoá của Alice ),( AA Zz hoá. Nếu Bob muốn gửi một thông báo hoá cho Alice thì anh ta chỉ việc dùng khoá công khai của Alice để thực hiện: nXXEY e Z A ±== )( Chương III - 7 - Nguyễn Khanh Văn Mật An toàn Thông tin ĐHBKHN-2000 Giải mã: Khi Alice muốn giải Y, cô ta chỉ việc dùng khoá riêng z A = d để thực hiện như sau: nYYD d z A ±=)( Ví dụ: Chọn P = 11 q = 13 N=11*13=143 m= (p-1)(q-1) =10 *12=120 e=37 Î gcd (37,120) =1 Sử dụng thuật toán gcd để tìm sao cho e * d =1 ± 120, ta tìm được d= 13 (e*d =481) Để hoá một xâu nhị phân, ta phải “bẻ” ra thành nhiều đoạn độ dài là u bit, sao cho 2^u < = 142. Do đó u = 7. Mỗi đoạn như vậy sẽ là một con số nằm trong khoản 0 - 127 ta có thể tính Y theo công thức: 120±= e XY Chẳng hạn với X = (0000010) =2, ta có 14312)( 37 ±== XXE Z Î Y= (00001100) Giải như sau: 143212)( 13 ±=== YDX z Để tiện cho việ giao dịch trên mạng có sử dụng truyền tin mật, người ta có thể thành lập các Public Directory (thư mục khoá công khai), lưu trữ các khoá công khai của các user. Thư mục này được đặt tại một điểm công cộng trên mạng sao cho ai cũng có thể truy nhập tới được để lấy khoá công khai của người cần liên lạc. User (n,e) Alice (85,23) Bob (117,5) Hua (4757,11) . . . . . . Ứng dụng thuật toán RSA a. Bảo mật trong truyền tin (Confidentiality) A sẽ gửi cho B, Biết ZB nên có thể dễ dàng giải mã. )(XE B Z b. Chức thực + Alice ký lên tin cần gửi bằng cách hoá với khoá bí mật của cô ta gửi cho Bob )(XD A z ))(,(),( XDXSX A z = + Khi Bob muốn kiểm tra tính tin cậy của tin nhận được, anh ta chỉ việc tính kiểm tra nếu X = X’ thì tức là tin nhận được là đáng tin cậy (authentic). ))(()(' XDEXEX AAA zZZ == Chương III - 8 - Nguyễn Khanh Văn Mật An toàn Thông tin ĐHBKHN-2000 Chú y 1: Trong qúa trình này cả tính toàn vẹn của thông báo được kiểm tra danh tính của người gửi được chứng thực cùng một lúc. Với vế thứ nhất là vì chỉ một bit của tin bị thay đổi thì sẽ lập tức bị phát hiện ngay do chữ ký không khớp. Ngoài ra không ai có thể tạo ra được thông báo đó ngoài Alice vì chỉ có duy nhất Alice biết z A . Chú ý 2: Alice có thể ký vào giá trị băm (hast) của X thay vì ký thẳng lên X. Khi đó toàn bộ Alice sẽ chuyển cho Bob là . H() là một hàm băm công khai. )))((,( XHDX A z Phương pháp này là hiệu quả hơn do tiết kiệm (hàm băm luôn cho ra một xâu độ dài cố định thông thường nhỏ hơn xâu đầu vào nhiều lần. c. Kết hợp tính mật tin cậy. Chúng ta có thể làm như sau để kết hợp cả hai khả năng a b như trên. A gửi cho B ))(( XDEY AB zZ = B phục hồi x như sau: ))))(((())(( XDEDEYDEX ABBABA zZzZzZ = = Để có bằng chứng nhằm đối phó với việc Alice có thể sau này phủ nhận đã gửi thông báo (non -repudiation) thì Bob phải lưu giữ )(XD A z Một số vấn đề xung quanh thuật toán RSA Vấn đề chọn p q: + p q phải là những số nguyên tố lớn, ít nhất là cỡ 100 chữ số. + p q phải lớn cỡ xấp xỉ nhau ( về độ dài cùng 100 chữ số chẳng hạn). Bài tập: Tại sao lại có điều kiện thứ 2? Một vài con số về tốc độ thuật toán trong cài đặt: So sánh với DES thì RSA: + có tốc độ chậm hơn rất nhiều. + Kích thước của khoá mật lớn hơn rất nhiều. Nếu như p q cần biểu diễn cỡ 300 bits thì n cần 600 bits. Phép nâng lên luỹ thừa là khá chậm so với n lớn, đặc biệt là nếu sử dụng phần mềm (chương trình). Người ta thấy rằng thực hiện một phép nhân cỡ m + 7 nhịp Clock khi kích thước n là m bit. +Tốc độ hiện thời: Sử dụng phần cứng đặc chủng: n cỡ 507 bits thì đạt được tốc độ khoảng 220Kb/s Phần mềm: n cỡ 512 bits thì đạt được tốc độ khoảng 11Kb/s Về bài toán phân tích ra thừa số nguyên tố Giải thuật tốt nhất vẫn là phương pháp sàng số. Một ước lượng về thời gian thực hiện của giải thuật là: n 2 log 50 1 7.9 10 + L(n) ≈ Trong đó log 2 n cho số biết số bit cần để biểu diễn n, số cần phân tích ra thừa số nguyên tố. Từ đó rút ra, nếu tăng n lên thêm 50 bit (quãng 15 chữ số thập phân) thì thời gian làm phân tích ra thừa số nguyên tố tăng lên 10 lần. Chương III - 9 - Nguyễn Khanh Văn Mật An toàn Thông tin ĐHBKHN-2000 Người ta đã ước lượng thấy, với n=200, L(n) ≈ 55 ngàn năm. Đối với khả năng thực hiện bằng xử lý song song, một trong các kết quả tốt nhất về phân tích TSNT với số lớn cho biết đã phân tích một số có 129 chữ số, phân bố tính toán trên toàn mạng Internet mất trọn 3 tháng. Ngày nay, với những ứng dụng có độ đòi hỏi an toàn đặc biệt cao người ta sử dụng đại lượng modulo của RSA này lên đến 1024 bit thậm chí 2048 bit. Vấn đề đi tìm số nguyên tố lớn: Một thuật toán để tạo ra tất cả các số nguyên tố là không tồn tại, tuy nhiên có những thuật toán khá hiệu quả để kiểm tra xem một số cho trước có phải là nguyên tố hay không (bài toán kiểm tra tính nguyên tố). Qua đó việc tìm các số nguyên tố lón cho RSA là một vòng lặp gồm các bước: 1. Chọn một số ngẫu nhiên p nằm trong một khoảng có độ lớn yêu cầu (tính theo bit) 2. Kiểm tra tính nguyên tố của p, nếu là nguyên tố thì dừng lại, nếu không thì quay lại bước 1. Những thuật toán tất định để kiểm tra tính nguyên tố không phải là tầm thường đòi hỏi được thực hiện trên máy tính rất khoẻ. Tuy nhiên người ta cũng còn sử dụng các thuật toán ‘đoán’ xem một số có phải nguyên tố không. Các thuật toán đoán này có thể đưa ra lời giải có tính chính xác cao, phụ thuộc vào thời gian bỏ ra để chạy nó. Ở đây ta hay xét ví dụ một thuật toán ‘đoán’, dựa trên phương pháp sau đây của Lehman. P/p Lehman: Giả sử n là một số lẻ, với mỗi số nguyên a ta hãy ký hiệu: na n ± − 2 1 e(a,n) = { } {} 1, 2,1 ,:),( * * −= ∈= nZ ZanaeG n n Ví dụ: Với n=7, ta có 2 3 =1, 3 3 =6, 4 3 =1, 5 3 =6, 6 3 =1 Tức là G= {1,6}. Định lý Lehman: Nếu n là một số lẻ thì G={1,n-1} khi chỉ khi n là số nguyên tố. Theo định lý này ta có phép thử sau: 1. Chọn ngẫu nhiên một số a ∈Z n * 2. If (gcd(a,n) >1) return (“là hợp số”) else )1||1( 2 1 2 1 −== −− nn aaIf3. If ( return (“ có thể là nguyên tố”) else return (“là hợp số”) Nếu như thực hiện phép thử này 100 lần đều thu được câu trả lời “có thể là nguyên tố” thì xác xuất n không phải là số nguyên tố (‘đoán nhầm’) sẽ chỉ là 2 -100 . Bằng phương pháp ‘đoán’ này ta có thể loại bỏ nhanh chóng các hợp số chỉ thực hiện phép kiểm tra tất định cuối cùng với các số trả lời dương tính ở bước ‘đoán’. Chương III - 10 - [...]... cho rằng có thể tránh được tình huống này nếu số nguyên tố được chọn là AN TOÀN Một số nguyên tố được gọi là AN TOÀN nếu p=2p’+1 trong đó p’ cũng là số nguyên tố Chương III - 11 - Nguyễn Khanh Văn Mật An toàn Thông tin ĐHBKHN-2000 Đánh giá về an toàn của thuật toán RSA Sự an toàn của thành phần khoá mật (private key) phụ thuộc vào tính khó của việc PTTSNT các số lớn Ký hiệu Z= (e,n) là khoá công... Nguyễn Khanh Văn Mật An toàn Thông tin ĐHBKHN-2000 2 Low exponent attack: Tấn công này xảy ra với điều kiện là giá trị e đã được chọn nhỏ (e nhỏ thì thuật toán hoá trong truyền tin mật cũng như kiểm định chữ ký sẽ nhan hơn) Nếu kẻ thù có thể tìm được e(e+1)/2 được hoá từ những TIN phụ thuộc tuyến tính thì hệ thống sẽ bị nguy hiểm Tuy nhiên nếu các TIN này là không có quan hệ với... một số nguyên tố p hai số nguyên ngẫu nhiên g u, cả hai đều nhỏ hơn p Sau đó tính 2 Do phần này chỉ có mục đích giới thiệu tóm tắt nên ở đây không đi sâu hơn vào công thức tính nghiệm Chương III - 13 - Nguyễn Khanh Văn Mật An toàn Thông tin ĐHBKHN-2000 y =gu (mod p) Bây giờ khóa công khai của Alice được lấy là (p,g,y), khoá mật là u Sinh mã: 1 Nếu Bob muốn hoá một tin X để truyền cho...Nguyễn Khanh Văn Mật An toàn Thông tin ĐHBKHN-2000 Giải thuật tính luỹ thừa nhanh Luỹ thừa có thể được tính như thông thường bằng phép nhân liên tục tuy nhiên tốc độ sẽ chậm Luỹ thừa trong trường Zn (modulo n) có thể tính nhanh hơn nhiều bằng giải thuật sau đây Giải thuật này sử dụng hai phép tính là tính bình phương nhân Để tính Xα (modul n): 1 Xác định các... Alice thì trước hết anh ta chọn một số ngẫu nhiên k sao cho (k,p-1) =1 2 Tính a=gk (mod p) b=ykX (mod p) là Y=(a,b) có độ dài gấp đôi TIN Giải mã: Alice nhận được Y= (a,b) giải ra X theo công thức sau: b X = u (mod p) a 6 Ví dụ: p=11, g=3, u=6 Thế thì y=3 =3 (mod 11) Khoá công khai là (p,g,y)=(11,3,3) còn khoá bí mật là u=6 Để hoá cho tin X=6, Bob chọn ngẫu nhiên k=7 tính a=37=9(mod 11),... hỏi phải tính luỹ thừa Thời gian giải thì tương đương nhau Nhược điểm: Vì phương trình giải cho 4 nghiệm nên làm khó dễ việc giải Thông thường, TIN trước khi được hoá cần được nối thêm vào đuôi một chuỗi số xác định để làm dấu vết nhận dạng (chẳng hạn nối thêm 20 số 0 – như vậy trong số 4 nghiệm giải ra, chuỗi nào tận cùng bằng 20 con 0 thì đúng là TIN cần nhận) Vì lý do này nên Rabin thường... không phải tất cả các thông tin đều được che giấu tốt, tức là mọi khoá đều tốt đều làm TIN thay đổi hoàn toàn Ví dụ: n = 35 = 5 x 7, m = 4 x 6 e=5 (GCD (5,24) = 1) X=8 Y = Xe ± 35 = 8 = X! Đối với bất kỳ khoá nào tồn tại ít nhất 9 TIN bị ‘phơi mặt’, tuy nhiên đối với n ≥ 200 điều đó không còn quan trọng Mặc dù vậy phải chú ý là nếu e không được chọn cẩn thẩn thì có thể gần đến 50% tin bị lộ Ví dụ: Với... ghép thêm vào các TIN những xâu nhị phân ngẫu nhiên để đảm bảo cho chúng là không bị phụ thuộc 3 Low decryption attack: Nếu thành phần khóa mật d nhỏ hơn N/4 e . tố được chọn là AN TOÀN. Một số nguyên tố được gọi là AN TOÀN nếu p=2p ’ +1 trong đó p ’ cũng là số nguyên tố. Chương III - 11 - Nguyễn Khanh Văn Mật mã và An toàn Thông tin ĐHBKHN-2000 . III - 1 - Nguyễn Khanh Văn Mật mã và An toàn Thông tin ĐHBKHN-2000 Alice và Bob, được gọi là trusted authorty, tức là một người có thẩm quyền mà cả Alice và Bob đều tin tưởng là trung thực Chương III - 6 - Nguyễn Khanh Văn Mật mã và An toàn Thông tin ĐHBKHN-2000 Ý tưởng(Motivation) ý tưởng của các nhà phát minh là gắn các thuật toán sinh mã và mã hoá vưói phép toán lấy luỹ

Ngày đăng: 18/06/2014, 12:20

Từ khóa liên quan

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

Tài liệu liên quan