CƠ SỞ LÝ THUYẾT VÀ TOÁN HỌC CỦA HỆ MẬT MÃ RSA
Mật mã
* Lịch sử của mật mã:
Mật mã có lịch sử kéo dài khoảng 4000 năm, được chứng minh qua các cổ vật do các nhà khảo cổ phát hiện Người Ai Cập đã sử dụng hình vẽ để khắc mã lên các ngôi mộ, thể hiện sự tôn kính đối với người đã khuất, và chữ tượng hình này được coi là một dạng mã hóa đơn giản nhất.
Khoảng 400 năm trước công nguyên, người Spactơ đã phát triển một hệ thống mã hóa thông tin độc đáo bằng cách viết thông điệp lên một chiếc gậy quyền trượng quấn băng giấy cói Thông điệp được trình bày từ trái sang phải và từ trên xuống dưới Khi băng giấy được tháo ra, thông điệp trở thành một dãy ký tự ngẫu nhiên, làm cho việc giải mã trở nên khó khăn hơn.
Trong thời kỳ cổ đại, quân đội Hi Lạp đã áp dụng phương pháp mã hóa để trao đổi thông tin quân sự Khi nhận được mã, các đội quân sẽ quấn mảnh giấy chứa dãy ký tự ngẫu nhiên quanh các quyền trượng có kích thước phù hợp, từ đó biến đổi chúng thành thông điệp có thể hiểu được.
Người đầu tiên áp dụng mật mã một cách hệ thống để bảo vệ thông tin quân sự được cho là Hoàng đế Julius Caesar của La Mã cổ đại Ông đã sử dụng phương pháp mã hóa thay thế, trong đó mỗi ký tự trong bảng chữ cái được thay thế bởi ký tự đứng sau 3 vị trí.
Người xưa thường sử dụng hai phương pháp để che dấu thông tin mã hiệu: một là ẩn giấu thông tin mà đối phương không thể phát hiện, hai là biến đổi mã hiệu thành dạng công khai nhưng vẫn khó nhận biết nội dung thực sự.
Mã khối, được phát triển vào đầu thế kỷ XX, bắt đầu nổi bật với sự ra đời của hệ mã British Playfair vào năm 1954, trong đó mỗi khối chứa một cặp hai chữ.
Hệ mã tích hợp (Product cipher) được sử dụng sớm nhất là của quân đội Đức trong Đại chiến thế giới lần thứ I, mang tên ADFGVX
Trong Đại chiến Thế giới thứ II, hệ mã tích hợp được đánh giá là rất an toàn, nhưng hệ mã ADFGVX lại bộc lộ những điểm yếu Do đó, một hệ mã tích hợp phức tạp hơn, được gọi là ENIGMA, đã được áp dụng để nâng cao tính bảo mật trong chiến tranh.
Hệ mã Lucifer ra đời vào năm 1974 và được cải tiến thành hệ chuẩn mã dữ liệu DES vào năm 1975 Đến cuối những năm 70 của thế kỷ 20, hệ mã với khóa công khai cũng được phát triển, đánh dấu bước tiến quan trọng trong lĩnh vực mã hóa dữ liệu.
1.1.2 Một số thuật ngữ đƣợc sử dụng trong hệ mật mã
Chứa các xâu ký tự gốc có thể đọc được, thông tin trong bản rõ là thông tin cần mã hoá để giữ bí mật
Chứa các ký tự sau khi đã được mã hoá, mà nội dung được giữ bí mật (“khó” có thể đọc được)
Là nghệ thuật và khoa học để giữ thông tin được an toàn
Mã hóa là quá trình chuyển thông tin có thể đọc được ( bản rõ) thành thông tin “khó” có thể đọc được theo cách thông thường ( bản mã )
Quá trình biến đổi bản mã thành bản rõ gọi là giải mã
Trong phần này có tham khảo tài liệu [2], [3]
Việc mã hoá phải theo quy tắc nhất định, quy tắc đó gọi là Hệ mật mã
Bài viết này phân tích hệ mật mã RSA và các biến thể của nó Hệ mật mã RSA, được phát triển bởi Rivest, Shamir và Adleman, là một trong những phương pháp mã hóa an toàn nhất hiện nay Nó sử dụng hai khóa: khóa công khai để mã hóa và khóa riêng để giải mã Bài viết cũng đề cập đến các ứng dụng thực tiễn của RSA trong bảo mật thông tin và giao dịch trực tuyến Ngoài ra, các biến thể của RSA, như RSA-PSS và RSA-OAEP, được phân tích để hiểu rõ hơn về cách cải thiện độ an toàn và hiệu quả của hệ thống Việc nắm vững các khái niệm này là cần thiết cho việc phát triển các giải pháp bảo mật hiện đại.
Nguyễn Thị Ngọc Anh – K16 – HTTT1
Hệ mật mã được định nghĩa là bộ năm (P, C, K, E, D), trong đó:
- P: là tập hữu hạn các bản rõ có thể
- C: là tập hữu hạn các bản mã có thể
- K: là tập hữu hạn các khoá có thể
- E: là tập các hàm lập mã
- D: là tập các hàm giải mã
Với khóa lập mã k e K , có hàm lập mã e E k e , e P C k e :
Với khóa giải mã k d K , có hàm giải mã d D k d , d C P k de : , sao cho:
Vai trò của hệ mật mã:
Hệ mật mã phải thực hiện được các vai trò sau:
Hệ mật mã cần phải bảo vệ nội dung văn bản một cách hiệu quả, đảm bảo rằng chỉ những người có quyền hợp pháp mới có thể truy cập thông tin Điều này giúp ngăn chặn việc truy cập trái phép và bảo vệ quyền riêng tư của dữ liệu.
- Tạo các yếu tố xác thực thông tin, đảm bảo thông tin lưu hành trong hệ thống đến người nhận hợp pháp là xác thực
Tổ chức các sơ đồ chữ ký điện tử giúp ngăn chặn hiện tượng giả mạo và mạo danh trong việc gửi thông tin trực tuyến Ưu điểm lớn nhất của các hệ mật mã là khả năng đánh giá độ phức tạp tính toán mà kẻ xấu phải vượt qua để truy cập dữ liệu đã được mã hóa Mặc dù mỗi hệ mật mã có những ưu và nhược điểm riêng, nhưng việc đánh giá độ phức tạp tính toán cho phép chúng ta áp dụng các thuật toán mã hóa phù hợp với từng ứng dụng, tùy theo yêu cầu về mức độ an toàn.
Phân loại hệ mật mã:
Có nhiều loại hệ mật mã tùy theo cách phân loại Phân loại hệ mật mã dựa vào tính chất đối xứng của khóa có hai loại là:
- Hệ mật mã khóa đối xứng ( Hệ mật mã khóa bí mật)
- Hệ mật mã khóa bất đối xứng (Hệ mật mã khóa công khai) Mỗi hệ mật mã đều có những ưu điểm, khuyết điểm riêng
1.1.4 Hệ mật mã khóa bí mật
Hệ mật mã khóa bí mật, hay còn gọi là hệ mật mã khóa đối xứng, là loại hệ mật mã trong đó khóa lập mã và khóa giải mã là "đối xứng nhau" Điều này có nghĩa là nếu một người biết khóa lập mã, họ cũng có thể dễ dàng giải mã thông tin đã được mã hóa bằng khóa đó.
“dễ” tính được khóa kia Vì vậy phải giữ bí mật cả 2 khóa Trong rất nhiều trường hợp, khóa mã hóa và khóa giải mã là giống nhau
Ví dụ: hệ mật mã dịch chuyển, hệ mật mã Affine
Hệ mật mã khóa bí mật yêu cầu người gửi và người nhận thỏa thuận một khóa bí mật trước khi gửi thông báo Độ an toàn của hệ thống này phụ thuộc hoàn toàn vào việc bảo mật khóa; nếu khóa bị lộ, kẻ xấu có thể dễ dàng giải mã thông báo.
Sự mã hóa và giải mã trong hệ mật mã khóa đối xứng:
Hình 1.1: Sơ đồ minh họa mã hóa và giải mã với hệ mật mã khóa đối xứng Ở hình vẽ trên:
- K1 và K2 có thể trùng nhau,
- Hoặc K1 có thể được tính từ K2, và ngược lại
Ƣu, nhƣợc điểm của hệ mã hoá khóa đối xứng:
+ Thuật toán mã hóa và giải mã đơn giản + Thời gian mã hóa và giải mã nhanh
Các phương pháp mã hóa khóa đối xứng yêu cầu cả người mã hóa và người giải mã phải sử dụng chung một khóa, điều này tạo ra yêu cầu về việc giữ khóa hoàn toàn bí mật Do đó, nếu một khóa bị lộ, việc xác định khóa còn lại trở nên dễ dàng hơn.
Bài viết này phân tích hệ mật mã RSA và các biến thể của nó Hệ mật mã RSA, được phát triển bởi Ron Rivest, Adi Shamir và Leonard Adleman, là một trong những phương pháp mã hóa phổ biến nhất hiện nay Nó dựa trên nguyên lý toán học của số nguyên tố và phép nhân, đảm bảo tính bảo mật cao cho thông tin Các biến thể của RSA, như OAEP (Optimal Asymmetric Encryption Padding) và PSS (Probabilistic Signature Scheme), đã được phát triển để nâng cao tính an toàn và hiệu quả trong việc truyền tải dữ liệu Bài viết cũng đề cập đến ứng dụng thực tiễn của RSA trong các lĩnh vực như thương mại điện tử và truyền thông an toàn, nhấn mạnh tầm quan trọng của nó trong bảo vệ thông tin cá nhân và doanh nghiệp.
Nguyễn Thị Ngọc Anh – K16 – HTTT1
Một số công cụ toán học hỗ trợ
Số nguyên tố là những số nguyên chỉ chia hết được cho 1 và cho chính nó
1.2.1.2 Ƣớc chung lớn nhất và bội chung nhỏ nhất
- Khái niệm : d được gọi là ước chung lớn nhất (UCLN) của các số nguyên a1, a2, …, an nếu d thỏa mãn hai điều kiện sau :
(1) d là một ước chung của các số nguyên a1, a2, …, an ,
(2) Mọi ước chung của a1, a2, …, an đều là ước của d
- Ký hiệu: d = gcd (a1, a2, …, a n ) hay d = UCLN(a1, a2, …, a n )
- Khái niệm: m được gọi là bội số chung nhỏ nhất của các số nguyên a1, a2, …, an nếu thỏa mãn điều kiện sau :
(1) m là một bội số chung của a1, a2, …, an
(2) Mọi bội chung của a 1 , a2, …, a n đều là bội của m
- Ký hiệu: m = lcm(a 1 , a 2 , …, a n ) hay m = BCNN(a 1 , a 2 , …, a n )
Ví dụ: Cho a , b , gcd(12,15) = 3, lcm(12,15) = 60
(1) d = gcd(a1, a2, …, a n ) khi và chỉ khi tồn tại các số x 1 ,x2,…, xn sao cho: d = a1x1+a2x2+…+anxn
Hai số nguyên a và b gọi là nguyên tố cùng nhau khi UCLN(a,b)=1
Ví dụ : 9 và 10 nguyên tố cùng nhau vì UCLN(9,10)=1
- Zn = 0, 1, 2, , n-1 là tập các số nguyên không âm < n
- Z * n = e Zn, e là nguyên tố cùng nhau với n Tức là e # 0
Z 8 = {0, 1, 2, 3, 4, 5, 6, 7} Khi đó số phần tử của Z 8 là /Z 8 / = 8
= {1, 3, 5, 7} Khi đó số phần tử của Z 8 * là / Z 8 *
Hàm Phi Euler (n) có giá trị tại n bằng số các số không vượt quá n và nguyên tố cùng nhau với n
Nếu p là số nguyên tố, thì (p) = p-1
Do 7 là số nguyên tố, nên Tập các số nguyên dương nhỏ hơn 7 và nguyên tố cùng nhau với 7 là Z 7 * ={1, 2, 3, 4, 5, 6} (p) = p-1 = 7 - 1 = 6
Cho 3 số nguyên a, b, m (m > 0) Ta nói a và b “đồng dư” với nhau theo modulo m, nếu chia a và b cho m, ta nhận được cùng một số dư
Ví dụ: 8 ≡ 18 (mod 5) vì chia 8 và 18 cho 5, được cùng số dư là 3
- Nhận xét: Các mệnh đề sau đây là tương đương:
Bài luận này phân tích hệ mật mã RSA và các biến thể của nó Hệ mật mã RSA, được phát triển bởi Ron Rivest, Adi Shamir và Leonard Adleman, là một trong những phương pháp mã hóa phổ biến nhất hiện nay Nó dựa trên nguyên tắc toán học của số nguyên tố và khó khăn trong việc phân tích số lớn thành các thừa số nguyên tố Các biến thể của RSA bao gồm RSA-OAEP, RSA-PSS và các cải tiến khác nhằm tăng cường tính bảo mật và hiệu suất Sự phát triển của hệ mật mã RSA đã có ảnh hưởng lớn đến lĩnh vực an ninh thông tin, giúp bảo vệ dữ liệu trong các giao dịch trực tuyến và truyền thông điện tử.
Nguyễn Thị Ngọc Anh – K16 – HTTT1
(3) Tồn tại số nguyên t sao cho a = b + m t
- Các tính chất của quan hệ “đồng dƣ”
(1) Quan hệ “đồng dư” là quan hệ tương đương trong Z:
Trong lý thuyết số, với mọi số nguyên dương m, ta có các tính chất sau: tính chất phản xạ, a ≡ a (mod m) với mọi a thuộc Z; tính chất đối xứng, nếu a ≡ b (mod m) thì b ≡ a (mod m); và tính chất bắc cầu, nếu a ≡ b (mod m) và b ≡ c (mod m) thì a ≡ c (mod m).
(2)Tổng hay hiệu các “đồng dƣ”:
(a+b) (mod n) [(a mod n) + (b mod n)] (mod n) (a- b) (mod n) [(a mod n) - (b mod n)] (mod n)
1.2.1.7 Phân số liên tục (Continued Fraction)
Phân số liên tục, hay còn gọi là liên phân số, là một cách biểu diễn các số thực dương, bao gồm cả số hữu tỉ và số vô tỉ, dưới dạng phân số nhiều tầng.
Liên phân số đóng vai trò rất lớn trong việc nghiên cứu lí thuyết số
Phân số liên tục ở dạng chính tắc là biểu thức có dạng a n a a a
Trong đó: - a 0 là một số nguyên không âm
Phân số liên tục có khả năng biểu diễn chính xác các số thực Để đơn giản hóa, chúng ta quy ước viết phân số liên tục dưới dạng ngắn gọn hơn.
Do vậy một phân số p/q có thể được biểu diễn bằng một phân số liên tục là:
Trong đó, a i được tính bằng thương số lớn nhất của p và q theo thuật toán Euclidean Áp dụng thuật toán Euclidean với p và q, có được:
Ví dụ: Biểu diễn phân số liên tục cho phân số
415 Áp dụng thuật toán Euclidean với 415 và 93, ta có:
Suy ra, ta có biểu diễn phân số liên tục của 4 ; 2 , 6 , 7
* Định nghĩa hội tụ thứ i của phân số liên tục:
Với ≤ i ≤n, định nghĩa hội tụ thứ i của phân số liên tục [a0; a1, ,an] là: c i =[a 0 ; a 1 , ,a i ] (mỗi c i tương ứng với một phân số p i /q i ) pi/qi được tính như sau: n n n a a a a a q p a a a a a a a a a a a a a a a a a a q a p a a a a a a a a a a a q a p a a a a a a q a p a q p
Phân tích hệ mật mã RSA và các biến thể của nó là một chủ đề quan trọng trong lĩnh vực bảo mật thông tin Hệ mật mã RSA dựa trên nguyên tắc toán học của phân tích số nguyên tố, cung cấp một phương pháp an toàn cho việc mã hóa và giải mã dữ liệu Các biến thể của RSA, như RSA-OAEP và RSA-PSS, đã được phát triển để cải thiện tính bảo mật và khả năng chống lại các cuộc tấn công Việc hiểu rõ về cấu trúc và hoạt động của hệ mật mã RSA cùng với các biến thể của nó là cần thiết để đảm bảo an toàn cho thông tin trong môi trường số hiện đại.
Nguyễn Thị Ngọc Anh – K16 – HTTT1
*Định lý phân số liên tục:
1 d d c thì d c là một trong các hội tụ trong triển khai phân số liên tục của α
Từ định lý này ta có thể giải phương trình: ax – by = c Trong đó:
- c: có thể biết hoặc chưa biết nhưng biết ràng buộc trên kích thước của c Khi x thỏa mãn |x| < |b/(2c)|, chia cả hai vế phương trình cho bx, ta được:
Theo định lý phân số liên tục, y/x là một trong các hội tụ trong việc triển khai phân số liên tục của a/b Nếu x và y là các số nguyên tố, thì giá trị của phân số y/x cho phép chúng ta xác định được các giá trị x và y.
Có tham khảo tài liệu [9], [16]
1.2.2 Các định lý 1.2.2.1 Định lý Fermat
Nếu p là một số nguyên tố còn a là một số nguyên thì a p a (mod p)
Nếu p không chia hết a (tức là a(mod p) 0) thì a p-1 1(mod p)
Trong trường hợp đặc biệt n là số nguyên tố, ta có định lý Ferma
Nếu gcd(c, n) = 1 và a ≡ b (mod (n)) với a, b là các số tự nhiên, thì c a ≡ c b (mod n) và suy ra c a mod n = c a mod (n) mod m
Nếu các số nguyên e, d thỏa mãn e.d ≡ 1 (mod (n)), thì với mọi số c nguyên tố cùng nhau với m, ta có (c e ) d ≡ c (mod n)
1.2.2.3 Định lý phần dƣ Trung Hoa
Cho tập số nguyên tố cùng nhau từng đôi một m1, m2, , mr Với mỗi bộ số nguyên bất kỳ a1, a2, , ar, hệ phương trình đồng dư x ≡ a1 (mod m1), x ≡ a2 (mod m2), , x ≡ ar (mod mr) luôn có nghiệm duy nhất theo modulo m = m1.m2 mr Nghiệm này có thể tính được trực tiếp qua công thức: x = (a1 * m2 * m3 * * mr * b1 + m1 * a2 * m3 * * mr * b2 + m1 * m2 * a3 * * mr * b3 + + m1 * m2 * * mr-1 * ar * br) (mod m1 * m2 * m3 * * mr).
Trong đó bi = (m1m2 mi-1mi+1 mr) -1 , với mọi i = 1, 2, ,r
Ví dụ: Tìm nghiệm của hệ phương trình:
Các số 5353, 391 và 247 là nguyên tố cùng nhau, theo định lý Trung Hoa về số dư, hệ có nghiệm duy nhất theo modulo: m = 5353 * 391 * 247 = 516976681 Để tìm x mod m, ta tính các giá trị: m1 = m/5353 = 96577, y1 = 96577 - 1 mod 5353 = 5329; m2 = m/391 = 1322191, y2 = 1322191 - 1 mod 391 = 16; m3 = m/247 = 2093023, y3 = 2093023 - 1 mod 247 = 238 Cuối cùng, x = 31188 * 96577 * 5329 + 139 * 1322191 * 16 + 239 * 2093023 * 238 (mod m) = 13824 (mod m).
Nếu n là số nguyên tố, thì với mọi 1 a n-1: n a a (n-1)/2 (mod n)
Bài viết này phân tích hệ mật mã RSA và các biến thể của nó Hệ mật mã RSA là một trong những phương pháp mã hóa phổ biến nhất hiện nay, sử dụng nguyên lý toán học để bảo mật thông tin Các biến thể của RSA đã được phát triển nhằm cải thiện tính bảo mật và hiệu suất, đáp ứng nhu cầu ngày càng cao trong lĩnh vực an ninh mạng Việc hiểu rõ về RSA và các biến thể của nó là rất quan trọng để ứng dụng hiệu quả trong các hệ thống bảo mật hiện đại.
Nguyễn Thị Ngọc Anh – K16 – HTTT1
Nếu n là hợp số thì:
Solovay_Strassen (cải tiến bởi Lehmann):
Nếu n là số nguyên tố, thì với mọi 1 a n-1: a (n-1)/2 1 (mod n);
Nếu n là hợp số thì:
This algorithm, developed by Rabin, is based on concepts initially proposed by Miller Various versions of the algorithm have been introduced at the National Institute of Standards and Technology (NIST).
Input: n là một số nguyên Output: n là số nguyên tố hoặc hợp số Thuật toán:
(2) Chọn một số ngẫu nhiên a ( 1