Các hệ mật khóa công khai

24 1.1K 13
Các hệ mật khóa công khai

Đ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

Các hệ mật khóa công khai

Chơng Các hệ mật khoá công khai khác Trong chơng ta xem xét số hệ mật khoá công khai khác Hệ mật Elgamal dựa toán logarithm rời rạc toán đợc dùng nhiều nhiỊu thđ tơc mËt m· Bëi vËy ta sÏ dành nhiều thời gian để thảo luận toán quan trọng phần sau xem xét sơ lợc số hệ mật khoá công khai quan trọng khác bao gồm hệ thoóng loại Elgamal dựa trờng hữu hạn đờng cong elliptic, hệ mật xếp ba lô Merkle-Helman hệ mật McElice 5.1 Hệ mật Elgamal logarithm rời rạc Hệ mật Elgamal đợc xây dựng toán logảithm rời rạc Chúng ta bắt đầu băng việc mô tả toán thiết lập môi trờng hữu hạn Zp, p số nguyên tố ( hình 5.1) ( Nhớ lại nhóm nhân Zp* nhóm cyclic phần tử sinh Zp* đợc gọi phần tử nguyên thuỷ) Bài toán logarithm rời rạc Zp đối tợng nhiều công trình nghiên cứu đợc xem toán khó p đợc chọn cẩn thận Cụ thể thuật toán thời gian đa thức cho toán logarithm rời rạc Để gây khó khăn cho phơng pháp công đà biết p phải có 150 chữ số (p-1) phải có thừa số nguyên tố lớn Lợi toán logarithm rời rạc xây dợng hệ mật khó tìm đợc logarithm rời rạc ,song toán ngợc lấy luỹ thừa lại tính toán hiệu theo thuật toán "bình phơng nhân" Nói cách khác , luỹ thừa theo modulo p hàm chiều với số nguyên tố p thích hợp Elgamal đà phát triển hệ mật khoá công khai dựa toán logarithm rời rạc Hệ thống đợc trình bày hình 5.2 Hệ mật hệ không tất định mà phụ thuộc vào rõ x lẫn giá trị ngẫu nhiên k Alice chọn Bởi vậy, có nhiều mà đợc mà từ rõ Hình 2.6 Bài toán logarithm rời rạc Zp Đặc trơng toán: I = (p,,) p số nguyên tố, Zp phần tử nguyên thuỷ , Zp* Mục tiêu:HÃy tìm số nguyên a, a ≤ p-2 cho: αa ≡ β (mod p) Ta xác định số nguyên a log Hình 2.7 Hệ mật khoá công khai Elgamal Zp* Cho p số nguyên tố cho toán logarithm rời rạc Zp khó giải Cho Zp* phần tử nguyên thuỷ.Giả sử P = Zp* , C = Zp* ì Zp* Ta định nghĩa: K = {(p, α,a,β): β ≡ αa (mod p)} C¸c giá trị p, , đợc công khai, a giữ kÝn Víi K = (p, α,a,β) vµ mét sè ngÉu nhiên bí mật k Zp-1, ta xác định: ek (x,k) = (y1 ,y2 ) ®ã y1 = αk mod p y2 = xβk mod p víi y1 ,y2 Zp* ta xác định: dk(y1 ,y2 ) = y2 (y1a )-1 mod p Sau nmô tả sơ lợc cách làm việc hệ mật Elgamal Bản rõ x đợc "che dấu" cách nhân với k để tạo y2 Giá trị k đợc gửi nh phần mà Bob -ngời biết số mũ bí mật a tính đợc k từ k Sau "tháo mặt nạ" cách chia y2 cho k để thu đợc x VÝ dô 5.1 Cho p = 2579, α = 2, a = 765 Khi ®ã β = 2765 mod 2579 = 949 Bây ta giả sử Alice muốn gửi thông báo x = 1299 tới Bob Giả sử số ngẫu nhiên k mà cô chọn k = 853 Sau cô ta tính y1 = 2853 mod 2579 = 435 y2 = 1299 × 949853 mod 2579 = 2396 Khi Bob thu đợc mà y = (435,2396), tÝnh x = 2396 × (435765)-1 mod 2579 = 1299 Đó rõ mà Alice đà mà hoá 5.1.1 Các thuật toán cho toán logarithm rời rạc Trong phần ta xem p số nguyên tố, phần tử nguyên thủ theo modulo p Ta thÊy r»ng p vµ α số cố định Khi toán logarithm rời rạc đợc phát biểu dới dạng sau: t×m mét sè mị a nhÊt, ≤ a ≤ p-2 cho αa ≡β (mod p), víi β Zp* cho trớc Rõ ràng toán logarithm rời rạc (DL) giải phép tìm kiếm vét cạn với thời gian cỡ O(p) không gian cì O(1) ( bá qua c¸c thõa sè logarithm) Bằng cách tính toán tất giá trị a xếp cặp có thứ tự (a, a mod p) có lu ý đến tạo độ thứ hai chúng, ta giải to¸n DL víi thêi gian cì O(1) b»ng O(p) phÐp tính toán trớc O(p) nhớ ( bỏ qua thừa số logarithm) Thuật toán không tầm thờng mà mô tả thuật to¸n tèi u ho¸ thêi gian - bé nhí cđa Shanks Thuật toán Shanks Hình 5.3 Thuật toán Shanks cho toán DL Tính mj mod p, j m-1 Sắp xếp m cặp thứ tự ( j,mj mod p) có lu ý tới tạo độ thứ hai cặp này, ta thu đợc danh sách L1 Tính -i mod p, i m-1 Sắp xếp m cặp thø tù (i, βα-i mod p) cã lu ý tíi toạ độ thứ hai cặp đợc này, ta thu đợc danh sách L2 Tìm cặp (j,y) L1 cặp (i,y) L2 ( tức cặp có tạo độ thứ hai nh nhau) Xác định log = mj + i mod (p-1) - Nếu cần, bớc tính toán trớc ( nhiên, điều không ảnh hởng tới thời gian chạy tiệm cận) - Tiếp theo cần để ý (j,y) L1 (i,y) L2 mj = y = βα-i Bëi vËy αmj+i = β nh mong muốn Ngợc lại, ta có thĨ viÕt logαβ = mj+i ®ã ≤ j,i ≤ m-1 V× thÕ phÐp t×m kiÕm ë bíc chắn thành công Có thể áp dụng thuật toán chạy với thời gian O(m) với nhớ cì O(m) ( bá qua c¸c thõa sè logarithm) Chó ý bớc thực cách ( đồng thời ) qua danh sách L1 L2 Sau ví dụ nhỏ để minh hoạ Ví dụ 5.2 Giả sử p = 809 ta phải tìm log3525 Ta có = 3, = 525 m = 808 = 29 Khi đó: 29 mod 809 = 99 Trớc tiên tính cặp đợc (j,99j mod 809) với j28 Ta nhận đợc danh sách sau: (0,1) (5,329) (10,644) (15,727) (20,582) (25,586) (1,99) (6,211) (11,654) (16,781) (21,496) (26,575) (2,93) (7,664) (12,26) (17,464) (22,564) (27,295) (3,308) (8,207) (13,147) (18,314) (23,15) (28,81) (4,559) (9,268) (14,800) (19,275) (24,676) Danh sách đợc xếp để tạo L1 Danh sách thứ hai chứa cặp đợc (i,525ì(3i)-1 mod 809), với i 28 Danh sách gồm: (0,525) (5,132) (10,440) (15,388) (20,754) (25,356) (1,175) (6,44) (11,686) (16,399) (21,496) (26,658) (2,328) (7,554) (12,768) (17,133) (22,564) (27,489) (3,379) (8,724) (13,256) (18,314) (23,15) (28,163) (4,396) (9,511) (14,,355) (19,644) (24,676) Sau s¾p xÕp danh sách này, ta có L2 Bây xử lý đồng thời qua hai danh sách, ta tìm đợc ( 10,644) L1 (19,644) L2 Bây ta tính log3525 = 29ì10+19 = 309 Cã thĨ kiĨm tra thÊy r»ng qu¶ thùc 3309 ≡ 525 (mod 809) ThuËt to¸n Pohlig - Hellman ThuËt toán mà ta nghiên cứu thuật toán Pohlig - Hellman Giả sử pi số nguyên tố đặc biệt Giá trị a = log đợc xác định mét c¸ch nhÊt theo modulo p-1 Tríc hÕt nhËn xÐt r»ng, nÕu cã thĨ tÝnh a mod pici víi i, i k, tính a mod (p-1) theo định lý phần d China Để thực diều ta giả sử q số nguyên tố p-1 (mod qc) p-1 ≡ (mod qc+1) Ta sÏ chØ c¸ch tÝnh giá trị x = a mod qc x ≤ qc-1 Ta cã thĨ biĨu diƠn x theo c¬ sè q nh sau: ®ã ≤ ≤ q-1 víi ≤ i ≤ c-1 Cịng cã thĨ biĨu diƠn nh sau: a = x + qcs víi s số nguyên Bớc thuật toán tính a0 Kết là: (p-1)/q (p-1)a0/q(mod p) Để thấy rõ điều cần ý rằng: Điều đủ thấy: Kết khi: Tuy nhiên Đó điều cần chứng minh Do ta bắt đầu việc tính (p-1)/q mod p Nếu (p-1)/q (mod p) a0=0 Ngợc lại tính liên tiếp giá trị: = α(p-1)/q mod p, γ2 mod p, ., cho tíi i (p-1)/q (mod p) với giá trị i Khi điều xảy ta có a0 =i Bây c = ta đà thực xong Ngợc lại, c > phải tiếp tục xác định a1 Để làm điều ta phải xác định kí hiệu Dễ dàng thấy r»ng β1 = β α-ao x1 = logαβ1 mod qc Vì dẫn đến Nh ta tính 1(p-1)/q2 mod p tìm i cho Khi a1 = i Nếu c =2 công việc kết thúc; không, phải lặp lại công việc c-2 lần để tìm a2, .,ac-1 Hình 5.4 mô tả giải mà thuật toán Pohlig - Hellman Trong thuật toán này, phần tử nguyên thuỷ theo modulo p, q số nguyên tố p-1 ≡ (mod qc) vµ p-1 ≡ (mod qc+1) Thuật toán tính giá trị a0, , ac-1 log mod qc Hình 5.4 Thuật toán Pohlig - Hellman ®Ĩ tÝnh logα β mod qc TÝnh γ = α(p-1)/q mod p víi ≤ i q-1 Đặt j = j = β While j ≤ c-1 TÝnh δ = βj(p-1)/q j+1 mod p T×m i cho δ = γi aj = i βj+1 = βj α-aj qj mod p j = j +1 Chúng ta minh hoạ thuật toán Pohlig - Hellman (P - H) qua mét vÝ dô nhá VÝ dô 5.3 Giả sử p=29; n = p-1 = 28 = 22.71 Giả sử = = 18 Ta phải xác định a = log218 Trớc tiên tÝnh a mod råi tÝnh a mod Ta bắt đầu việc đặt q = 2, c = Tríc hÕt γ0 = vµ γ1 = α28/2 mod 29 = 214 mod 29 = 28 TiÕp theo δ = β28/2 mod 29 = 1814 mod 29 = 28 V× a0 = TiÕp theo ta tÝnh: β1 = β0α-1 mod 29 =9 vµ β128/4 mod 29 = 97 mod 29 = 28 V× γ1 ≡ 28 mod 29 Ta cã a1 = Bëi vËy a ( mod 4) Tiếp theo đặt q = vµ c = 1, ta cã β28/7 mod 29 = 184 mod 29 = 25 28/7 vµ γ1 = α mod 29 = 24 mod 29 = 16 Sau ®ã tÝnh: γ2 = 24 γ3 = γ4 = 25 Bëi vËy a0 = vµ a ≡ ( mod 7) Cuối giải hệ phơng trình a ≡ ( mod 4) a ≡ ( mod 7) định lý phần d China, ta nhận đợc a 11( mod 28) Điều có nghĩa đà tính đợc log218 Z29 11 Phơng pháp tính toán số Phơng pháp tính số giống với nhiều thuật toán phân tích thừa số tốt Trong phần xét tóm tắt phơng pháp Phơng pháp dùng sở nhân tử tập B chứa số nguyên tố nhỏ Giả sử B = {p1,p2, ., pB} Bớc ( bớc tiền xử lý) tìm logarithm B số nguyên tố sở nhân tử Bớc thứ hai tính logarithm rời rạc phần tử cách dùng hiểu biết log phần tử sở Trong trình tiền xử lý, ta xây dựng C = B +10 ®ång d thøc theo modulo p nh sau: αxj ≡ p1a1jp2a2j pBaBj(mod p) ≤ j C Cần để ý rằng, đồng d viết tơng đơng nh sau: xj a1jlogαp1+ + aBjlogαpB (mod p-1) ≤ j C C đồng d thức đợc cho theo B giá trị logpi (1 i B) cha biÕt Ta hy väng r»ng, cã mét nghiÖm nhÊt theo modulo p-1 Nếu nh tính logarithm phần tử theo sở nhân tử Làm để tạo đồng d thức có dạng mong muốn? Một phơng pháp sơ đẳng chọn số ngẫu nhiên x, tính x mod p xác định xem liệu x mod p có tất thừa số B hay không (Ví dụ cách chia thử) Bây giả sử đà thực xong bớc tiên tính toán, ta tính giá trị mong muốn log thuật to¸n x¸c st kiĨu Las Vegas Chän mét sè ngÉu nhiên s ( s p-2) tính : γ = β αs mod p B©y giê thư phân tích theo sở B Nếu làm đợc điều ta tính đợc đồng d thức dạng: s = p1c1p2c2 pBcB (mod p) Điều tơng đơng với log + s c1logp1+ + cBlogpB ( mod p-1) Vì giá trị đả biết trừ giá trị log nên dễ dàng tìm đợc log Sau ví dụ minh hoạ bớc thuật toán Ví dụ 5.4 Giả sử p =10007 = phần tử nguyên thuỷ đợc dùnglàm sở logarithm theo modulo p Giả sử lấy B = {2, 3, 5, 7} làm sở Hiển nhiên log55 = nên có giá trị log phần tử sở cần phải xác định Để làm ví dụ, chọn vài số mũ "may mắn" sau: 4063, 5136 985 Với x = 4063, ta tÝnh 54063 mod 10007 = 2×3×7 øng víi đồng d thức Tơng tự, log52 + log53 + log57 ≡ 4063 ( mod 10006) 55136 mod 10007 = 54 = 2×33 59865 mod 10007 = 189 = 33ì7 ta tìm đợc hai đồng d thức nữa: log52 + 3log53 ≡ 5136 ( mod 10006) 3log53 + log57 ≡ 9865 ( mod 10006) B©y giê ta cã đồng d thức theo giá trị log cha biết Giải phơng trình đồng d này, ta có log52 = 6578, log53 = 6190, log57 = 1301 B©y giê giả sử ta cần tìm log59451, ta chọn số mũ "ngẫu nhiên" s=7736 tính: 9451ì57736 mod 10007 = 8400 Vì 8400 = 24315271 thừa số B nên ta nhận đợc: log59451 = 4log52 + log53 + log55 + log57 - s mod 10006 = 4×6578 + 6190 + 2×1 + 1310 - 7736 mod 10006 = 6057 KiĨm tra l¹i ta thÊy r»ng 56057 ≡ 9451 ( mod 10007) Đà có nhiều nghiên cứu phân tích mò mẫm nhiều kiểu thuật toán khác Với giả thiết hợp lý, Thời gian chạy tiệm cận giai đoạn tiền tính toán cỡ thời gian để tính giá trị logarithm rời rạc riêng khoảng Hình 5.5 Bít thứ i logarithm rời rạc Bản chất toán: I = (p, , , i) p số nguyên tố , Z phần tử nguyên thuỷ, Zp* i sè nguyªn cho ≤ i ≤ log2(p-1) * p trớc) Mục tiêu:Tính Li() bít thấp thứ i log (với p cho 5.1.2 Độ bảo mật tng bít logarithm rời rạc Bây ta xem xét vấn đề thông tin phận logarithm rời rạc thử xem việc tính bít riêng logarithm rời rạc khó hay dễ Cụ thể , xét toán trình bày hình 5.5 Bài toán đợc gọi toán bít thứ i Trớc tiên, ta chØ r»ng, bÝt thÊp nhÊt cđa c¸c logarithm rêi rạc dễ tính toán Nói cách khác, i = toán bít thứ i giải đợc cách hiệu Điều rút từ tiêu chuẩn Euler liên quan đến thặng d bình phơng theo modulo p, với p số nguyên tố Xét ánh xạ f: Zp* Zp* đợc định nghÜa nh sau: f(x) = x2 mod p NÕu kÝ hiệu QR(p) tập thặng d bình phơng theo modulo p th× QR(p) = { x2 mod p : x ∈ Zp*} Tríc tiªn ta thÊy r»ng, f(x) = f(p-x) TiÕp theo xÐt thÊy: vµ chØ w2 x2 mod p p | (w-x)(w+x) điều xảy w x mod p Từ rút ra: | f-1(y) | = víi mäi y ∈ QR(p) vµ bëi vËy: | QR(p) = (p-1)/2 Điều có nghĩa có thặng d Zp* thặng d bình phơng Bây giở giả sử rằng, phần tử nguyên thuỷ Zp* Khi aQR(p) a chẵn Vì (p-1)/2 phÇn tư α0 mod p, α2 mod p, .,p-3 mod p phần tử khác nªn: QR(p) = {α2i mod p: ≤ i ≤ (p-3)/2} Bởi vậy, thặng d bình phơng log chẵn, tức L1(β) = Tuy nhiªn theo tiªu chuÈn Euler thặng d bình phơng β(p-1)/2 ≡ (mod p) Nh vËy, ta ®· cã công thức hữu hiệu sau để tính L1(): β(p-1)/2 ≡ 1( mod p) L1(β)= c¸c tr­êng hợp lại Bây xét việc tính Li() với i > Gi¶ sư p-1 = 2s t t số lẻ Khi rằng, dễ dàng tính đợc Li() 1s Mặt khác, việc tính Ls+1() chắn khó dùng thuật toán giả định cho việc tính Ls+1() để tính logarithm rời rạc Zp Ta chứng minh kết trờng hợp s = Chính xác hơn, p (mod 4)là số nguyên tố ta cách sử dụng thuật toán giả định tính L2() để giải toán logarithm rời rạc Zp Nếu thặng d bình phơng Zp p ≡ ( mod 4) th× ±β(p+1)/2 mod p hai giá trị bậc hai modulo p Một ý quan trọng với β ≠ 0: L1(β) ≠ L1(p-β) nÕu p ≡ (mod 4) Ta thấy điều nh sau Giả sư αa ≡ β (mod p) th× αa+(p-1)/2 ≡ -β (mod p) Vì p (mod 4) nên số nguyên (p-1)/2 số lẻ Từ rút kết Bây giả sử = a với số mũ chẵn a (cha biết) Khi ®ã hc: β(p+1)/4 ≡ αa/2 (mod p) -β(p+1)/4 ≡ αa/2 (mod p) Ta xác định giá trị hai giá trị biết giá trị L2(), L2() = L1(a/2) Điều đợc khai thác thuật toán đợc mô tả hình 5.6 cuối thuật toán, giá trị xi bít biểu diễn nhị phân log, nghĩa là: Dới ví dụ nhỏ để minh hoạ Ví dụ 5.5 Giả sử p =19, = = Vì ví dụ này, giá trị nhỏ nên lập bảng giá trị L1() L2() với mọi giá trị Z19*.( Nói chung L1 tính đợc cách hiệu tiêu chuẩn Euler, L2 đợc tính theo thuật toán giả định) Các giá trị đợc cho bảng 5.1 Thuật toán đợc tiến hành nh hình 5.7 Bởi vậy, log26 = 11102 = 14, ta dễ dàng kiểm tra đợc giá trị Hình 5.6 Tính logarithm rời rạc Zp víi p ≡ ( mod 4) biết trớc thuật toán giả định L2( ) x0 = L1(β) β = β/αx0 mod p i =1 While β ≠ xi = L2(β) γ = β(p+1)/4 (mod p) if L1(γ) = xi then β=γ else 10 β = p -γ 11 β = β/αxi mod p 12 i = i+1 Bảng 5.1 Các giá trị L1 vµ L2 víi p =19, α = γ L1(γ) L2(γ) γ L1(γ) L2(γ) γ L1(γ) L2(γ) 0 13 1 1 14 1 0 15 1 10 16 0 0 11 0 17 1 12 0 18 Có thể đa chứng minh hình thức cho tính đắn thuật toán phơng pháp quy nạp Kí hiệu Với i 0, ta định nghÜa: Yi = x/2i+1 H×nh 5.7 TÝnh log26 Z19 x0 = β =6 i =1 x1 = L2(6) = γ = L1(5) = ≠ x1 10 β =14 11 i =2 12 i =2 x2 = L2(7) =1 γ = 11 L1(11) = ≠ x2 10 β =8 11 β =4 12 i = x3 = L2(4) = γ =17 L1(17) = ≠ x3 10 β = 11 β =1 12 i = 4 DONE Còng vËy ta xác định giá trị bớc thuật toán; với i1, ta xác định i giá trị bớc 11 bớc lặp thứ i vòng While Có thể chứng minh phơng pháp quy nạp rằng: i 2Yi (mod p) với i0 Bây để ý rằng: 2Yi = Yi-1 - xi điều kéo theo xi+1 = L2(βi) , i≥0 V× r»ng xi+1 = L2(β) nên thuật toán Các chi tiết dành cho độc giả xem xét 5.2 Trờng hữu hạn hệ thống đơng cong elliptic Chúng ta đà dành thời gian đáng kể để xét toán logarithm rời rạc (DL) vào việc phân tích số Ta trở lại hai toán loại hệ mật giao thức mà khác Bài toán DL đà đợc nghiên cứu trơng hữu hạn Zp, nhiên việc xét toán theo thiết lập khác có ích chủ đề phần Hệ mật Elgamal đợc áp dụng nhóm mà toán DL khó giải Ta đà dùng nhóm nhân Zp* nhiên nhóm khác ứng cử viên thích hợp Trớc hết ta phát biểu toán DL nhóm hữu hạn nói chung G (hữu hạn) kí hiệu phép lấy nhóm dấu "" Dạng toán tổng quát hoá nh trình hình 5.8 Dễ dàng xác định hệ mật Elgamal nhóm H theo cách tơng tự đà mô tả Zp* đợc trình bày hình 5.9 Chú ý phép mà hoá yêu cầu dïng sè nguyªn k ngÉu nhiªn cho ≤ k ≤ | H | - Tuy nhiªn, nÕu Alice cấp nhóm H cô ta tạo số nguyên k thoả mÃn ≤ k ≤ | G | -1, ®ã thay đổi trình mà giải mà Cũng cần ý nhóm G nhóm Aben (Tuy H nhóm Aben nhóm cyclic) Hình 5.8 Bài toán logarithm rời rạc (G,0) Đặc trng toán: I = (G, , ), G nhóm hữu hạn với phép lấy nhóm o , α ∈ G vµ β ∈ H, ®ã H = { αi : i ≥ 0} lµ nhóm sinh Mục tiêu: Tìm sè nguyªn nhÊt a cho ≤ a ≤ | H | -1 vµ αa = β, víi kÝ hiƯu αa cã nghÜa lµ α o o α (a lÇn) Ta sÏ kÝ hiƯu sè nguyên a log Bây ta trở lại toán DL tổng quát hoá Nhóm H đợc sinh phần tử tuỳ ý G dĩ nhiên phải nhóm cyclic cấp | H | Bởi vậy, dạng toán theo nghĩa tơng đơng với toán DL nhóm cyclic Tuy nhiên, độ khó toán DL dờng nh phụ thuộc vào cách biểu diễn nhóm đợc dùng Xét ví dụ cách biểu diễn mà với nó, toán logarithm rời rạc dễ giải Xét nhóm cộng cyclic Zn giả sử UCLN(,n) = 1, phần tử sinh Zn Vì phép toán nhóm cộng theo modulo n nên phép lấy mũ nhân với a theo modulo n Vì cách xây dựng này, toán logarithm rời rạc tìm số nguyên a cho a (mod n) Vì UCLN(,n) = nên có phần tử nghịch đảo nhân theo modulo n ta dễ dàng tính -1 mod n thuật toán Euclide Sau giải để tìm a nhận đợc log = -1 mod n Hình 5.9 Hệ mật khoá công khai Elgamal tổng quát Giả sử G nhóm hữu hạn có phép lấy nhóm o Giả sử G phần tử cho toán DL H khó; H = {αi, i ≥ 0} lµ mét nhãm sinh Đặt P = G, C = GìG định nghĩa: K = {(G, , a, ) : = a} Các giá trị , công khai, a đợc giữ kín Với K = (G, , a, ) với số ngẫu nhiên bí mật k Z|H| ta xác định: eK(x,k) = (y1,y2) ®ã y1 = αk vµ y2 = (x o βk) Với mà y = (y1,y2) ta xác định: dK(y) = y2 o (y1a)-1 phần ta đà nghiên cứu toán DL nhóm nhân Zp* vơi p là số nguyên tố Nhóm nhóm cyclic cấp p-1 đẳng cấu với nhóm cộng Zp-1 Theo thảo luận trên, ta đà biết cách tinh logarithm rời rạc cách hiệu nhóm cộng Điều gợi ý khả giải toán DL Zp* cách quy toán giải đợc dễ dàng Zp-1 Ta hÃy xem xét điều đợc thực nh nào? Khi nói rằng, (Zp*, ì) đẳng cấu với (Zp-1, +) có nghĩa có song ánh : φ : Zp*  Zp-1 cho φ(xy mod p) = ((x) + (y)) mod (p-1) Điều kéo theo: φ(αa mod p) = a φ(α) mod (p-1) Bëi vËy β ≡ αa mod p ⇔ a φ(α) ≡ () (mod p-1) Do tìm a theo mô tả trên, ta có: log = () (())-1 mod (p-1) Bây giờ, có phơng pháp hữu hiệu để tính phép đẳng cấu ta có thuật toán hữu hiệu để tính logarithm rời rạc Zp* Khó khăn phơng pháp chung đà biết để tính hiệu phép đẳng cấu với số nguyên tố tuỳ ý Ngay đà biết hai nhóm đẳng cấu biết thuật toán hiệu để mo tả tơng minh phép đẳng cấu Phơng pháp áp dụng cho toán DL mét nhãm G tuú ý NÕu cã mét ph¬ng pháp hiệu tính phép đẳng cấu H Z|H| toán DL G mô tả giải đợc cách hữu hiệu Ngợc lại, dễ dàng thấy rằng, phơng pháp tính logarithm rời rạc có hiệu tạo phơng pháp hiệu tính phép đẳng cấu hai nhóm Thảo luận rằng, toán DL dễ khó (xétbề ngoài) tuỳ thuộc vào biểu diễn nhóm cyclic đợc dùng Nh vậy, tốt xem xét nhóm khác với hy vọng tìm đợc thiết lập khác để toán DL khó Có hai lớp nhóm nh vËy Nhãm nh©n cđa trêng Galois GF(pn) Nhãm đờng cong elliptic xác định trơng hữu hạn Ta hÃy xem xét hai lớp nhóm phần sau 5.1.2 Trờng Galois Ta đà biết rằng, p số nguyên tố Zp trờng Tuy nhiên có nhiều trờng hữu hạn khác dạng Thực tế có trờng hữu hạn q phần tử q = pn, p số nguyên tố , n 1là số nguyên Bây ta mô tả ngắn gọn cách xây dựng trờng nh Trớc tiên ta đa vài định nghĩa Định nghĩa 5.1 Giả sử p số nguyên tố Gọi Zp[x] tập tất đa thức biến x Bằng cách xây dựng phép cộng nhân đa thức theo quy tắc thông thờng ( rút gọn hệ số theo modulo p) ta tạo nên vành Với f(x), g(x) ∈ Zp[x], ta nãi r»ng, f(x) chia hÕt cho g(x) ( kÝ hiƯu f(x) | g(x)) nÕu tån t¹i q(x) ∈ Zp[x] cho: g(x) = q(x)f(x) Víi f(x) ∈ Zp[x], ta xác định bậc f ( kí hiệu deg(f)) số mũ cao có số hạng f Giả sử f(x), g(x), h(x) Zp[x] deg(f) = n 1, ta định nghĩa: g(x) ≡ h(x) (mod f(x)) nÕu f(x) | (g(x) - h(x)) Chú ý tơng tự định nghĩa đồng d đa thức với định nghĩa đồng d số nguyên Bây ta định nghĩa vành đa thức theo modulo f(x) (ta kí hiệu vành Zp[x]/f(x)) Việc xây dựng Zp[x]/f(x) từ Zp[x] dựa khái niệm đồng d thức theo modulo f(x) tơng tự nh việc xây dựng Zm từ Z Giả sử deg(f) = n Nếu chia g(x) cho f(x), ta thu đợc thơng q(x) phần d r(x), đó: g(x) = q(x)f(x) + r(x) deg(r) < n Điều thực theo cách chia đa thức thông thờng Bởi vậy, đa thứ Zp[x] đồng d theo modulo f(x) víi mét ®a thøc nhÊt có bậc n-1 Bây ta xác định phần tử Zp[x]/f(x) pn đa thức Zp[x] cã bËc nhiỊu nhÊt lµ n-1 PhÐp céng nhân Zp[x]/(f(x)) đợc xác định nh Zp[x], sau ®ã thùc hiƯn rót gän theo modulo f(x) Víi phép toán này, Zp[x]/(f(x)) tạo thành vành Cần nhớ lại rằng, Zm trờng m số nguyên tố phần tử nghịch đảo nhân tìm đợc qua thuật toán Euclide Tình hình tơng tự xảy Zp[x]/(f(x)) Sự tơng tự số nguyên tố với đa thức bất khả quy đợc xác định nh sau: Định nghĩa 5.2 Đa thức f(x) Zp[x] đợc gọi bất khả quy không tồn ®a thøc f1(x), f2(x) ∈ Zp[x] cho f(x) = f1(x)f2(x) deg(f1) > deg(f2) > Mét thùc tÕ rÊt quan träng lµ Zp[x]/(f(x)) lµ mét trờng f(x) bất khả quy Hơn nữa, phần tử nghịch đảo nhân Zp[x]/(f(x)) tính đợc cách dùng thuật toán Euclide mở rộng có biến đổi đôi chút Sau ví dụ minh hoạ cho vấn đề nêu Ví dụ 5.6 Xây dựng trờng phần tử Điều thực cách tìm đa thøc bÊt kh¶ quy bËc Z2[x] Ta chØ cần xem xét đa thức có thành phần số đa thức có thành phần số chia hết cho x đa thức bất khả quy Có tất đa thức nh vËy f1(x) = x3 + f2(x) = x3 + x + f3(x) = x3 + x2 + f4(x) = x3 + x2 + x + XÐt thấy f1(x) khả quy vì: x3 +1 = (x+1)(x2+x+1) (cần để ý tất hệ số đợc rút gọn theo modulo 2) Tơng tự, f4(x) khả quy vì: x3+x2+x+1 = (x+1)(x2+1) Tuy nhiên hai đa thức f2(x) va f3(x) lại đa thức bất khả quy dùng hai đa thức để xây dựng trờng phần tử Giả sử dùng f2(x) để xây dựng trờng Z2[x]/(x3+x+1) phần tử trờng đa thức : 0, 1, x, x+1, x2, x2+1, x2+x, x2+x+1 §Ĩ tÝnh tÝch cđa hai phần tử trờng, nhân hai đa thức với vµ rót gän theo modulo x3+x+1 (tøc chia cho (x3+x+1) tìm đa thức d) Vì ta chia đa thức bậc nên đa thức d có bậc nhiều phần tư cđa trêng VÝ dơ, ta h·y tÝnh (x2+1)(x2+x+1) Z2[x]/(x3+x+1) Tríc hÕt tÝnh tÝch Z2[x] lµ x4+x3+x+1 Khi chia cho x3+x+1, ta nhận đợc biểu thức sau: x4+x3+x+1 = (x+1)(x3+x+1) +x2+x Bëi vËy, trêng Z2[x]/(x3+x+1) ta cã : (x2+1)(x2+x+1) = x2+x Dới đa bảng dầy đủ cho cá phần tử khác trờng Để đơn giản, ta viết đa thức : a2x2+a1x+a0 theo ba đợc a2a1a0 001 010 011 100 101 110 111 001 001 010 011 100 101 110 111 010 010 100 110 011 001 111 101 011 011 110 101 111 100 001 010 100 100 011 111 110 010 101 001 101 101 001 100 010 111 011 110 110 110 111 001 101 011 010 100 111 111 101 010 001 110 100 011 ViÖc tÝnh phần tử nghịch đảo đợc tực theo thuật toán Euclide mở rộng có biến đổi đôi chút Cuối cùng, ta thâý nhóm nhân đa thức khác trờng nhóm cyclic cấp Vì số nguyên tố nên suy phần tử khác trờng phần tử sinh nhóm (tức phần tử nguyên thuỷ) VÝ dơ, nÕu tÝnh c¸c l thõa cđa x, ta cã: x1 = x x2 =x2 x3 = x+1 x4 = x2+1 x5 = x2+ x+1 x6 = x2+1 x7 = bao gồm tất phần tử khác trờng Vấn đề lại tồn tính trờng dạng nµy Cã thĨ chØ r»ng, cã Ýt nhÊt mét đa thức bất khả quy bậc n Zp[x] Bởi vậy, có trờng hữu hạn pn phần tử nguyên tố p số nguyên n1 Thông thơng có nhiều đa thức bất khả quy bậc n Zp[x] Tuy nhiên, trờng hữu hạn đợc xây dựng từ hai đa thức bất khả quy bậc n chứng tỏ đợc chúng đaửng cấu với Bởi vậy, có trơng hữu hạn cÊp pn tuú ý (p - sè nguyªn tè, n≥ 1) trờng GF(pn) Trong trờng hợp n = 1, trơng GF(p) Zp Cuối cùng, rằng, không tồn trờng hữu hạn r phÇn tư trõ phi r = pn víi p số nguyên tố , n số nguyên (n1) Ta đà nhận thấy nhóm nhân Zp* (p - số nguyên tố) nhóm cyclic cấp p-1 Thực tế, nhóm nhân trờng hữu hạn nhóm cyclic: GF(pn)\{0} nhóm cyclic cấp pn-1 Nhóm cho ví dụ nhóm cyclic toán DL đợc nghiên cứu Thực tế trờng hữu hạn GF(2n) đà đợc nghiên cứu kĩ Cả hai thuật toán logarithm rời rạc Shanks Pohlig-Hellman làm việc trờng GF(2n) Phơng pháp tính toán số sửa đổi để làm việc trơng Thêi gian tiỊn tÝnh to¸n cđa tht to¸n tÝnh to¸n số khoảng thời gian để tìm giá trị logarithm rời rạc riêng khoảng ( 1/ ( ln n ) / ) ( 1/ ( ln n ) / ) O e ( 1, 405+O ( 1) ) n O e ( 1, 098+O ( 1) ) n Tuy nhiên, với giá trị n lớn (n > 800), toán DL GF(2n) đợc coi khó cỡ 2n phải có thừa số nguyên tố "lớn" ( để gây khó khăn cho cách công Pohlig - Hellman) 5.2.2 Các đơng cong Elliptic Ta bắt đầu việc định nghĩa khái niệm đờng cong elliptic Định nghĩa 5.3 Cho p >3 số nguyên tố Đường cong elliptic y2 = x3+ax+b Zp [Phơng trình (5.1) dùng để xác định đờng cong elliptic trờng GF(pZpìZppthoả mÃn đồng dư thứchơn Đờng cong elliptic tập cặp (x,y) n) với - số nguyên tố lớn GF(2n) GF(3n đợc xác định phơng trình khác đôi chút)] y2 ) x3+ax+b (mod p) (5.1) ®ã a, b∈Zp số cho 4a3+27b2 ( mod p) cïng víi §êng cong elliptic E cã thĨ tạo thành nhóm Aben cách xác điểm phépbiệt Othích hợp điểm vô cực Phép toán phép định đặc toán gọi điểm cộng đợc xác định nh sau ( phép toán số học đợc thực Zp) Giả sử P = (x1,y1) Q = (x2,y2) điểm E Nếu x2=x1 y2=-y1 P+Q = O; ngợc lại P+Q = (x3,y3) đó: x3 = 2-x1-x2 y3 = (x1-x3)-y1 P Q Cuối ta xác định (y2-y1)/(x2-x1) P+O = O+P = P λ= ®èi víi mäi P E Với định nghĩa phépnếu P = Qvậy, có thĨ chØ r»ng, E lµ céng nh (3x1 +a)/2y1 nhóm Aben với phần tử đơn vị O ( phần lớn phép kiểm tra đơn giản song việc chứng minh tính kết hợp lại khó) Cần để ý phần tử ngợc (nghịch đảo) dễ tính toán Phần tử nghịch đảo (x,y) lµ (x,-y) víi mäi (x,y) ∈ E ( ta kÝ hiệu phần tử (x,y) phép nhóm phÐp céng) XÐt vÝ dơ sau VÝ dơ 5.7 Gi¶ sử E đờng cong elliptic y2 = x3+x+6 Z11 Trớc tiên ta xác định điểm E Để làm điều đó, xét giá trị có thĨ x ∈ Z11, tÝnh x3+x+6 mod 11 vµ thư giải phơng trình (5.1) y Với giá trị x cho tríc, ta cã thĨ kiĨm tra xem liƯu z = x3+x+6 mod 11 có phải thặng d bình phơng hay không cách áp dụng tiêu chuẩn Euler Ta đà có công thức t- ờng minh để tính bậc hai thặng d bình phơng theo modulo p với số nguyên tố p (mod 4) áp dụng công thức này, ta có bậc hai thặng d bình phơng z là: z(11+1)/4 mod 11 = z3 mod 11 Kết phép tính đợc nêu bảng 5.2 Nh vậy, E có tất 13 điểm Với nhóm cấp nguyên tố nhóm cyclic nên dẫn đến E đẳng cấu với Z13 điểm ( điểm vô cực) phần tử sinh nhóm E Giả sử ta lấy phần tử sinh (2,7) = Khi ta tính "luỹ thừa" ( bội phép nhóm phép cộng) Để tính = (2,7) + (2,7), tríc hÕt ta tÝnh: λ = (3×22+1)(2×7)-1 mod 11 = 2×3-1 mod 11 = 2×4 mod 11 =8 Sau ®ã ta cã: x3 = 82-2-2 mod 11 =5 vµ y3 = (8(2-5)-7) mod 11 =2 Bëi vËy = (5,2) Bảng 5.2 Các điểm đờng cong elliptic y2 = x3+x+6 trªn Z11 x 10 x3+x+6 mod 11 8 Cã QR(11)? Kh«ng Kh«ng Cã Cã Kh«ng Cã Kh«ng Cã Cã Kh«ng Cã y 4,7 5,6 2,9 2,9 3,8 2,9 Béi tiÕp theo lµ 3α = 2α+α = (5,2) + (2,7) Ta lại bắt đầu viẹc tÝnh λ λ = (7-2)(2-5)-1 mod 11 = 5×8-1 mod 11 Khi ta có = 5ì7 mod 11 =2 x3 = 22-5-2 mod 11 =8 y3 = 2(5-8) - mod 11 =3 Bëi vËy 3α = (8,3) Tiếp tục theo cách tơng tự, tính đợc bội lại nh sau: = (2,7) = (5,2) 3α = (8,3) 4α = (10,2) 5α = (3,6) 6α = (7,9) 7α = (7,2) 8α = (3,5) 9α = (10,9) 10α = (8,8) 11α = (5,9) 12α = (2,4) Do = (2,7) thực phần tử nguyên thuỷ Một đờng cong elliptic xác định Zp (p số nguyên tố >3) có khoảng p điểm Chính xác hơn, theo định lý tiếng Hasse, số điểm E ( kí hiệu #E) thảo mÃn bất đẳng thức sau: p + − p ≤# E ≤ p + + p ViƯc tÝnh to¸n chÝnh x¸c giá trị #E có khó nhng đà có thuật toán hữu hiệu Schoof đa giúp tính toán dễ dàn hơn.( Nghĩa hữu hiệu đợc hiểu thời gian chạy thuật toán thời gian đa thức theo log p Thuật toán Schoof có thời gian chạy khoảng O((log p)8) phép tính bít thực số nguyên tố p có vài trăm chữ số) Bây giả sử tính đợc #E Vấn đề phải tìm nhóm cyclic E cho toán DL khó Bởi ta phải biết vài điều cấu trúc nhóm E Định lý sau cung cấp thông tin đáng kể cấu trúc nhóm E Định lý 5.1 Cho E đờng cong elliptic Zp, p số nguyên tố > Khi đó, tồn số nguyên n1 n2 cho E đẳng cấu với Zn1ìZn2 Ngoài n2 | n1 vµ n2 | (p-1) Bëi vËy nÕu cã thể tính đợc số n1 n2 ta biết E có nhóm cyclic đẳng cấu với Zn1 dùng E để thiết lËp mét hĐe mËt Elgamal Chó ý lµ nÕu n2 = E nhóm cyclic Cũng vậy, #E số nguyên tố tích số nguyên tố khác E nhãm cyclic cã chØ sè nhãm cyclic C¸c thuËt to¸n Shanks Pohlig - Hellman áp dụng cho toán rời rạc đờng cong Elliptic song tới cha có thuật toán thích hợp cho phơng pháp tính số đờng cong Elliptic.Tuy nhiên, đà có phơng pháp khai thác đẳng cấu cách tờng minh đờng cong Elliptic trờng hữu hạn Phơng pháp dẫn đến thuật toán hữu hiệu số lớp ®êng cong Elliptic Kü thuËt nµy Menezes, Okamoto vµ Vanstone đa áp dụng cho số trờng hợp riêng lớp đặc biệt đờng cong Elliptic (đợc gọi đờng cong siêu biến, chúng đà đợc kiến nghị sử dụng hệ thống mật mÃ) Tuy nhiên, tránh đờng cong siêu biến lại xuất đờng cong Elliptic cã mét nhãm cyclic cì 2160 , ®êng cong nµy sÏ cho phÐp thiÕt lËp an toµn mét hệ mật miễn bậc nhóm phải béi cđa Ýt nhÊt mét thõa sè nguyªn tè lín ( nhằm bảo vệ hệ mật khỏi phơng pháp c«ng cđa Pohlig - Hellman) XÐt mét vÝ dơ vỊ phép mà Elgamal sử dụng đờng cong elliptic nêu vÝ dơ 5.7 VÝ dơ 5.8 Gi¶ sư α = (2,7) vµ sè mị mËt cđa Bob lµ a = Bëi vËy: β = 7α = (7,2) PhÐp m· hoá thực nh sau eK(x,k) = (k(2,7),x+k(7,2)) xE k 12 phép giải m· thùc hiƯn nh sau: dK(y1,y2) = y2-7y1 Gi¶ sư Alice muốn mà tin x = (10,9) ( điểm E) Nếu cô chọn giá trị ngẫu nhiên k=3 cô tính y1 = 3(2,7) = (8,3) vµ y2 = (10,9) + 3(7,2) = (10,9) + (3,5) = (10,2) Bëi vËy, y = ((8,3),(10,2)) B©y giê nÕu Bob nhận đợc mà y giải m· nh sau: x = (10,2) - 7(8,3) = (10,2) - (3,5) = (10,2) + (3,6) = (10,9) Đây rõ Trên thực tế có số khó khăn áp dụng hệ mật Elgamal đờng cong Elliptic Hệ thống đợc áp dụng Zp ( hc GF(pn) víi n > 1) sÏ cã hệ số mở rộng tin Việc áp dơng ®êng cong Elliptic sÏ cã thõa sè më réng khoảng lần Điều có xấp xỉ p rõ, nhng mà lại gổm bốn phần tử trờng Một trở ngại không gian rõ chứa điểm đờng cong E phơng pháp xác định tờng minh điểm E Menezes Vanstone đà tìm phơng án hiệu theo phơng án đờng cong Elliptic dùng để "che dấu", rõ mà hợp lệ cặp đợc tùy ý phần tử khác không trờng( tức chúng không đòi hỏi phải điểm E) Điều tạo hệ số mở rộng tin lµ gièng nh hƯ mËt Elgamal ban đầu Hệ mật Menezes - Vanstone đợc mô tả hình 5.10 Nếu trở lại đờng cong y2 = x3 + x + trªn Z11 ta sÏ thÊy r»ng hệ mật Menezes - Vanstone có 10ì10 = 100 rõ, hệ mật ban đầu có 13 rõ Ta minh hoạ phép mà giải mà hệ mật cách sử dụng đờng cong Hình 3.6 Hệ mật đờng cong Elliptic Menezes - Vanstone Giả sử E đờng cong Elliptic Zp (p số nguyên tố > 3) cho E chøa mét nhãm cyclic H, toán DL toán khó Giả sử P = Zp* ì Zp* , C = E ì Zp* ì Zp* ,ta định nghĩa: K = { (E,α,a,β) : β = a α } ®ã E Các giá trị đợc công khai, a đợc giữ kín Đối với K = (E,,a,), víi sè ngÉu nhiªn bÝ mËt k ∈ Z| H | x = (x1,x2) Zp*ì Zp*, ta xác ®Þnh: eK (x,k) = (y0,y1,y2) y0 = k α (c1,c2) = k β y1 = c1x1 mod p vµ y2 = c2y2 mod p Víi b¶n m· y = (y0,y1,y2), ta định nghĩa dK (y) = (y1c1-1 mod p, y2c2-1 mod p) ®ã a y0 = (c1,c2) VÝ dơ 5.9 Cịng nh vÝ dơ tríc, gi¶ sư α = (2,7) vµ sè mị mËt cđa Bob lµ Khi ®ã β = 7α = (7,2) Gi¶ sư Alice mn mà hoá rõ sau: x = (x1,x2) = (9,1) (Cần ý x điểm E) cô chọn giá trị ngẫu nhiên k = Đầu tiên cô tính: Nh vậy, c1 = cßn c2 = y0 = kα = 6(2,7) = (7,9) kβ = 6(7,2) = (8,3) TiÕp theo Alice tÝnh: y1 = c1x1 mod p = 8×9 mod 11 = vµ y2 = c2x2 mod p = 3ì1 mod 11 = Bản mà mà cô giửi cho Bob lµ: y = (y0,y1,y2) = ((7,9), 6, 3) Khi Bob nhận đợc mà này, Trớc tiên tÝnh: (c1,c2) = (a y0) = 7(7,9) = (8,3) sau tính: x = (y1c1-1 mod p, y2c2-1 mod p) = ((6×8-1 mod 11, 3×3-1 mod 11) = (6×7 mod 11, 3×4 mod 11) = (9,1) H×nh 5.11 Bài toán tổng tập Đặc trng to¸n: I = (s1, s2, ,sn, T) s1, , sn T số nguyên dơng Các si đợc gọi cỡ, T đợc gọi tổng đích Vấn đề: Liệu có véc tơ nhị phân x = (x1, , xn) cho: n ∑x i =0 i si =T ? Đây rõ 5.3 Hệ mật xêp ba lô merkle - Hellman ... r»ng hƯ mËt Menezes - Vanstone có 10ì10 = 100 rõ, hệ mật ban đầu có 13 rõ Ta minh hoạ phép mà giải mà hệ mật cách sử dụng đờng cong Hình 3.6 Hệ mật đờng cong Elliptic Menezes - Vanstone Giả sử... tả sơ lợc cách làm việc hệ mật Elgamal Bản rõ x đợc "che dấu" cách nhân với k để tạo y2 Giá trị k đợc gửi nh phần mà Bob -ngời biết số mũ bí mật a tính đợc k từ k Sau "tháo mặt nạ" cách chia... phần tử khác không trờng( tức chúng không đòi hỏi phải điểm E) Điều tạo hệ số mở rộng tin giống nh hệ mật Elgamal ban đầu Hệ mật Menezes - Vanstone đợc mô tả hình 5.10 Nếu trở lại đờng cong y2 =

Ngày đăng: 22/08/2012, 11:30

Từ khóa liên quan

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

Tài liệu liên quan