BÁO cáo TIỂU LUẬN môn học tìm hiểu về mật mã trên đường cong elliptic

50 0 0
BÁO cáo TIỂU LUẬN môn học tìm hiểu về mật mã trên đường cong elliptic

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ MINH BÁO CÁO TIỂU LUẬN MƠN HỌC Tìm hiểu mật mã đường cong Elliptic Mơn học: Mã hố thám mã Ngành: CƠNG NGHỆ THƠNG TIN Giảng viên: TS Vũ Thanh Hiền Nhóm học viên thực MSHV Họ Tên Lớp 2241860006 Trương Lâm Hữu Lộc 22SCT11 2241860001 Trần Minh Duyệt 22SCT11 Tháng 10 - 2022 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat Mật mã đường cong Elliptic MỤC LỤC Danh mục hình ảnh Chương 1: Hệ mật mã khóa cơng khai 1.1Giới thiệu 1.2Lý thuyết số 1.2.1Một số khái niệm 1.2.2Định lý Fermat 1.2.3Phép logarit rời rạc 1.3Bảo mật, Chứng thực Chống chối bỏ 1.4Trao đổi khóa 1.4.1Trao đổi khóa cơng 1.4.2Dùng mã hóa cơng 1.5Phương pháp trao đổi khóa Diffie - Hellman Chương 2: Hệ mật đường cong Elliptic 2.1Đường cong Elliptic 2.1.1Định nghĩa 2.1.2Cộng điểm 2.1.2.1 Trường hợp điểm không trùng 2.1.2.2 Trường hợp điểm trùng P 1=P 2.1.3Nhân vơ hướng cá 2.1.4Nhóm (+) 2.1.5Đương cong Ellipt 2.1.5.1 Trường hữu hạn F q TIEU LUAN MOI download : skknchat123@gmail.com moi nhat 2.1.5.2 Tổng số điểm đường cong Elliptic trường hữu hạn Fq.28 2.2 Mật mã đường cong Elliptic 31 2.2.1 Thiết lập sở 31 2.2.1 Bài tốn lơ ga rít rời rạc (DLP) đường cong elliptic 31 Bài tốn lơ-ga-rít rời rạc đường cong Elliptic (ECDLP) .32 2.2.2 Trao đổi khóa 32 2.2.2.1 Trao đổi khóa Diffie-Hellman ECDH 32 2.2.2.2 Tạo khóa bí mật chia sẻ ECMQV .33 2.2.3 Mã hóa - Giải mã .34 2.2.3.1 Mã hóa Massey-Omura 34 2.2.3.2 Mã hóa ElGamal .35 2.2.3.3 Mã hóa ECIES 35 2.2.4 Các hệ chữ ký đường cong Elliptic: 37 2.2.4.1 Sơ đồ chữ ký số Elgamal Elliptic 37 2.2.4.2 Chuẩn chữ ký số Elliptic (ECDSA) 37 2.3 Nhúng số vào điểm đường cong Elliptic 38 2.3.1 Chuyển thông báo thành số nguyên thuộc Fp 38 2.3.2 Nhúng rõ 39 2.4 Độ an toàn hệ mật đường cong Elliptic 40 Tài liệu tham khảo 42 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat Danh mục hình ảnh Hình Mơ hình mã hóa đối xứng 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 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat 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 eK 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 q 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 đả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 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat Để 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) TIEU LUAN MOI download : skknchat123@gmail.com moi nhat 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 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 hoàn toà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 toán tổng tập (bài toán toán NP đầy đủ - lớp lớn tố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 tồ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 toá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 toà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 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat 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 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat 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 toá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 Ước số (a (a 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 toán Euclid Số nguyên 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ố b Ký hiệu: a⏊b Ví dụ: 3⏊8, 7⏊9 Hai số 20 15 khơng nguyên tố UCLN chúng Hai số nguyên a, b gọi nguyên tố UCLN a 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ố ngun tố nhau, tìm a-1 = (21 ≡ mod 10) TIEU LUAN MOI download : skknchat123@gmail.com moi nhat 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, pk 2pk, p số nguyên tố lẻ k ≥ Đặc biệt, p số ngun 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ố ngun khơng chia hết cho p ap-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 ja mod p Vì a nguyên tố với p modulo p Do ia ≡ ja mod p iaa ≡ j mod p Điều trái với giả thiết i Từ hai nhận xét ta suy phần tử trị {1, 2, 3…, p- 1} Do đó: a a … Sau 2a …(p a ⏊ m p = 5, a = p = 7, a = 46 => 64.64 = 4096, 4096 ≡ mod en(S, T1 + T2) = en(S, T1)en(S, T2) Chứng minh xem [7] Giả thiết {T1, T2} sở E[n], phần tử E[n]đều biểu diễn dạng tổ hợp tuyến tính m1T1 + m2T2 α tự đồng cấu E[n], n∈ số nguyên không chia hết char(K) Tồn số a, b, c, d Z cho: Do tự đồng cấu α biểu diễn ma trận × 2: Bổ đề α tự đồng cấu E[n], n số nguyên không chia hết char(K) det(αn) ≡ deg(α) mod n Chứng minh Đặt ζ = en(T1, T2), theo bổ đề 1.6.5 ta có: ζdeg(α) = en(α(T1), α(T2)) = en(aT1 + cT2, bT1 + dT2) ab ad cb cd = en(T1, T1) en(T1, T2) en(T2, T1) en(T2, T2) = ad−bc = ζdet(αn) ζ Nếu α, β tự đồng cấu E, a, b số nguyên tự đồng cấu aα+bβ định nghĩa sau: (aα + bβ)(P ) = aα(P ) + bβ(P ) Bổ đề deg(aα + bβ) = a2 deg α + b2 deg β + ab(deg(α + β) − deg α − deg β) Chứng minh Biểu diễn tự đồng cấu α, β ma trận αn, βn (với số sở E[n]), theo aα + bβ biểu diễn aα n + bβn Áp dụng det(aα n + bβ n) = a det(αn) + b det(β) + ab(det(α + cơng thức 1.40) ta có: Theo bổ đề 1.6.6 chúng de g(aα + bβ ) = a de g(α ) + b de g(β) + ab(de g(α+ β) − Định lý 1.6.8 (Hasse) Nếu E đường cong Elliptic trường Fq, # E(Fq) tổng số điểm đường cong thì: q + − 2√q≤ #E(Fq) ≤ q + + 2√q Chứng minh Trước tiên xét ánh xạ Probenius định nghĩa sau: ϕ q : Fq→ Fq, x ↦ xq Có thể viết cách khác: φq(x, y) = (xq, yq), φq(∞) = ∞ 31 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat Khi thay giá trị xq, yq vào phương trình (1.1) dễ thấy (x, y) nằm đường cong E Ánh xạ φq tự đồng cấu biểu diễn hàm đa thức hữu tỷ có bậc q Đạo hàm xq qxq−1 q = trường Fq Do đạo hàm nên φq khả tách (separable) Bởi φq tự đồng cấu E φ2 = φq ◦ φq tự đồng cấu φn tự đồng cấu E Phép nhân với −1 tự đồng cấu tổng φn – đồng cấu E φq khả tách (separable) φq − bất khả tách bậc số phần tử hạch φq − có nghĩa số điểm đường cong E là: #E(Fq) = deg(φq − 1) Với số nguyên r, s, áp dụng bổ đề 1.6.7 ta có: deg(rφq − s) = r2 deg(φq) + s2 deg(−1) + rs(deg(φq − 1) − deg(φq) − deg(−1)) Bởi deg(−1) = deg(φq) = q nên: deg(rφq − s) = r2q + s2 + rs(deg(φq − 1) − q − 1)) Đặt a = −(deg(φq − 1) − q − 1) = q + − #E(Fq), vì deg(rφq − s) ≥ suy r2q + s2 + rsa ≥ hay với r, s ta có: Do ∆ | q +1−¿ E ( Fq ) ≤ 2.2 Mật mã đường cong Elliptic 2.2.1 Thiết lập sở Alice muốn gửi văn bản, thường gọi rõ (Plaintext), tới Bob Cơ mã hóa văn để thu mã (Ciphertext) Để mã hóa văn bản, Alice sử dụng khóa mã hóa (Encryption key) Bob sử dụng khóa giải mã (Decryption key) để giải mã mã nhận Có hai cách mã hóa Trong mật mã đối xứng (Symmetric Encryption), khóa mã hóa khóa giải mã Một dạng khác mã hóa mật mã khóa cơng khai (Public Key Encryption), mật mã khơng đối xứng (Asymmetric Encryption) 32 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat 2.2.1 Bài tốn lơ ga rít rời rạc (DLP) đường cong elliptic Định nghĩa : Giả sử G nhóm cyclic hữu hạn có cấp n Gọi a phần tử sinh G b phần tử thuộc G Khi Lơ-ga-rít rời rạc b theo sở a G, ký hiệu logab, số nguyên x với £ x £ n - cho b = ax Trên cấu trúc nhóm cyclic biết trước a x mà cần tính b = ax việc dễ thực thời gian đa thức Ngược lại biết a, b mà tính x việc nói chung khó thực thời gian hàm mũ Độ khó tốn Lơ-ga-rít phụ thuộc vào cấu trúc đại số mà xác định Giả sử P điểm có bậc hữu hạn đường cong elliptic, tập với phép cơng điểm nhóm cyclic với P phần tử sinh Người ta chứng minh rằng, số điểm đường cong elliptic số nguyên tố N điểm P phần tử sinh nó, nghĩa P có bậc N Bài tốn lơ-ga-rít rời rạc đường cong Elliptic (ECDLP) Cho trước đường cong Elliptic E xác định trường hữu hạn GF(q) Giả sử P điểm có bậc n Q điểm E Hãy xác định số nguyên k, £ k £ n - cho Q = kP số nguyên k tồn Cịn hai tốn liên quan toán Diffie-Hellman Elliptic ( ECDHP) toán định Diffie-Hellman Elliptic (ECDDHP) Bài toán ECDHP: Cho trước điểm P, aP bP E GF(q) Hãy tính abP Rõ ràng tốn giải toán ECDLP giải Bài toán ECDDHP: Cho trước P, aP bP E GF(q) cho trước điểm Q Ỵ E Hãy xác định xem Q = abP hay khơng? M1:= Bài tốn lơ-ga-rít rời rạc đường cong Elliptic ( ECDLP) trường hữu hạn GF(q) sử dụng để xây dựng thuật tốn mật mã có độ an tồn cao người ta chưa tìm thuật tốn có thời gian tiểu hàm mũ cơng tốn 2.2.2 Trao đổi khóa Trong mục lại, chuyên đề đề cập đến số thuật tốn ứng dụng trao đổi khóa, mã hóa ký số Chuẩn công ty Certicom 33 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat xây dựng [1] mô tả chi tiết việc triển khai ứng dụng ECC Tác giả D Hankerson [2] phân tích việc triển khai ECC phần mềm, tác giả L Cao [3] phân tích thực giao thức ECC phần cứng 2.2.2.1 Trao đổi khóa Diffie-Hellman ECDH Năm 1998, Laurie cộng đề xuất giao thức trao đổi khóa dựa ECC [4] Sau giao thức đưa vào tiêu chuẩn ANSI X9.42, ANSI X9.63 IEEE P1363 Hai bên A B cần tạo khóa phiên bí mật trao đổi kênh truyền công khai, hai bên thỏa thuận điểm sở P E Bên A tạo khóa bí mật dA gửi giá trị dAP cho bên B, ngược lại bên B tạo khóa bí mật dB nhân với P sau gửi lại cho A Khi khóa phiên bên A KA = dAdBP, bên B KB = dBdAP Dễ dàng nhận thấy KA = KB, khóa riêng hai bên A B tính Xem sơ đồ đây: Bên A dA dBP KA = dAdBP Đánh giá bảo mật: Để tìm khóa chia sẻ KA KB, Hacker buộc phải tìm khóa bí mật dA, dB, bắt thơng tin đường truyền d AP dBP, biết P, Hacker buộc phải giải toán Logarithm rời rạc dA = logP(dAP) dB = logP(dBP) tốn khó khơng giải thời gian đa thức 2.2.2.2 Tạo khóa bí mật chia sẻ ECMQV Tên đầy đủ giao thức Elliptic Curve Menezes-Qu-Vanstone Thuật toán đưa vào chuẩn ANSI X9.63, IEEE 13632000, ISO/IEC 15946-3 Theo tiêu chuẩn điểm sở ký hiệu G thay P thường gặp Lược đồ thường sử dụng bên A B có cặp khóa cơng khai bí mật cố định, tương ứng (a, aG) (c, cG) Bên A sinh cặp số ngẫu nhiên (b,bG) bên B tương ứng sinh cặp số ngẫu (d,dG), trao đổi cặp cho giá trị bG dG Kí hiệu hàm x:E⏊N, lấy giá trị x điểm đường cong E 34 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat Thuật tốn: Tạo khóa bí mật chia sẻ ECMQV INPUT: Các tham số hệ mật (K, E, q, h, G), số a, b, aG, bG, cG, dG OUTPUT: Khóa bí mật chia sẻ Q (chia sẻ với với đối tượng có khóa cơng khai cG) 1: n ← \log2(#k) 1/2 2: u← (x(bG)(mod 2n) + 2n 3: s ← b + ua((mod q) 4: v← (x(dG)(mod 2n) + 2n 5: Q ← s(dG + v(cG)) 6: if Q = ∞ then 7: Quay lại bưóc 8: end if 9: Trả khóa Q Bên B tính số Q cách thay (a, b, c, d) thuật toán (c, d, a, b) Bên A có giá trị u A, vA, sA bên B có uB, vB , sB Dễ dàng nhận thấy [5]: uA = vB uB = vA QA = sA(dG + vA(cG)) = sA(d + vAc)G = sA(d + uBc)G = sAsBG QB = sB(bG + vB(aG)) = sB(b + vBa)G = sB(b + uAa)G = sBsAG QA=QB=Q Đánh giá bảo mật: Để hack khóa chia sẻ, Hacker cần phải tính giá trị a, b, c, d, muốn Hacker phải giải toán Logarithm rời rạc a = logG(aG), b = logG(bG), c = logG(cG), d = logG(dG) Đây tốn khó khơng thể giải thời gian đa thức 2.2.3 Mã hóa - Giải mã Mơ hình mã hóa liệu sử dụng đường cong elliptic (Elliptic Curve Encryption Scheme - ECES) bao gồm thao tác: mã hóa giải mã Trước thực việc mã hóa liệu với Elliptic Curve, người gởi người nhận cần phải sở hữu cặp khóa cơng khai – khóa riêng Các giá trị sau quy ước chung người gởi người nhận, gọi tham số chung 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 = ∞) Q trình tạo khóa thực như∈ sau: Chọn số nguyên d, d [2, n − 2] Đây khóa riêng 35 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat • Tính giá trị điểm Q = d × P ∈ E Đây khóa cơng khai 2.2.3.1 Mã hóa Massey-Omura Massey-Omura hai tác giả đề xuất lược đồ mã hóa mơ tả Patent vào năm 1986 Lược đồ mã hóa sử dụng thực tế lại có ý nghĩa mặt lịch sử Bên A ∈ Bên B Biểu diễn thông điệp M E ( II) Chọn mA | gcd(m M2 Tính m A -1 Dễ dàng nhận thấy: mB-1 mA-1mB mAM = M Đánh giá bảo mật: Muốn phá khóa lược đồ này, Hacker phải tìm giá trị mA mB để tìm giá trị Hacker phải giải hai toán Logarithm rời rạc m A = logMM1 mB = log M1M2, hai toán chưa giải thời gian đa thức 2.2.3.2 Mã hóa ElGamal Trên sở hệ mật ElGamal, lược đồ mã hóa phát triển sau: Thơng điệp M Chọn k, tính M1 = kP Chứng minh tính đắn lược đồ mã hóa: M = M2 - xBM1 = M + kYB - xBM1 = M + k(xBP) - xB(kP) = M Đánh giá bảo mật: Để giải mã văn M, Hacker buộc phải tìm k xB, Hacker cần phải giải tốn Logarithm rời rạc k = logPM1 xB = logPYB, hai tốn khó 36 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat 2.2.3.3 Mã hóa ECIES ECIES (The Elliptic Curve Integrated Encryption System) Bellare Rogaway đề xuất biến thể mã hóa dùng hệ mật ElGamal, sau thuật tốn đưa vào chuẩn ANSI X9.63 ISO/IEC 15946-3, IEEE P1363a Tham số D = (q, FR, S, a, b, P, n, h) chọn tương tự với ECDSA Ở cần lựa chọn thêm hàm mã hóa/giải mã đối xứng ký hiệu eK(m) dK(c) Trong m rõ cần mã hóa, c mã Thuật tốn mã hóa đối xứng chọn để phục vụ q trình mã hóa/giải mã dễ dàng nhanh so với thuật tốn bất đối xứng Ngồi thay sử dụng hàm băm đơn giản, ECIES sử dụng hai hàm băm sau: Message authentication code MACk (c): MAC: {0, 1}n Key derivation function K KD:E N⟶{0,1} l độ dài khóa (k1|| k2) {0, 1} chuỗi bit có giá trị 0, có độ dài n khơng xác định (*) Người nhận có cặp khóa cơng khai/bí mật (Y, x) Y = xP Mã hóa ECIES INPUT: Văn cần mã hóa m, khóa cơng khai Y 1: Chọn k 4: 2: U 3: T 5: Mã hóa 6: Tính giá trị MAC cho văn mã hóa r = MACk2 (C) 7: Trả return (U, c, r) Bên giải mã nhận tập hợp (U, c, r) gồm thành phần sau: U cần thiết để tính khóa phiên Diffie - Hellman T c mã hóa r dùng để xác thực mã văn Giải mã ECIES INPUT: Văn mã hóa U, c, r, khóa bí mật x OUTPUT: Văn giải mã m thông báo “văn mã không hợp lệ” 2: 1: T TIEU LUAN MOI download : skknchat123@gmail.com moi nhat 3: 4: 5: 6: 7: Giải mã văn bản, m ⟵ Dk1(c) If r ≠ MACk2(C) then Xuất thông báo “văn không hợp lệ” End if 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 tố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ố ngun 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 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat 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ố nguyên 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ố: -1 -1 Bob tính u1 = s m (mod r) u2 =s x (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 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat 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ố nguyên 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 2.3.2 Nhúng rõ Cách trực quan để ánh xạ số nguyên x tới điểm P ỴE(Fp) tìm điểm P có hồnh độ x Ví dụ, với đường cong y2 = 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 hoà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 khơng có 40 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat đ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 ÏQp 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.272 + 1.27+23 = MAW Như , MAP, ↪ MAQ, MAR, …, MAW Ta dễ dàng làm 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 khơng có 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 đắn điề u h sử dụng ánh xạ x lx Bản rõ X lx=32.x TIEU LUAN MOI download : skknchat123@gmail.com moi nhat 32x+i y tương ứng 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 Khi x theo giả thiết nói m/l < Vì x = ⌊ lp ⌋ Cần ý ta có xác suất (1/2l) để 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 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat Tài liệu tham khảo [1] C Research, Standards For Efficient Cryptography, SEC 1: Elliptic Curve Cryptography Certicom Corp, 2000 [2] D Hankerson, J L Hernandez, and A Menezes, “Software Implementation of Elliptic Curve Cryptography over Binary Fields,” CHES2000, vol 1965, pp.243–267, 2000 [3] L Gao, S Shrivastava, and G E Sobelman, “Elliptic Curve Scalar Multiplier Design Using FPGAs,” CHES’99, vol 1717, pp 257–268, 1999 [4] L Laurie, M Alfred, Q Minghua, S Jerry, and V Scott, “An Efficient Protocol for Authenticated Key Agreement,” Designs Codes and Cryptography, vol 28, no 2, 1998 [5] I F Blake, G Seroussi, and N P Smart, Advances in Elliptic Curve Cryptography Cambridge University Press, 2005 [6] D Hankerson, A Menezes, and S Vanstone, Guide to Elliptic Curve Cryptography Springer-Verlag, 2004 [7] L C Washington, Elliptic Curves Number Theory and Cryptography, Second Edition CRC Press, 2008 43 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat ... hệ mật xếp ba lơ Tuy nhiên coi an toà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. .. đ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, ... điểm đường cong Elliptic Xét đường cong Elliptic E định nghĩa phương trình y = x3 + Ax + B Xét điểm nằm đường cong E P 1, P2, P3 có tọa độ (x1, y1), (x2, y2), (x3, y3) Để điểm đường cong Elliptic

Ngày đăng: 29/10/2022, 08:05

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

  • Đang cập nhật ...

Tài liệu liên quan