04/20/23 1
Mật mã khóa công khai
Giáo viên: Nguyễn Hiếu Minh
Bộ môn: An ninh mạng
04/20/23 2
Các vấn đề trình bày
Các nguyên tắc chung xây dựng các thật toán mật mã khóa công khai.
Các vấn đề RSA và logarit rời rạc. Hệ mật RSA. Hệ mật Elgamal. Mật mã với việc sử dụng vành Elliptic. Các phương pháp tấn công các hệ
mật khóa công khai.
04/20/23 3
1. Giới thiệu chung
Mật mã với khoá công khai được đánh giá là bước tiến quan trọng có tính cách mạng trong lịch sử mật mã. .
Trước hết, mật mã khoá công khai sử dụng các hàm toán học không phải là phép thay thế và phép chuyển vị.
Quan trọng hơn là nó là loại mã không đối xứng, tức là hệ thống sử dụng hai khoá khác nhau khi mã và giải mã.
04/20/23 4
Nhận xét
Việc sử dụng hai khoá làm thay đổi sâu sắc trong các vấn đề như:
bảo mật tin tức, phân phối khoá, thủ tục xác thực.
04/20/23 5
Vấn đề thứ nhất
Nhận xét về một số ý kiến phát biểu: Cho rằng mật mã với khoá công khai có độ
an toàn cao hơn đối với thám mã so với mật mã truyền thống.
Thực ra vấn đề an toàn của bất kỳ loại mật mã nào phụ thuộc vào độ dài khoá, độ phức tạp của thuật toán và phụ thuộc vào khối lượng cần phải tính toán khi thám mã.
04/20/23 6
Nhận xét
Về nguyên tắc không có sự phân biệt giữa mật mã truyền thống và mật mã với khoá công khai.
04/20/23 7
Vấn đề thứ hai
Có ý kiến sai lầm cho rằng mật mã với khoá công là một xu thế vạn năng, rằng mật mã truyền thống trở nên lỗi thời không cứu vãn nổi.
Thực ra ngược lại, mật mã truyền thống và mật mã khoá công khai cùng song song tồn tại.
04/20/23 8
Vấn đề thứ ba
Vấn đề cuối cùng có ý nghĩ sai lầm cho rằng trong hệ thống mật mã công khai thì bài toán phân phối khoá trở thành bài toán tầm thường.
Thực ra trong hệ thống mật mã khoá công khai thì bài toán phân phối khoá có nhiều phát triển.
04/20/23 9
Nhận xét
Cần phải thiết lập các thủ tục đặc biệt, nói chung phải xây dựng trung tâm phân phối khoá, phải ứng dụng các thủ tục không đơn giản hơn, cũng như không hiệu quả hơn so với mật mã truyền thống.
04/20/23 10
2. Nguyên tắc xây dựng hệ mật khóa công khai
Ý tưởng của việc xây dựng đã được phát sinh từ việc cố gắng giải quyết hai vấn đề phức tạp nhất khi sử dụng mật mã truyền thống.
Vấn đề 1: Phân phối khóa. Vấn đề 2: Chữ ký số.
04/20/23 11
Vấn đề 1
Vấn đề phân phối khoá khi sử dụng mật mã truyền thống đòi hỏi khi hai người tham giam truyền số liệu cho nhau thì hoặc là: một phía phải có khóa chung để từ đó phát sinh khoá
phiên, rồi thực hiện trao đổi khoá phiên cho phía kia, hoặc khoá phiên được phát sinh, rồi được phân phối cho
cả hai phía từ một trung tâm được uỷ quyền. Diffie và Hellman là hai người sáng lập ra mật mã
khoá công khai cho rằng yêu cầu thứ hai đã chống lại chính bản chất của mã mật là khả năng bảo đảm độ mật hoàn toàn khi trao đổi khoá.
04/20/23 12
Vấn đề 2
Được hình thành bởi Diffe hoàn toàn không quan hệ với vấn đề thứ nhất. Đó là vấn đề "chữ ký số".
04/20/23 13
2.1. Hệ mật với khóa công khai
Các thuật toán mật mã với khoá công khai phụ thuộc vào một khoá để mã hoá, còn khoá thứ hai liên hệ chặt chẽ với khoá thứ nhất là khoá để giải mã.
04/20/23 14
Các đặc điểm quan trọng
Với quan điểm tính toán, việc xác định khoá giải mã là không thực tiễn, khi chỉ được biết thuật toán sử dụng và khoá mã hoá.
Ngoài ra với một vài thuật toán (chẳng hạn RSA) có đặc tính sau:
Bất kì khoá nào từ cặp khoá phát sinh, có thể dùng để mã hoá, còn khoá kia dùng để giải mã.
04/20/23 15
Mật mã với khóa công khai
04/20/23 16
Mô tả quá trình hoạt động
1. Mỗi một hệ thống cụ thể trong mạng phát sinh cặp khoá để mã hoá và giải mã các tin tức nhận được.
2. Mỗi người trong hệ thống công bố một khoá để mã hoá, khoá này được truyền công khai trên mạng, gọi là khoá công khai. Khoá thứ hai, tạo thành cặp phù hợp với khoá công khai, được gọi là khoá riêng.
04/20/23 17
(tiếp)
3. Nếu người sử dụng A muốn gửi tin tức cho người sử dụng B, thì khi mã hoá tin tức anh ta phải sử dụng khoá công khai của B.
4. Khi người sử dụng B nhận được tin tức, anh ta giải mã bằng khoá riêng của mình. Những người sử dụng khác không có khả năng giải mã, bởi vì khoá riêng của B chỉ có B biết.
04/20/23 18
Nhận xét
Tất cả người tham gia truy nhập tới các khoá công khai, còn khoá riêng được phát sinh tại chỗ của mỗi người tham gia.
Chừng nào hệ thống còn lưu giữ được các khoá riêng ở dạng mật thì chừng đó tin tức được bảo mật.
Bất kỳ thời điểm nào người sử dụng hệ thống cũng có thể thay đổi khoá riêng và công bố khoá công khai trên mạng để thay thế cho khoá công khai cũ.
04/20/23 19
So sánh một vài đặc trưng quan trọng của hai loại mật mã
Mật mã truyền thống Mật mã với khoá công khai
Cần thiết để thực hiện
1. Một thuật toán với chỉ một khoá vừa để mã hoá, vừa để giải mã
2. Người gửi và người nhận sử dụng cùng thuật toán và khoá
Cần thiết để thực hiện
1. Một thuật toán với hai khoá, một khoá để mã hoá, khoá khác để giải mã
2. Người gửi và người nhận, mỗi người có một cặp khoá phù hợp
04/20/23 20
(tiếp)Cần thiết để an toàn
1. Khoá cần phải được lưu giữ mật
2. Không có khả năng thực tiễn để giải mã tin tức, khi không có những thông tin bổ xung.
3. Biết thuật toán và có những mẫu văn bản mã, cần phải không có khả năng khôi phục khoá.
Cần thiết để an toàn
1. Một khoá cần phải được lưu giữ mật, còn khoá kia để công khai.
2. Không có khả năng thực tiễn, để giải mã tin tức, khi không có những thông tin bổ xung
3. Biết thuật toán và một khoá, đồng thời có những mẫu văn bản mã, cần phải không có khả năng khôi phục khoá còn lại.
04/20/23 21
Vấn đề bảo mật
04/20/23 22
Các phần tử cơ bản
Bản rõ X. Bản mã Y. Cặp khóa công khai và riêng (KUB,
KRb).
Mã hóa: Y = EKUb(X)
Giải mã: X = DKRb(Y)
04/20/23 23
Vấn đề xác thực
04/20/23 24
Vấn đề bảo mật và xác thực
04/20/23 25
2.2. Ứng dụng hệ mật khóa công khai
Tuỳ thuộc vào mục đích sử dụng, người gửi có thể sử dụng
khoá riêng của mình, hoặc khoá công khai của người nhận, hoặc cả hai nếu đòi hỏi một chức năng
đặc biệt của hệ thống mật mã.
04/20/23 26
Ứng dụng
Mã/giải mã: Người gửi mã hoá tin tức với việc sử dụng khóa công khai của người nhận.
Chữ ký số: Người gửi ký xác nhận tin tức gửi bằng khóa riêng của mình.
Trao đổi khoá: Hai phía cần trao đổi tin tức, cần phải trao đổi khóa phiên với nhau.
04/20/23 27
Các ứng dụng của các hệ mật mã với khoá công khai
Thuật toán Mã/giải mã
Chữ ký số Trao đổi khóa
RSA Có Có Có
Diffie-Hellmal
Không Không Có
DSS Không Có Không
04/20/23 28
2.3. Điều kiện ứng dụng các phương
pháp mật mã với khoá công khai
Diffie và Hellman không chứng minh, nhưng chỉ ra các điều kiện cần phải có để thoả mãn ở các thuật toán như thế:
1. Phía B: phát sinh cặp khoá (khoá công khai KUb và khoá riêng KRb) không cần đòi hỏi các tính toán khó khăn.
2. Phía A: không đòi hỏi các phép tính khó khăn trong quá trình tạo văn bản mã khi có khoá công khai và tin tức M, đòi hỏi phải mã hoá:
C = EKUb(M).
04/20/23 29
(tiếp)
3. Phía B: không đòi hỏi các phép tính khó khăn trong khi giải mã các văn bản mã nhận được từ khoá riêng của mình với mục đích dễ khôi phục tin tức gốc:
M = DKRb(C) = DKRb{EKUb(M)]. 4. Thám mã: không có khả năng khôi phục
khoá riêng KRb khi có trong tay khoá công khai KUb.
04/20/23 30
(tiếp)
5. Thám mã: không có khả năng khôi phục bản tin gốc M, khi có trong tay khoá chung KUb và văn bản mã C.
6. Chức năng mã hoá và chức năng giải mã có thể ứng dụng theo trình tự bất kỳ:
M = EKUb [DKRb(M)].
04/20/23 31
Nhận xét
Để thực hiện được tất cả các đòi hỏi trên là điều rất phức tạp.
Đã trải qua vài chục năm của việc phát triển hệ mật mã khoá công khai nhưng chỉ có một vài thuật toán được sử dụng rộng rãi.
04/20/23 32
Giải thích nguyên nhân
Những đòi hỏi trên dẫn đến điều cần thiết phải tìm ra hàm một chiều (one-way function) với bẫy sập.
Hàm được gọi là hàm một chiều nếu nó ánh xạ đối số của mình trong một giải giá trị nào đó, mà mỗi giá trị của hàm có duy nhất một giá trị ngược.
04/20/23 33
(tiếp)
Giá trị của hàm tính toán dễ dàng, còn giá trị ngược thì thực tế không có khả năng tính.
Y = f(X) tính toán dễ dàng, X = f-1(Y) thực tế không có khả năng
tính toán.
04/20/23 34
(tiếp)
Trong trường hợp chung thuật ngữ “dễ dàng tính toán” có nghĩa rằng vấn đề có thể được giải quyết trong thời gian đa thức, được xem xét như một hàm độ dài của giá trị đầu vào.
Ví dụ: độ dài của giá trị đầu vào bằng n bit, thì thời gian đòi hỏi để tính toán hàm tỉ lệ với na, ở đây a là một giá trị cố định nào đó. Các thuật toán như vậy được gọi là thuật toán thuộc lớp P.
04/20/23 35
(tiếp)
Thuật ngữ “thực tế không có khả năng tính toán được” để chỉ khái niệm trừu tượng hơn.
Trong trường hợp chung, có thể chỉ ra rằng hàm không có khả năng tính toán được là hàm mà khối lượng tính toán tăng nhanh hơn thời gian đa thức theo độ dài của giá trị đầu vào.
04/20/23 36
(tiếp)
Chẳng hạn nếu giá trị đầu vào có giá trị n bit thì thời gian đòi hỏi để tính toán hàm tỉ lệ 2n, những hàm như vậy thực tế coi là không có khả năng tính toán.
04/20/23 37
Nhận xét
Đối với mỗi thuật toán cụ thể thực không đơn giản để làm sáng tỏ vấn đề thuật toán đó phức tạp đến mức nào.
Để làm điều đó, thường xác định mức độ phức tạp của thuật toán trong trường hợp xấu nhất, hoặc trong trường hợp trung bình.
Đối với mật mã các đánh giá này là vô ích, vì mật mã yêu cầu không thể tính toán hàm ngược hầu như đối với tất cả các giá trị đầu vào, chứ không phải chỉ đối với giá trị trung bình hay giá trị xấu nhất .
04/20/23 38
(tiếp)
Hàm một chiều: dễ dàng tính toán với một phía và thực tế không thể tính toán được đối với phía ngược lại, khi không có thêm các thông tin bổ xung.
Khi có thêm các thông tin bổ sung thì hàm ngược có thể tính toán được sau một thời gian nhất định.
04/20/23 39
(tiếp)
Y = fk(X) Tính toán dễ dàng nếu biết k và X.
X = fk-1(Y) Tính toán dễ dàng nếu biết k và
Y X = fk
-1(Y) Thực tế hàm này không có khả năng tính được nếu biết Y, mà không biết k
Để có thể thực hiện được mật mã với khoá công khai cần phải tìm được hàm một chiều với bẫy sập.
04/20/23 40
2.4. Thám mã hệ mật khóa công khai
Cũng như trong trường hợp mật mã truyền thống, sơ đồ mật mã với khoá công khai, vấn đề dễ tổn thương theo quan điểm thám mã là phương pháp thử tất cả các khả năng của khoá.
Để chống lại điều đó, ở đây phải sử dụng khoá dài.
04/20/23 41
(tiếp)
Mật mã với khoá công khai phụ thuộc vào một vài hàm toán học ngược, có đặc tính đặc biệt.
Sự phức tạp của tính toán các hàm đó không tỷ lệ tuyến tính với số lượng bit khoá mà tăng rất nhanh.
04/20/23 42
Nhận xét
Như vậy, độ dài khoá phải chọn đủ lớn để việc thử chọn tất cả các khả năng của khoá thực tiễn là không thể thực hiện được.
Tuy nhiên lại phải đủ nhỏ để có thể sử dụng các toán tử mã hoá và giải mã trong một khoảng thời gian chấp nhận đối với mọi ứng dụng.
04/20/23 43
Trường hợp 2
Thử tìm khả năng tính toán khoá riêng, khi biết khoá công khai.
Thực tiễn chưa có một chứng minh nào của toán học là không thể thực hiện được khả năng đó đối với hệ mật với khoá công khai.
04/20/23 44
Trường hợp 3
Thử tất cả với các khả năng của khóa công khai.
04/20/23 45
3. Thuật toán RSA
Diffie và Hellman là người đầu tiên xây dựng nguyên lí mật mã khoá công khai vào năm 1976.
Tuy nhiên, trước đó vào những năm 1960 những tác giả ở NSA đã xây dụng ý tưởng về xu thế của mật mã khoá với công khai.
Vào năm 1977 Ron Rivest, Adi Shamir, Len Adleman công tác ở MTI đã xây dựng thuật toán mật mã với khoá công khai.
04/20/23 46
Mô tả
Sơ đồ RSA là sơ đồ mật mã khối, trong đó cả văn bản rõ và văn bản mã là các số nguyên trong dải từ 0 đến n-1 đối với một giá trị n nào đó.
04/20/23 47
(tiếp)
Văn bản rõ được mã hoá bởi các khối, mỗi khối có giá trị nhị phân nhỏ hơn một giá trị n đã cho nào đó.
Điều đó có nghĩa rằng độ dài khối cần phải nhỏ hơn hoặc bằng log2(n). Trong thực tiễn độ dài khối chọn bằng 2k bit, ở đây 2k < n 2k+1.
04/20/23 48
(tiếp)
Mã hoá với khối văn bản rõ M và mã hoá với khối văn bản mã C, có thể trình bày dưới dạng công thức:
C = Me mod n,
M = Cd mod n = (Me)d mod n = Med mod n.
04/20/23 49
(tiếp)
Cả người gửi, người nhận đều phải biết giá trị n. Người gửi biết giá trị của e, còn chỉ có người nhận biết giá trị của d.
Như vậy, sơ đồ này là thuật toán mật mã với khoá công khai: KU = {e, n} và khoá riêng KR = {d, n}.
04/20/23 50
Các đòi hỏi
1. Cần phải tồn tại các giá trị: e, d và n để Med = M mod n, đối với tất cả M < n.
2. Cần phải tương đối dễ tính toán Me, Cd đối với tất cả các giá trị M < n.
3. Cần phải trên thực tế không có khả năng xác định d khi biết e và n.
04/20/23 51
Xét yêu cầu 1
Từ định lí Euler, với hai số nguyên tố p và q và hai số nguyên m, n với n = p q và 0 < m < n, và tích với số nguyên k được thực hiện theo quan hệ sau:
mk(n)+1 = mk(p-1)(q-1)+1 m mod n,
04/20/23 52
(tiếp)
Ơ' đây, (n) là hàm Euler, giá trị của (n) = (p-1)(q-1) là số nguyên dương, nhỏ hơn n và quan hệ nguyên tố cùng nhau với n.
04/20/23 53
(tiếp)
Như vậy, đòi hỏi quan hệ nhận được với điều kiện:
ed = k(n) +1
Hay: ed mod (n) = 1
Tương đương:
ed 1 mod (n),
d e-1 mod (n).
04/20/23 54
(tiếp)
Có nghĩa là e và d là hai số có quan hệ nghịch đảo theo modul (n).
Khi chú ý tới các qui tắc số học trong lớp số dư, điều đó có nghĩa rằng chỉ khi d (và cả e) là nguyên tố cùng nhau với (n).
Viết một cách tương đương có quan hệ gcd(d, (n)) = 1 (gcd = ước số chung lớn nhất).
04/20/23 55
Mô tả sơ đồ RSA
04/20/23 56
Ví dụ
Chọn hai số nguyên tố, chẳng hạn p = 11, q = 17.
Tính tích: n = p q = 11 17 = 187. Tính (n) = (p-1) (q-1) =10 16 = 160. Chọn e là số nguyên tố cùng nhau với (n)
=160 và phải nhỏ hơn (n). Trong trường hợp này chọn e = 7.
Xác định d để de = 1 mod 160 và d < 160. Giá trị phù hợp để chọn là d = 23 , bởi vì 23 7 = 161 = 1 160 + 1.
04/20/23 57
Mô tả
04/20/23 58
3.1. Phương diện tính toán
Xem xét vấn đề phức tạp tính toán, được sử dụng trong thuật toán RSA.
tính toán khóa, tính toán trong mã hoá/ giải mã.
04/20/23 59
a) Mã hoá và giải mã
Trong thuật toán RSA cả mã hoá và giải mã đều sử dụng phép tính nâng lên luỹ thừa của một số nguyên theo số mũ nguyên so sánh theo mod n.
Nếu sử dụng phép tính trực tiếp nâng lên luỹ thừa nguyên rồi sau đó mới tính theo mod n, thì các giá trị trung gian sẽ rất cồng kềnh.
04/20/23 60
(tiếp)
Có thể sử dụng các đặc tính của số học trong lớp số dư:
[(a mod n) (b mod n) ] mod n = (a b) modn.
Như vậy, có thể tính toán kết quả trung gian theo mod n. Điều này tạo ra các khả năng thực tiễn tính toán.
04/20/23 61
(tiếp)
Một vấn đề khác là hiệu quả của việc thực hiện các phép tính nâng lên luỹ thừa nguyên theo số mũ nguyên, là bởi vì khi sử dụng thuật toán RSA chúng ta cần phải thực hiện với các số mũ lớn.
04/20/23 62
(tiếp)
Chẳng hạn cần tính x16. Ta có thể tính trực tiếp bằng cách nhân x với 15 lần như sau:
x16 = x x x x x x x x x x x x x x x x.
Tuy nhiên, ta có thể thực hiện bằng phép tính bình phương bốn lần của số: x2, x4, x8, để được x16.
04/20/23 63
(tiếp)
Trong trường hợp chung, chúng ta cần phải tính am với a, m là các số nguyên dương. Nếu trình bày m dưới dạng số nhị phân bk, bk-1, …, bo, thì ta có:
04/20/23 64
(tiếp)
04/20/23 65
(tiếp)
Kết quả tính toán của thuật toán để tính nhanh nâng lên luỹ thừa đối với ab mod n, khi a=7, b=560=1000110000, n = 561.
04/20/23 66
Thuật toán
04/20/23 67
b) Tính toán khóa
Trước hết chúng ta nên nhớ rằng đối với hệ mật mã với khoá công khai, mỗi một người tham gia cần phát sinh một cặp khoá. Có nghĩa là phải thực hiện bài toán sau:
Xác định hai số nguyên tố p và q; Chọn một trong hai số hoặc e hoặc d
và tính toán số còn lại.
04/20/23 68
Khảo sát thủ tục chọn số p và q
Giá trị n = p q công khai, để tránh tìm p và q đơn giản → thì p và q phải là các số nguyên tố có giá trị lớn.
Đồng thời các phương pháp tìm ra tập hợp các số p và q có giá trị lớn phải có tính hiệu quả thực tiễn.
04/20/23 69
(tiếp)
Thử nghiệm. Các thử nghiệm mang đặc trưng xác
xuất → chỉ xác định số đã chọn là số nguyên tố theo xác suất.
04/20/23 70
Thủ tục chọn số nguyên tố
1. Chọn một số nguyên lẻ n một cách ngẫu nhiên (chẳng hạn sử dụng sự phát sinh các số giả ngẫu nhiên).
2. Chọn một số nguyên a < n theo một cách ngẫu nhiên nào đó.
3. Thực hiện thử nghiệm xác suất trên số nguyên tố, chẳng hạn thử nhiệm Miller- Rabin. Nếu n không chịu đựng được các cuộc thử nghiệm, thì loại bỏ số n này và quay lại bước 1.
4. Nếu n chịu đựng được hàng loạt các thử nghiệm lặp lại, thì coi n xứng đáng là số nguyên tố. Nếu chưa tin tưởng, thì quay lại bước thứ 2.
04/20/23 71
Chọn e tính d hoặc ngược lại
Trong trường hợp thứ nhất, cần thiết chọn giá trị e sao cho gcd ((n), e) = 1 và sau đó tính toán giá trị d e-1 mod (n).
Thuật toán để tính đồng thời gcd của hai số nguyên và nếu gcd bằng 1, thì cho phép xác định nghịch đảo đối với một từ các số nguyên theo modul của số kia (thuật toán Euclide).
04/20/23 72
3.2. Độ an toàn của RSA
Có ba khả năng dẫn đến thám mã RSA như sau: Phép chọn đơn giản: Trong trường hợp này thực
hiện kiểm tra tất cả các khả năng của khoá riêng. Phép phân tích toán học: Tồn tại một vài xu thế
của loại này, nhưng tất cả chúng theo bản chất đều tương đương với bài toán xác định thừa số của tích của hai số nguyên tố.
Phép phân tích thời gian tiêu tốn: Dựa vào phép phân tích thời gian cần thiết thực hiện thuật toán giải mã.
04/20/23 73
Lựa chọn đơn giản
Độ an toàn chống lại phép chọn đơn giản trong trường hợp thuật toán RSA, cũng như đối với mọi hệ thống mật mã khác, là sử dụng không gian khoá lớn.
Với quan điểm này số bit trong e và d càng lớn càng tốt.
Tuy nhiên, vì sự khá phức tạp khi phát sinh khoá, cũng như khi mã/giải mã, thì kích thước khoá càng lớn dẫn đến hệ thống làm việc càng chậm.
04/20/23 74
Vấn đề phân giải ra thành thừa số
Có thể phân chia ra thành ba xu thế toán học khác nhau trong thám mã thuật toán RSA:
Phân giải n ra thành hai thừa số nguyên tố của nó. Điều đó dẫn đến tính được (n) = (p-1)(q-1) và trên cơ sở đó có thể xác định được d e-1 mod (n).
Xác định trực tiếp (n), chứ không phải ngay từ đầu xác định p và q. Điều đó cũng cho phép xác định d e-1 mod (n).
Xác định trực tiếp d, chứ không phải ngay từ đầu xác định (n).
04/20/23 75
Nhận xét
Bài toán xác định (n) theo n, tương đương bài toán phân giải số n thành thừa số nguyên tố.
Ngày nay, cũng đã chứng tỏ rằng thuật toán xác định d khi biết e và n, nó cũng đòi hỏi tiêu tốn thời gian như bài toán phân giải n thành hai thừa số nguyên tố.
04/20/23 76
(tiếp)
Như vậy, vấn đề thời gian tiêu tốn cho giải bài toán phân tích n ra thành thừa số nguyên tố, được sử dụng làm chỉ tiêu định lượng đánh giá độ an toàn của thuật toán RSA.
04/20/23 77
Ví dụ
Vào năm 1977 khi thuật toán RSA mới ra đời, các độc giả của tờ tạp chí “Scientific American” đã nhận được một văn bản mã được trình bày trong mục “trò chơi toán học” của Martin Gardner. Ai giải được văn bản mã đó sẽ được nhận 100 đôla.
Theo đánh giá, bài toán này không có thể giải sớm hơn 40 triệu lũy thừa bốn năm.
04/20/23 78
(tiếp)
Nhưng vào tháng giêng năm 1994 một nhóm sử dụng internet đã cùng cộng tác với nhau để giải bài toán này trong vòng tám tháng.
Bài toán này đã sử dụng khoá công khai dài 129 con số trong hệ 10 (độ dài của n) và bằng khoảng 428 bit.
04/20/23 79
Phương pháp sử dụng φ(n)
Giả sử người tấn công biết được giá trị φ(n).
Khi đó việc xác định giá trị p, q được đưa về việc giải hai phương trình sau:
n = p q
(n) = (p-1)(q-1)
04/20/23 80
(tiếp)
Thay q = n/p, ta được phương trình bậc hai:
p2 – (n - (n) + 1)p + n = 0 p, q chính là hai nghiệm của phương
trình bậc hai này.
04/20/23 81
Sự tiến bộ trong việc giải quyết vấn đề phân giải ra các thừa số
Số lượng con số hệ 10
Gần đúng số lượng
bit
Ngày thực hiện
Yêu cầu số MIPS
năm
Thuật toán sử
dụng
100 332 4-1991 7 Sàng bậc 2
110 365 4-1992 75 Sàng bậc 2
04/20/23 82
(tiếp)
120 398 6-1993 830 Sàng bậc 2
129 428 4-1994 5000 Sàng bậc 2
130 431 4-1996 500 Sàng trong
trường số dạng chung
04/20/23 83
Nhận xét
Nguy cơ đối với khoá có độ dài lớn có hai mặt:
liên tục tăng khối lượng tính toán của các máy tính hiện đại.
liên tục phải hoàn thiện thuật toán phân giải ra các thừa số nguyên tố.
04/20/23 84
So sánh hai phương pháp
04/20/23 85
Chọn n
Việc chọn p và q phải có những hạn chế sau: Giá trị p và q cần phải khác nhau theo độ dài đến
vài bậc. Chẳng hạn các p và q cần rơi vào khoảng từ 1075 đến 10100
Cả (p - 1) cũng như (q - 1) cần có thừa số nguyên tố lớn.
gcd(p -1, q - 1) cần phải đạt được càng nhỏ. Ngoài ra, như đã chứng minh rằng nếu e < n và d < n1/4, thì d có thể xác định được dễ dàng.
04/20/23 86
Phân tích chi phí thời gian
Như đã được xác nhận bởi chuyên gia hiệu đính về mật mã Paul Kocher: đối phương có thể nhận được khả năng xác định khoá riêng nhờ phân tích chi phí thời gian cần thiết cho máy tính để giải mã tin tức.
04/20/23 87
Nhận xét
Phân tích chi phí thời gian có thể sử dụng không chỉ trong trường hợp RSA, mà còn đối với các hệ mật mã với khoá công khai khác.
Các cuộc tấn công loại này thể hiện sự nguy hiểm theo hai nguyên nhân: chúng có thể dẫn ra hướng không chờ đợi nhất, và tính toán trước sự phân tích chỉ có văn bản mã.
04/20/23 88
(tiếp)
Phương pháp phân tích chi phí thời gian trong chừng mực nào đấy tương tự như xu hướng bẻ khoá, đoán đúng ra tổ hợp ổ khoá của két sắt, sẽ đòi hỏi bao nhiêu thời gian để xoay vặn thiết bị khoá từ số này đến số kia.
04/20/23 89
Các phương pháp phòng chống
Thực hiện toán tử nâng lên luỹ thừa với thời gian không đổi: thực hiện thay đổi thuật toán sao cho tất cả các phép nâng lên luỹ thừa chiếm cùng khoảng thời gian kể từ khi bắt đầu thực hiện cho đến khi đạt tới kết quả.
Làm điều đó đơn giản, nhưng khi đó sẽ làm tăng thời gian thực hiện thuật toán nói chung.
04/20/23 90
(tiếp)
Các giữ chậm ngẫu nhiên: có ảnh hưởng nhỏ đến thời gian chung của sự thực hiện gây ra bởi sự bổ xung trong thuật toán nâng luỹ thừa do các giữ chậm ngẫu nhiên, dẫn đến giảm nhỏ tác dụng của thám mã dựa trên phân tích chi phí thời gian.
Nhưng đồng thời như nhận xét của Kocher, nếu sự phòng vệ do bổ sung các giữ chậm ngẫu nhiên không hoàn hảo, thì đối phương vẫn còn khả năng phân tích, ngay cả trong trường hợp có ảnh hưởng của các giữ chậm ngẫu nhiên này.
04/20/23 91
(tiếp)
Che dấu: Nhân văn bản mã với một số ngẫu nhiên như là thực hiện nâng lên luỹ thừa.
Điều này không cho phép đối phương biết các bit như thế nào của văn bản mã đã được gia công bổ xung và đồng thời không tạo cho đối phương dẫn ra sự phân tích theo loạt, đây là xu thế riêng được thực hiện dựa trên sự phân tích chi phí thời gian.
04/20/23 92
Ví dụ
04/20/23 93
4. Hệ mật Elgamal
04/20/23 94
Nhận xét
04/20/23 95
Hình thành khóa
04/20/23 96
Quá trình mã hóa
04/20/23 97
Quá trình giải mã
04/20/23 98
(tiếp)
04/20/23 99
5. Phương pháp ECC
Hệ thống mã hóa khóa công cộng dựa trên việc sử dụng các bài toán khó giải quyết. Vấn đề khó ở đây chính là việc số lượng phép tính cần thiết để tìm ra một lời giải cho bài toán là rất lớn.
Trong lịch sử 30 năm của ngành mã hóa bất đối xứng đã có nhiều đề xuất khác nhau cho dạng bài toán như vậy, tuy nhiên chỉ có hai trong số các đề xuất đó còn tồn tại vững đến ngày này.
04/20/23 100
Hai bài toán đó bao gồm:
bài toán logarit rời rạc (discrete logarithm problem)
và bài toán phân tích thừa số của số nguyên.
04/20/23 101
(tiếp)
Cho đến năm 1985, hai nhà khoa học Neal Koblitz và Victor S. Miller đã độc lập nghiên cứu và đưa ra đề xuất ứng dụng lý thuyết toán học đường cong elliptic (elliptic curve) trên trường hữu hạn.
Đường cong elliptic – cũng như đại số hình học – được nghiên cứu rộng rãi trong vòng 150 năm trở lại đây và đã đạt được một số kết quả lý thuyết có giá trị.
04/20/23 102
(tiếp)
04/20/23 103
Nhận xét
Tính bảo mật của hệ thống mã hóa sử dụng đường cong elliptic dựa trên điểm mấu chốt là độ phức tạp của bài toán logarit rời rạc trong hệ thống đại số.
Bài toán logarit rời rạc trên đường cong elliptic chưa có thuật toán nào có thời gian thực hiện nhỏ hơn cấp lũy thừa.
04/20/23 104
5.1. Công thức Weierstrasse và đường cong elliptic
Gọi K là một trường hữu hạn hoặc vô hạn. Một đường cong elliptic được định nghĩa trên trường K bằng công thức Weierstrass: y2 + axy + by = x3 + cx2 + dx + e, ở đây a, b, c, d, e là các số thỏa mãn một vài điều kiện đơn giản nào đó và thuộc K.
04/20/23 105
Ví dụ về đường cong elliptic
04/20/23 106
5.2. Đường cong elliptic trên trường R2
Đường cong elliptic E trên trường số thực R là tập hợp các điểm (x, y) thoả mãn công thức:
cùng với một điểm đặc biệt O được gọi là điểm tại vô cực (cũng là phần tử identity).
04/20/23 107
(tiếp)
Cặp giá trị (x, y) đại diện cho một điểm trên đường cong elliptic và tạo nên mặt phẳng tọa độ hai chiều (affine) R × R.
Đường cong elliptic E trên R2 được gọi là định nghĩa trên R, ký hiệu là E(R).
04/20/23 108
Phép cộng
04/20/23 109
(tiếp)
Phép cộng điểm (ESUM) được định nghĩa trên tập E(R) của các điểm (x, y).
Điểm tại vô cực O là điểm cộng với bất kỳ điểm nào cũng sẽ ra chính điểm đó.
04/20/23 110
(tiếp)
04/20/23 111
Phép công trên đường cong elliptic
04/20/23 112
Nhận xét
04/20/23 113
(tiếp)
04/20/23 114
Thuật toán cộng điểm
04/20/23 115
(tiếp)
04/20/23 116
Phép nhân đôi
04/20/23 117
(tiếp)
Xét phép nhân đôi (EDBL): nếu cộng hai điểm P, Q E(R) với P = Q thì đường thẳng L sẽ là tiếp tuyến của đường cong elliptic tại điểm P.
Trường hợp này điểm –R sẽ là giao điểm còn lại của L với E. Lúc đó R = 2P.
04/20/23 118
5.3. Đường cong elliptic trên trường hữu hạn
Đường cong elliptic được xây dựng trên các trường hữu hạn. Có hai trường hữu hạn thường được sử dụng: trường hữu hạn Fq với q là số nguyên tố hoặc q là 2m (m là số nguyên).
04/20/23 119
(tiếp)
Tùy thuộc vào trường hữu hạn Fq, với mỗi bậc của q, tồn tại nhiều đường cong elliptic.
Do đó, với một trường hữu hạn cố định có q phần tử và q lớn, có nhiều sự lựa chọn nhóm đường cong elliptic.
04/20/23 120
5.4. Đường cong elliptic trên trường Fp (p là số nguyên tố)
Định nghĩa Cho p là số nguyên tố (p > 3), cho a, b
Fp sao cho 4a3 + 27b2 ≠ 0 trong trường Fp. Một đường cong elliptic E(Fp) trên Fp (được định nghĩa bởi các tham số a và b) là một tập hợp các cặp giá trị (x, y) (x, y Fp) thỏa mãn công thức: y2 = x3 + ax + b,
04/20/23 121
(tiếp)
cùng với điểm O đặc biệt gọi là điểm vô cực và có thể biểu diễn dưới dạng O = (x, ∞).
Số lượng điểm của E(Fp) là #E(Fp) thỏa mãn định lý Hasse.
04/20/23 122
Chú ý
Độ phức tạp của thuật toán xây dựng trên nhóm đường cong Elliptic phụ thuộc vào số điểm trên đường cong đó.
04/20/23 123
Định lý Hasse
Số các điểm trên đương cong Elliptic thỏa mãn bất đẳng thức sau:
ppFEpp p 21)(#21
04/20/23 124
Bậc của điểm
Cho điểm P(x, y) thuộc đường cong elliptic. Bậc n của điểm P(x, y) là số nguyên dương thỏa mãn biểu thức:
OnP
04/20/23 125
Tập hợp các điểm tạo thành nhóm
04/20/23 126
5.5. Đường cong elliptic trên trường
Định nghĩa Một đường cong elliptic E( ) được
định nghĩa bởi các tham số a, b (với b ≠ 0) là tập các điểm P(x, y) với x , y thỏa mãn công thức:
y2 + xy = x3 + ax2 + b,
mF2
04/20/23 127
(tiếp)
04/20/23 128
5.6. Các phép toán trên đường cong elliptic trong hệ tọa độ affine
04/20/23 129
(tiếp)
04/20/23 130
Thuật toán cộng điểm trong hệ tọa độ affine
04/20/23 131
(tiếp)
04/20/23 132
Các phép toán trên hệ tọa độ chiếu
04/20/23 133
Chuyển đổi giữa hệ tọa độ affine và hệ tọa độ chiếu
04/20/23 134
Các phép toán trong hệ tọa độ chiếu
04/20/23 135
(tiếp)
04/20/23 136
(tiếp)
04/20/23 137
So sánh
04/20/23 138
Thuật toán nhân điểm trong tọa độ affine
04/20/23 139
Thuật toán nhân điểm trong tọa độ chiếu
04/20/23 140
Bài toán logarit rời rạc trên đường cong elliptic
04/20/23 141
(tiếp)
Hiện nay chưa có thuật toán nào được xem là hiệu quả để giải quyết bài toán này.
Để giải bài toán logarit rời rạc trên đường cong ellipse, cần phải kiểm tra tất cả các giá trị m[2.. n - 2]. Nếu điểm P được chọn lựa cẩn thận với n rất lớn thì việc giải bài toán ECDLP xem như không khả thi.
04/20/23 142
Nhận xét
Việc giải bài toán ECDLP khó khăn hơn việc giải quyết bài toán logarit rời rạc trên trường số nguyên thông thường.
04/20/23 143
5.6. Áp dụng lý thuyết đường cong elliptic vào mã hóa
Đường cong elliptic đã được sử dụng trong
quy trình mã hóa dữ liệu, trao đổi khóa ký nhận điện tử.
04/20/23 144
Mã hóa dữ liệu
Người gửi và người nhận cần phải sở hữu một cặp khóa công cộng – khóa riêng.
Các giá trị sau được quy ước chung giữa người gửi và người nhận, gọi là các tham số chung của hệ thống mã hóa:
Đường cong elliptic curve E. Điểm P, P E. Điểm P có bậc n (n × P =
O).
04/20/23 145
Quá trình tạo khóa
Chọn một số nguyên bất kỳ d, d [2, n − 2].
Đây chính là khóa riêng. Tính giá trị của điểm Q = d × P E. Đây chính là khóa công cộng.
04/20/23 146
Thao tác mã hóa
04/20/23 147
Nhận xét
04/20/23 148
Giải mã
04/20/23 149
5.6. Kết luận
Hệ thống mã hóa khóa công cộng ra đời đã giải quyết các hạn chế của mã hóa quy ước.
Mã hóa khóa công cộng giúp tránh bị tấn công khi trao đổi khóa do khóa để giải mã (khóa riêng) không cần phải truyền hoặc chia sẻ với người khác.
04/20/23 150
(tiếp)
Ngoài ra, mỗi người chỉ cần sở hữu một cặp khóa công cộng – khóa riêng và người gởi thông tin chỉ cần giữ khóa công cộng của người nhận do đó số lượng khóa cần phải quản lý giảm khá nhiều.
Mỗi người chỉ cần lưu trữ bảo mật một khóa riêng của chính mình.
04/20/23 151
So sánh kích thước khóa giữa mã hóa quy ước và mã hóa khóa công cộng với cùng mức độ bảo mật
04/20/23 152
So sánh kích thước khóa RSA và ECCvới cùng mức độ an toàn
04/20/23 153
So sánh mức độ bảo mật giữa ECC với RSA / DSA
04/20/23 154
Hạn chế
Việc chọn sử dụng các tham số đường cong và điểm quy ước chung như thế nào để thật sự đạt được độ bảo mật cần thiết.
Hầu hết các đường cong được đưa ra đều thất bại khi áp dụng vào thực tiễn. Do đó hiện nay số lượng đường cong thật sự được sử dụng không được phong phú.
04/20/23 155
(tiếp)
NIST đề xuất một số đường cong elliptic curve đã được kiểm định là an toàn để đưa vào sử dụng thực tế trong tài liệu FIPS 186-2.