Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 52 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
52
Dung lượng
1,02 MB
Nội dung
BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA: AN TỒN THƠNG TIN Mật mã ứng dụng an tồn thơng tin ĐỀ TÀI 05 Mật mã đường cong Elliptic Giảng viên: Thầy Lục Như Quỳnh Sinh viên thực hiện: Nguyễn Tùng Anh - AT140102 Nguyễn Hữu Hoàng – AT140523 Nguyễn Văn Chung - AT140504 Hoàng Nguyên Thái – AT140340 Ngô Nguyễn Quỳnh Hương – AT140815 Đoàn Văn Quỳnh – AT130843 Nguyễn Thành Hiếu – AT140419 Phạm Thành Trung Hiếu – AT140420 Đào Thành Đạt – AT140306 Nguyễn Thế Bắc – AT140103 MỤC LỤC Danh mục hình ảnh .4 Chương 1: Hệ mật mã khóa công khai .5 1.1 Giới thiệu 1.2 Lý thuyết số 1.2.1 Một số khái niệm .8 1.2.2 Định lý Fermat 10 1.2.3 Phép logarit rời rạc 11 1.3 Bảo mật, Chứng thực Chống chối bỏ 12 1.4 Trao đổi khóa 13 1.4.1 Trao đổi khóa cơng khai 13 1.4.2 Dùng mã hóa cơng khai để trao đổi khóa bí mật .15 1.5 Phương pháp trao đổi khóa Diffie - Hellman 15 Chương 2: Hệ mật đường cong Elliptic 18 2.1 Đường cong Elliptic 18 2.1.1 Định nghĩa .18 2.1.2 Cộng điểm đường cong Elliptic 19 2.1.2.1 Trường hợp điểm không trùng P 1≠ P 21 2.1.2.2 Trường hợp điểm trùng P 1=P 21 2.1.3 Nhân vô hướng điểm đường cong Elliptic 22 2.1.4 Nhóm (+) điểm đường cong Elliptic 24 2.1.5 Đường cong Elliptic trường hữu hạn F q 27 2.1.5.1 Trường hữu hạn F q .27 2.1.5.2 Tổng số điểm đường cong Elliptic trường hữu hạn Fq.29 2.2 Mật mã đường cong Elliptic 32 2.2.1 Thiết lập sở 32 2.2.1 Bài tốn lơ ga rít rời rạc (DLP) đường cong elliptic 32 Bài tốn lơ-ga-rít rời rạc đường cong Elliptic (ECDLP) .33 2.2.2 Trao đổi khóa 33 2.2.2.1 Trao đổi khóa Diffie-Hellman ECDH 33 2.2.2.2 Tạo khóa bí mật chia sẻ ECMQV .34 2.2.3 Mã hóa - Giải mã .35 2.2.3.1 Mã hóa Massey-Omura .35 2.2.3.2 Mã hóa ElGamal .36 2.2.3.3 Mã hóa ECIES 36 2.2.4 Các hệ chữ ký đường cong Elliptic: 38 2.2.4.1 Sơ đồ chữ ký số Elgamal Elliptic .38 2.2.4.2 Chuẩn chữ ký số Elliptic (ECDSA) 38 2.3 Nhúng số vào điểm đường cong Elliptic 39 2.3.1 Chuyển thông báo thành số nguyên thuộc Fp 39 2.3.2 Nhúng rõ 40 2.4 Độ an toàn hệ mật đường cong Elliptic 41 Bài tập nhà 43 Tài liệu tham khảo 52 Danh mục hình ảnh Hình Mơ hình mã hóa đối xứng .5 Hình Bảng giá trị modulo với n = 19 .11 Hình Mơ hình bảo mật với mã hóa cơng khai .12 Hình Mơ hình chống chối bỏ với mã hóa cơng khai .12 Hình Mơ hình kết hợp bảo mật, chúng thực chống chối bỏ 13 Hình Trao đổi khóa cơng khai tự phát 13 Hình Trao dổi khóa cơng khai dùng trung tâm chứng thực 14 Hình Thiết lập khóa phiên bí mật mã hóa khóa cơng khai 15 Hình Tấn cơng Man in the middle với phương pháp Diffie - Hellman 16 Hình 10 Bảo vệ khóa Diffie – Hellman khóa cơng khai 17 Hình 11 Phép cộng đường cong Elliptic 20 Hình 12 Ví dụ tính chất kết hợp đường cong Elliptic 23 Chương 1: Hệ mật mã khóa cơng khai 1.1 Giới thiệu Xét mơ hình mật mã cổ điển với Alice (người gửi) Bob (người nhận), chọn khóa bí mật K Sau dùng K để mã hóa e K luật giải mã dK Trong hệ mật dK giống eK dễ dàng phân tích từ eK (ví dụ hệ mật DES trình giải mã hồn tồn tương tự với q trình mã hóa với trình tự ngược lại) Các hệ mật gọi hệ mật khóa bí mật, để lộ key tính an tồn hệ thống khơng cịn đảm bảo Nhược điểm hệ mật thể hai khía cạnh sau: ● Vấn đề trao đổi khóa người gửi người nhận: Cần phải có kênh an tồn để trao đổi khóa cho khóa phải giữ bí mật có người gửi người nhận biết Điều không hợp lý mà ngày nay, khối lượng thông tin luân chuyển khắp giới lớn Việc thiết lập kênh an toàn tốn mặt chi phí chậm trễ mặt thời gian ● Tính bí mật khóa: Khơng có sở quy trách nhiệm mà khóa bị tiết lộ Dựa sở vào năm 1976 Whitfield Diffie Martin Hellman tìm phương pháp mã hóa khác mà giải vấn đề trên, mã hóa khóa cơng khai (public key cryptography) hay cịn gọi mã hóa bất đối xứng (asymmetric cryptography) Đây xem bước đột phá quan trọng lĩnh vực mã hóa Xét lại mơ hình mã hóa đối xứng: Hình Mơ hình mã hóa đối xứng Để khắc phục điểm yếu mã hóa đối xứng người ta tập trung vào nghiên cứu theo hướng: có phương pháp để việc mã hóa giải mã dùng hai khóa khác hay khơng? Có nghĩa C = E(P, K1) P = D(C, K2) Nếu có hai phương án tiến hành: ● Phương án 1: Người nhận (Bod) giữ bí mật khóa K2, cịn khóa K1 cơng khai cho tất người biết Alice muốn gửi liệu cho Bob dùng khóa K1 để mã hóa Bob dùng khóa K2 để giải mã Giả sử có người Charlie kẻ cơng, biết khóa K1 lại khơng thể dùng K1 để giải mã mà phải dùng K2 Do có Bob giải mã Điều đảm bảo tính bí mật q trình truyền liệu Ưu điểm phương pháp không cần phải truyền khóa K1 kênh an tồn ● Phương án 2: Người gửi (Alice) giữ khóa bí mật K1, cịn khóa K2 cơng khai cho tất người biết Alice muốn gửi liệu cho Bob dùng khóa K1 để mã hóa Bob dùng K2 để giải mã Ở Charlie biết khóa K2 nên giải mã Do phương pháp khơng đảm bảo tính bí mật Tuy nhiên tính chất chứng thực tính chống chối bỏ lại đảm bảo Vì có Alice biết khóa K1, nên Bob dùng K2 để giải mã tin, điều có nghĩa Alice người gửi mã Nếu Charlie có khóa K1 để gửi mã Alice bị quy trách nhiệm làm lộ khóa K1 Trong phương án khơng cần phải truyền K2 kênh an toàn Nhận thấy kết hợp phương án phương án mơ hình đề xuất khắc phục tồn nhược điểm mã hóa đối xứng Trong hai phương án, khóa giữ bí mật người biết, cịn khóa cơng khai Do mơ hình mã hóa gọi mã hóa khóa cơng khai (hay mã hóa bất đối xứng) Để thuận tiện ta quy ước lại ký hiệu sau: ● Khóa bí mật hay private key mơ hình ký hiệu KS ● Khóa cơng khai hay public key ký hiệu KP ● Bản rõ ký hiệu M mã giữ nguyên ký hiệu C ● Phương án viết lại thành: C = E (M, KS) M = D (C, KP) ● Phương án viết lại thành: C = E (M, KP) M = D (C, KS) Vấn đề lại liệu có tồn mơ hình mã hóa giải mã dùng hai khóa khác khơng? Dĩ nhiên K P KS khơng thể hồn tồn độc lập với Phải có mối quan hệ hai khóa tiến hành mã hóa giải mã Có nghĩa K S = f(KP) Tuy nhiên, yêu cầu quan trọng việc tính KS = f(KP) phải bất khả thi mặt thời gian Nếu nguyên tắc bị vi phạm việc giữ bí mật khóa K S khơng cịn ý nghĩa từ khóa cơng khai KP lần lại khóa KS Để có cạp khóa KS KP thỏa mãn, người ta thường dùng hàm chiều (one way function) Các hàm chiều có tính chất hàm nghịch đảo chúng khó thực Sau ví dụ hàm chiều: Việc sinh hai số nguyên p, q tính tích N = pq thực dễ dàng Tuy nhiên cho trước N thực phân tích N để tìm lại hai số ngun p, q việc hồn tồn bất khả thi mặt thời gian Có nhiều phương pháp mã hóa thuộc loại mã hóa cơng khai: ● Hệ mật RSA: Độ bảo mật hệ RSA dựa độ khó việc phân tích thừa số nguyên lớn ● Hệ mật Merkle - Hellman: Dựa tính khó giải tốn tổng tập (bài toán toán NP đầy đủ - lớp lớn toán khơng có giải thuật biết thời gian đa thức) Tuy nhiên tất hệ mật xếp ba lô khác bị chứng minh không an toàn (Ngoại trừ Chor-Rivest) ● Hệ mật McEliece: Dựa lý thuyết mật mã đại số coi an toàn McEliece giải mã cho mã tuyến tính (Cũng tốn NP đầy đủ) ● Hệ mật ElGamal: Dựa tính khó giải tốn logarithm rời rạc trường hữu hạn ● Hệ mật Chor-Rivest: Cũng coi hệ mật xếp ba lơ Tuy nhiên coi an tồn ● Hệ mật đường cong Elliptic: Các hệ mật biến tướng hệ mật khác (Hệ mật ElGamal), chúng làm việc đường cong Elliptic trường hữu hạn Hệ mật đảm bảo độ mật với số khóa nhỏ hệ mật khóa cơng khai khác Một chút ý quan trọng hệ mật khóa cơng khai khơng đảm bảo độ mật tuyệt đối (an tồn vơ điều kiện) Sở dĩ nghiên cứu mã, y mã tin rõ luật mã hóa cơng khai eK tìm rõ x đảm bảo y = e K (x) Bản rõ kết giải mã y Bởi ta nghiên cứu độ mật mặt tính tốn hệ mật Khi nghiên cứu hệ mật khóa cơng khai có khái niệm cần phải tìm hiểu hàm cửa sập chiều (one way trapdoor functions) Ta định nghĩa khái niệm cách khơng hình thức Hàm mã hóa cơng khai e K Bob phải hàm dễ tính tốn Song việc tìm hàm ngược (hàm giả mã) khó khăn (đối với khơng phải Bob) Đặc tính thường gọi đặc tính chiều Bởi điều kiện cần thiết eK phải hàm chiều Các hàm chiều quan trọng mật mã học, chúng quan trọng hệ mật khóa công khai nhiều lĩnh vực khác Đáng tiếc có nhiều hàm coi hàm chiều không tồn hàm chứng minh hàm chiều Sau ví dụ hàm coi hàm chiều Giả sử n tích hai số nguyên tố p q, giả sử b số nguyên dương Khi ta xác định ánh xạ f: Z n ⟶ Zn f(x) = xb mod n (với b n chọn thích hợp hàm mã RSA) Để xây dựng hệ mật khóa cơng khai việc tìm hàm chiều chưa đủ Ta không muốn e K hàm chiều Bob phải có khả giải mã tin nhận cách hiệu Điều cần thiết Bob phải có cửa sập chứa thơng tin bí mật cho phép dễ dàng tìm hàm eK Như Bob giải mã cách hiệu có thơng tin tuyệt mật khóa Bởi hàm gọi cửa sập chiều (one way trapdoor functions) hàm chiều trở nên dễ tính ngược biết cửa sập định 1.2 Lý thuyết số 1.2.1 Một số khái niệm Phép chia modulo Phép chia modulo phép chia lấy phần dư Ví dụ: 27 mod = 35 mod = Một cách tổng quát: a mod n = r với a ≥ 0; n > 0; ≤ r ≤ n-1 Nếu hai số a, b có số dư phép chia cho n ta nói a b đồng dư phép chia modulo n, phép so sánh đồng dư ký hiệu dấu: a ≡ b (mod n) hay viết tắt a ≡ b mod n Có thể thấy phép tốn modulo phân hoạch tập số tự nhiên N thành n lớp tương đương đồng dư ứng với giá trị r tập {0, 1, 2, 3…,n1} Ví dụ với n = ta có lớp tương đương sau: {0, 4, 8, 12, 16 } {1, 5, 9, 13, 17 } {2, 6, 10, 14, 18…} {3, 7, 11, 15, 19…} Tính chất phép modulo Cho a, b n số ngun, phép modulo có tính chất: (a + b) mod n = [(a mod n) + (b mod n)] mod n (a - b) mod n = [(a mod n) - (b mod n)] mod n (a 𝗑 b) mod n = [(a mod n) 𝗑 (b mod n)] mod n Ước số Nếu a mod n = (viết cách khác a ≡ mod n) có nghĩa a chia hết cho n, hay n ước số a Ước số chung lớn hai số: ký hiệu gcd(a, b) Để tìm UCLN hai số a, b sử dụng thuật tốn Euclid Số ngun tố Một số p gọi số nguyên tố p chia hết cho nó, ngồi không chia hết cho số khác từ đến p - Số nguyên tố Hai số nguyên a, b gọi nguyên tố UCLN a b Ký hiệu: a⏊b Ví dụ: 3⏊8, 7⏊9 Hai số 20 15 khơng ngun tố UCLN chúng Phần tử nghịch đảo phép nhân modulo Nếu hai số nguyên a n nguyên tố nhau, tổn số nguyên w cho: a.w ≡ mod n Ta gọi w phần tử nghịch đảo a phép modulo cho n ký hiệu a-1 Ví dụ: n = 10, a = hai số nguyên tố nhau, tìm a -1 = (21 ≡ mod 10) n = 10, a = hai số nguyên tố nhau, ta có bảng phép nhân Trong bảng không tồn số a-1 cho a.a-1 đồng dư mod 10 Vậy khơng tồn phần tử nghịch đảo Để tính a -1 dùng thuật tốn Euclid mở rộng ¿ Tính chất phần tử sinh z n ¿ z n có phần tử sinh n = 2, 4, p k 2pk, p số nguyên tố lẻ k ≥ Đặc biệt, p số nguyên tố ¿ z n có phần tử sinh ¿ Nếu α phần tử sinh z n thì: z ¿n= {α ⅈ mod n|0 ≤ⅈ ≤ ϕ ( n )−1 } Giả sử α phần tử sinh z n b=α ⅈ mod n ¿ ¿ phần từ z n ( ⅈ , ϕ ( n ) )=1 Từ ta rút z n cyclic thí số cá phần tử sinh ϕ ( ϕ ( n ) ) ¿ ¿ α ∈ Z n phần z n α Φ ( n) ∕ p ≠ ( mod n ) nguyên tố p ϕ ( n ) ¿ 1.2.2 Định lý Fermat Định lý: Nếu p số nguyên tố a số nguyên không chia hết cho p a p-1 ≡ mod p Chứng minh: Xét tập X gồm p-1 phần tử: X = {a mod p, 2a mod p, …, (n-1)a mod p} Ta có hai nhận định sau: - Khơng có phần tử tập X a nguyên tố với p - Không tồn hai phần tử thứ i thứ j (i ≠ j) cho: ia mod p = ja mod p Vì a nguyên tố với p nên tồn a -1 phép modulo p Do ia ≡ ja mod p iaa-1 ≡ jaa-1 mod p nghĩa i ≡ j mod p Điều trái với giả thiết i ≠ j Từ hai nhận xét ta suy phần tử X hoán vị giá trị {1, 2, 3…, p-1} Do đó: a 𝗑 2a 𝗑 …(p-1)a ≡ [1 𝗑 𝗑 … (p-1)] mod n a 𝗑 a 𝗑 … 𝗑 a = ap-1 ≡ mod n (ĐPCM) Sau sốt ví dụ Fermat p = 5, a = 74 => 49.49 = 2401, 2401 ≡ mod p = 7, a = 46 => 64.64 = 4096, 4096 ≡ mod 10 3: Giải mã văn bản, m ⟵ Dk1(c) 4: If r ≠ MACk2(C) then 5: Xuất thông báo “văn không hợp lệ” 6: End if 7: Trả văn giải mã m Khóa phiên T sau tính phần giải mã có giá trị giống phần mã hóa, thật vậy: Đánh giá bảo mật: Để phá khóa lược đồ Hacker cần phải tìm khóa bí mật x giá trị k cách giải toán x = logPY k = logPU, hai tốn tốn khó chưa giải thời gian đa thức 2.2.4 Các hệ chữ ký đường cong Elliptic: 2.2.4.1 Sơ đồ chữ ký số Elgamal Elliptic Pha chuẩn bị: Alice chọn đường cong Elliptic E trường hữu hạn GF(q) cho toán ECDLP khó E Alice chọn điểm A Ỵ E (thường bậc N điểm A số nguyên tố lớn), số nguyên bí mật a tính B = aA Alice chọn hàm : f : E ® Z Hàm f khơng cần có tính chất đặc biệt ngoại trừ ảnh nên lớn có số nhỏ đầu vào tạo đầu cho trước Ví dụ: Nếu xét E GF(p) với p nguyên tố lấy f(x,y) = x Thơng tin cơng khai Alice E, GF(q), f, A B Alice giữ a bí mật Số nguyên dương N không nên công bố công khai Alice tạo chữ ký số: Alice biểu diễn thông báo số nguyên m Nếu m > N chọn đường cong lớn sử dụng hàm băm cho m Alice chọn số nguyên dương ngẫu nhiên k với (k,N) = tính R = kA Alice tính s º k-1(m - af(R)) (mod N) thông báo chữ ký (m, R, s) Kiểm tra chữ ký số: Bob lấy thông tin công khai Alice Bob tính V1 = f(R)B + sR V2 = mA 38 Nếu V1 = V2 Bob tin tưởng chữ ký hợp lệ Tính đắn: Chúng ta có sk º m - af(R) (mod N) sk = m - af(R) + zN số nguyên z Bởi skA = (m - af(R))A + zNA = (m af(R))A + O = (m - af(R))A Thế V = f(R)B + sR = f(R)aA + skA = f(R)aA + (m - af(R)) = mA = V2 2.2.4.2 Chuẩn chữ ký số Elliptic (ECDSA) Chuẩn bị: Alice muốn ký thơng báo m số ngun dương Alice chọn đường cong Elliptic E trường hữu hạn GF(q) cho số điểm E GF(q) fr với r số nguyên tố lớn f số nguyên dương nhỏ thuật toán hiệu Alice chọn điểm sở G E GF(q) có bậc r Cuối Alice chọn số nguyên dương a tính Q = aG Alice cơng bố cơng khai thông tin sau đây: GF(q), E, r, G, Q Alice tạo chữ ký số: Alice chọn số nguyên dương ngẫu nhiên k với £ k < r tính R = kG = (x,y) Alice tính s = k-1(m + ax) (mod r) tài liệu ký (m, R, s) Bob kiểm tra chữ ký số: Bob tính u1 = s-1m (mod r) u2 =s-1x (mod r) Bob tính V = u1G + u2Q Bob tuyên bố chữ ký số hợp lệ V = R Tính đắn: Nếu thơng báo ký đẳng thức kiểm tra đúng: V = u1G + u2Q = s-1mG + s-1xQ = s-1(mG + xaG) kG = R Sự khác ECDSA sơ đồ chữ ký số Elgamal Elliptic thủ tục kiểm tra chữ ký số Trong sơ đồ Elgamal đẳng thức kiểm tra f(R)B + sR = mA địi hỏi ba phép tính với số nguyên lần điểm phần tốn nhất, ECDSA địi hỏi hai phép tính Cải tiến nâng cao hiệu ECDSA cần nhiều lần kiểm tra chữ ký số có giá trị thực tế 39 2.3 Nhúng số vào điểm đường cong Elliptic Ta biết mật mã khóa công khai, Alice muốn gửi thông báo cho Bob trước hết phải chuyển vào tập số nguyên, sau dùng kiểu biến đổi để mã hóa Đối với mật mã đường cong elliptic, làm việc với dạng bao gồm điểm đường cong Do vấn đề khởi đầu nghiên cứu phương pháp để đưa rõ dạng điểm P đường cong elliptic Cần ý giai đoạn này, ta khơng coi việc chuyển nói phép mã hóa để giữ bí mật 2.3.1 Chuyển thơng báo thành số ngun thuộc Fp Có nhiều phương pháp để thực việc Đây phương pháp giới thiệu nhằm làm rõ việc chuyển đổi số thành điểm đường cong elliptic Xét việc chuyển đoạn thông báo gồm ký tự thành phần tử trường F31013 cho (m1,m2,m3) đơn vị thông báo vậy, miỴZ27 (ký hiệu khoảng cách nhận giá trị 0) Tính x= m1.272 +m2 27+m3 Khi đó, xỴ Fp p ≥ 26.272 +26 27+26 = max{x : miỴZ27 , i=1 3} = 19682 Giả sử p = 41113, thông báo LETS GET SEAFOOD cần chuyển thành phần tử Fp Nó tách thành đoạn gồm ký tự Kết sau: Bản rõ (m1,m2,m3) PM = m1.272 +m2 27+m3 LET (12,5,20) 8903 SGE (19,7,5) 14045 TSE (20,19,5) 15098 AFO (1,6,15) 906 OD_ (15,4,0) 11043 2.3.2 Nhúng rõ Cách trực quan để ánh xạ số ngun x tới điểm P ỴE(Fp) tìm điểm P có hồnh độ x Ví dụ, với đường cong y = x3+2x-1 F41113 phải nhứng từ CAT = 3(27)2+1.27+20 = 2234 Ta thấy điểm cần tìm P = (2234,23945) ỴE(F41113 ) Từ P, dễ dàng tìm lại CAT Người ta thấy có khoảng nửa giá trị x ỴFp hồnh độ điểm đường cong elliptic Chẳng hạn, Map = 13.27 + 1.27+16 = 9520 không thặng dư bậc theo modulo 41113 nên 40 điểm đường cong nhận 9520 làm hồnh độ Cũng có khoảng nửa x Ta thử làm sau Khi x ÏQ p tăng dần x lên đơn vị điểm P nhận giá trị làm hồnh độ Ta có (9527) điểm đạt tiêu chuẩn Thế MAP ↪(9527, 2121) Tuy nhiên, chuyển 9527 số 27 lại 9527 = 13.27 + 1.27+23 = MAW Như , MAP, MAQ, MAR, …, MAW↪(9527, 2121) Ta dễ dàng làm đắn điều cách sử dụng ánh xạ x↪lx với số nguyên lớn l sau nhúng lx Cần phải kiểm tra trường ta đủ lớn, nghĩa max{lx} = l.19682 < p để tìm lại lx Khi ta thấy x ánh xạ tới điểm E(F p) miễn số f(lx), f(lx+1), …, f(lx+l-1) thặng dư bậc Xác suất để điều thất bại, nghĩa khơng tìm lx với x cho, 1/2l Số nguyên l gọi tham số nhúng Ví dụ Vẫn đường cong nói trên trường F 910307, lấy l=32 Khi có xấp xỉ 5000 triệu hội cho số số f(lx), f(lx+1), …, f(lx+31) thặng dư bậc Giả sử ta muốn nhúng YOU HAVE TWO HOURS đường cong elliptic Bảng sau minh họa q trình lặp Ta thấy có điểm đối vddieemrootj giá trị rõ x Bản rõ X lx=32.x YOU 18651 596832 -1 ETW 4208 134656 -1 OHU 11166 357312 -1 ORS 15184 506048 -1 -1 -1 1 -1 -1 357313 457834 506049 833712 -1 HAV 5881 188192 1 -1 32x+i y tương ứng 596837 678400 188192 655701 41 134659 728528 Giả sử biết tham số nhúng l, ta dễ dàng chuyển điểm đường cong elliptic trở số nguyên x cách Giả sử ta có điểm P= (xp, yp) cần tìm x Với l đủ lớn giả thiết xp = lx +m, với ≤ m < l Khi xp m =x + , l l theo giả thiết nói m/l < Vì x = ⌊ xp ⌋ l Cần ý ta có xác suất (1/2 l) để bất đẳng thức ≤ m < l khơng 2.4 Độ an tồn hệ mật đường cong Elliptic Sức mạnh ECC nằm phức tạp thám mã mà phải xác định số ngẫu nhiên bí mật k từ kP P Phương pháp nhanh để giải toàn phương pháp phân tích S – Pollard Để pahs ECC độ phức tạp tính tốn dùng phương pháp S – Pollard 3,8.10 10 MIPS – năm với kích thước khóa 150 bit (Đây số năm cần thiết với hệ thống tính tốn có tốc độc hàng triệu lệnh/giây) Để so sánh với phương pháp nhanh phá RSA (là phương pháp sàng trường số để phân tích hợp số n thành tích số nguyên tố p q) ta thấy với n có kích thước 768 bit độ phức tạp tính tốn 2.10 MIPS – năm, với n có kích thước 1024 bit, độ phức tạp tính tốn 3.10 11 năm Nếu độ dài khóa RSA tăng lên tới 2048 bit cần 3.10 20 MIPS – năm, với ECC cần độ dài khóa 235 bit yêu cầu tới 1,6.1028 MIPS - năm 42 Bài tập nhà Bài 1: Sử dụng thuật tốn Euclide mở rộng để tìm ước chung lớn hai số a = 1573, b = 308 Thuật toán: Cho b mod m (A1, A2, A3) = (1, 0, m) Q = A3 div B3 B1 = A1 – Q*B1 (A1 A2 A3) = (B1, B2, B3) If B3 = 0: gcd (b, m) = A1 Else B3 =1: gcd (b, m) = b-1 mod m = B2 (B1, B2, B3) = (0, 1, b) B3 = A3 mod B3 B2 = A2 – Q*B2 Bài làm Bảng 7: Q A1 1 -9 A2 -5 45 Bảng 3: Q r 1573 308 33 11 t -5 45 A3 1573 308 33 11 B1 -9 27 B2 -5 45 -140 B3 308 33 11 Bài 2: Tìm số nghịch đảo (nếu có) 30 theo môđun 101 Định nghĩa: Nếu số nguyên dương x < b thỏa mãn x*b mod m = x nghịch đảo b mod m, kí hiệu b-1 mod m Bài làm Cách 1: Sử dụng thuật tốn Euclide mở rộng Tìm 30-1mod 101 Q A1 A2 A3 B1 B2 B3 101 30 30 -3 11 -3 11 -2 -2 -10 43 -8 -10 27 -8 11 27 -37 ⇨ 30-1mod 101 = -37 = 64 ⇨ 64*30 mod 101 ≡1 Cách 2: b = 30; m = 101 ⇨ Tìm x cho x*b = y*m + Ta có: ym+1 101 y +1 11 y+ = 30 = 3y + 30 ∈ Z b 11 y+ o r1 = 30 (0≤ r1¿30) (*) ∈ Z o 30r1 = 11y + 1∈ Z 30 r 1−1 r 1−1 ⇨ y = 11 = 2r1 + 11 ∈ Z r 1−1 o r2 = 11 (0≤ r2¿11) (**) ∈ Z 11r 2+1 o r1 = Chọn r2 = thỏa (**) → r1 = thỏa (*) → y = 2r1 + r2 = 19 ⇨ x= ⇨ x = 3y + r1 = 3.19 + = 64 Bài 3: Tìm phần tử nghịch đảo Z*31 Giả sử b nghịch đảo Z*31 3.b ≡ mod 31 3.b mod 31 ≡ b = 3-1 mod 31 Áp dụng thuật tốn Euclide mở rộng tính: b = 3-1 mod 31 i ri qi -1 31 1 10 Ta có: b = 3-1 mod 31 = -10 mod 31 = 21 Nghịch đảo Z*31 là: 21 44 xi 1 yi -10 Bài 4: Tìm khóa bí mật hệ mật RSA với p=61, q=29 biết khóa cơng khai e=19 Tính mã rõ m=37 tiến hành giải mã ngược lại để kiểm tra lại kết Tính khóa bí mật Trong hệ mật RSA ta có: n = p.q = 61.29 = 1769 Φ(n) = Φ(p.q) = Φ(p).Φ(q) Φ(1769) = 60.28 = 1680 Sô mũ giải mã: d = e-1 mod Φ(n) = 19-1 mod 1680 Sử dụng thuật tốn Euclide mở rộng tính 19-1 mod 1680 Q A1 A2 A3 B1 B2 B3 1680 19 88 19 -88 -88 -2 177 -2 177 -422 -422 -7 619 Số mũ giải mã d = 19-1 mod 1680 = 619 Mã hóa tin với m = 37 Trong hệ mật RSA, ta có mã: c = me mod n = 3719 mod 1769 Áp dụng thuật tốn nhân bình phương có lặp ta tính: c = 3719 mod 1769 19 = 10011 = 20 + 21 + 24 t=4 i ki A b 37 37 1 1369 1121 790 1121 1412 1121 Bản mã: c = 3719 mod 1769 = 582 Giải mã Để giải mã, ta tìm: m = cd mod n m = 582619 mod 1769 619 = 1001101011 = 20 + 21 + 23 + 25 + 26 + 29 t=9 45 81 582 i ki A b 582 582 1 845 1118 1010 1156 741 8 1004 1004 984 0 691 1620 973 648 648 648 Vậy rõ ban đầu: m = 582619 mod 1769 = 37 Bài 5: Tính JACOBI (158, 235) Tính chất (1): m1 ≡ m2 mod n -> ( m1 m ) ≡ ( 2) n n Tính chất (2): ( n ) = Tính chất (3): ( m1 m m m k t ) = ( ) ( ) m = 2k t ⇒ ( ) ( n ) n n n n Tính chất (4): m (n) = Tính chất (5): ( n ) = Bài làm (3 ) ( (2 ) (4) 158 79 235 (1) 77 (4) 79 (1 ) (2 ) ❑ ) =( ) ( ) = (−1) −( ) = ( ) = ( ) = ( ) = −¿1 235 235 235 79 79 77 77 Bài 6: Hãy tính bậc hai 12 mod 37 46 314 37 Bài làm 12 mod 37 - Ta có 37 số nguyên tố 37 ≡ mod - Tính d = a(p-1)/4 mod p = 129 mod 37 - Áp dụng thuật tốn bình phương có lặp ta có: 12 = 12 122 = 33 124 = 16 128 = 34 129 = 121 128 = 12 34 = 408 ⇨ d = 408 mod 37 = ⇨ Vì d = => r = (a)(p+3)/8 mod p = 125mod 37 ⇨ r=7 Vậy có bậc hai (7, 30) Bài 7: Tìm r với r2 ≡ (mod 41) p số nguyên tố ⇒ Ф(p) = p - ⇒Φ(p) = 41 –1 = 40 Áp dụng định lý α € Z*41 phần tử sinh β = αi mod n phần tử sinh gcd(i, Φ(p)) = ⇒ Z*41 = {1, 3, 7, 9, 11, 13, 17, 21, 23, 27, 29, 31, 33, 37, 39} Căn bậc hai r2 ≡ mod 41: 47 ⇒r = 13 132 = 169 ≡ mod 41 Bài 8: Cho đường cong E={(x,y) :y2=x3+x+ mod 11} Xác định tất điểm đường cong Tính tất giá trị kα với 1< k