1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình Mật mã và ứng dụng: Chương 5

42 11 0

Đ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

Nội dung

Giáo trình Mật mã và ứng dụng - Chương 5: Các hệ mã hóa công khai khác, trình bày các nội dung chính: hệ mật Elgamal và các logarithm rời rạc, trường hữu hạn và các hệ thống đường cong Elliptic, hệ mật xếp ba lô Merkle - Hell man,... Đây là tài liệu tham khảo dành cho sinh viên Công nghệ thông tin.

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 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 logarithm 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 trng 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,) số ngẫu nhiên bí mật k Zp-1, ta xác định: ek (x,k) = (y1 ,y2 ) ®ã k y1 = α 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 mô 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 thuỷ theo modulo p Ta thÊy r»ng p vµ α lµ 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 mét 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ã l−u ý tíi c¸c 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 viÕt logαβ = mj+i ®ã ≤ j,i ≤ m-1 Vì 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 s¾p (j,99j mod 809) víi ≤ j≤28 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 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 giê ta cã thĨ 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 c¸ch nhÊt theo modulo p-1 Tr−íc hÕt nhËn xÐt rằng, tính a mod pici với i, ≤ i ≤ k, th× cã thĨ 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 + qc s 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 sÏ 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ư β b»ng c¸ch dïng c¸c hiĨu biÕt vỊ c¸c 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 a1jlogp1+ + 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) Trªn thùc tÕ cã mét 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 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,2) Giả sử Alice muốn 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: y0 = k = 6(2,7) = (7,9) vµ kβ = 6(7,2) = (8,3) Nh− vËy, c1 = cßn c2 = 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: sau tính: (c1,c2) = (a y0) = 7(7,9) = (8,3) 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 s i i =0 i =T ? Đây rõ 5.3 Hệ mật xêp ba lô merkle - Hellman HƯ mËt xÕp ba l« Merkle – Hellman nỉi tiếng lần đợc Merkle Hellman mô tả vào năm 1978 Mặc dù hệ mật có vàI biến thể đ bị phá vào đầu năm 1980 nhng cống hiến có giá trị tinh tế kháI niện kỹ thuật thiết kế có tính nần tảng Thuật ngữ ba lô (knapsack) thực tế thuật ngữ dùng sai Trên thực tế hệ thống xây dựng sở bàI toán tổng tập ( nêu hình 5.11) BàI toán tổng tập bàI toán định ( tức cần câu trả lời có hay không ) Nếu diễn đạt lạI toán cách nhẹ nhàng cho với số đặc trng , câu trả lời luôn có phảI tìm đợc véc tơ định x (vec to không nhất) Khi ta có bàI toán tìm kiếm Bài toán toán định tổng tập toán NP đầy đủ ĐIũu có nghĩa số thuật nghữ khác nhau, thuật toán thời gian đa thức tìm đợc định lựa chọn phù hợp ĐIều với toán tổng tập Song toán thuật giảI với thời gian đa thức nói chung có trừng hợp định giảI với thời gian đa thức ĐIều với bàI toán tổng tập nếu: Ta định nghĩa danh sách cỡ (s1,s2, , sn) d y siêu tăng với j n Nếu danh sách cỡ d y siêu tăng dạng tìm kiếm toán tổng tập giảI đợc với thời gian O(n) giảI pháp x ( tồn tạI ) phảI giảI pháp Thuật toán đợc mô tả hình 5.12 Giả sử s = (s1, ,sn) d y siêu tăng, xét hàm hàm đợc xác định nh sau: PhảI dùng es nh quy tắc m hoá? Vì s d y siêu tăng nên es đơn ánh thuật toán đợc mô tả hình 5.12 thuật toán giảI m tơng ứng Tuy nhiên hệ thèng nh− vËy sÏ hoµn toµn mÊt an toµn vµ giảI m tin m theo cách Hình 5.12 Thuật toán để giảI trờng hợp siêu tăng bàI toán tổng tËp for i = n down to if T > s i then T = T - si xi = else xi = if n ∑x s i =1 i i = T then X = (x , , x n ) giả i pháp cần tim else 10 Không có giả i pháp Bởi chiến thuật biến đổi danh sách cỡ theo cách cho không d y siêu tăng Bob áp dụng phép biến đổi ngợc để khôI phục lai danh sách siêu tăng cỡ Mặt khác, Oscar ( phép biến đổi đợc dùng ) phảI đối mặt với toán tổng quát ( toán khó toán tổng tập con) cố gắng giải m m Một kiểu biến đổi thích hợp phép biến đổi theo modun Modun p nguyên tố đợc chọn cho: Ta chän thõa sè a th¶o m n a p-1 Sau xác định: ti = a si mod p ≤ i ≤ n Danh sách cỡ t = (t1, , tn) khoá công khai đợc dùng để m hoá Các giá trị a, p đợc dùng để xác định phép biến đổi theo modun đợc giữ kín Mô tả đầy ®đ hƯ mËt xÕp ba l« Merkle – Hellman cho ë h×nh 5.13 nh− sau: ????????????????? VÝ dơ nhá sau minh hoạ trình m giải m hƯ mËt Merklre – Hellman VÝ dơ 5.10 Gi¶ sö s = (2, 5, 9, 21, 45, 103, 215, 450, 946) danh sách siêu tăng bí mật Giả sử p = 2003, a = 1289 Khi danh sách công khai cỡ là: t = (575, 436, 1586, 1030, 1921, 569, 721, 1183, 1570) B©y giê Alice muèn m b¶n râ x = (1, 0, 1, 1, 0, 0, 1, 1, 1) cô ta phảI tÝnh: y = 575 +1586 +1030 +721 + 1183 +1570 = 6665 Khi Bob nhận đợc m y, đầu tiªn tÝnh: z = a-1y mod p = 317ì6665 mod 2003 = 1643 Sau Bob giảI trờng hợp I = (s,z) bàI toán tổng tập thuật giảI mô tả hình 5.12 Cuối Bob thu đợc rõ (1, 0, 1, 1, 0, 0, 1, 1, 1) Vào đầu năm 80, hệ mật xếp ba lô Merkle Hellman đ bị Shamir phá Shamir đ sử dụng thuật toán quy hoạch nguyên Lenstra để phá hệ thống ĐIều cho phép m thám Oscar phá đợc cửa sập Bob ( cửa sập tơng đơng) Sau Oscar giải m tin gièng nh− Bob 5.3 Hª mËt mceliece HƯ mËt McEliece sử dụng nguyên lý tơng tự nh hệ mật Merkle Hellman: Phép giải m trờng hợp đặc biệt toán NP đầy đủ nhng đợc ngụi trang giống nh trờng hợp chung toán Trong hệ thống này, toán NP đợc áp dụng toán giải m cho m sửa sai ( nhị phân ) tuyến tính nói chung Tuy nhiên, nhiều lớp m đặc biệt tồn tạI thuật toán giải m với thời gian đa thức Một lớp m m Goppa, Chúng đợc dùng làm sở cho hệ mật McEliece Ta bắt đầu định nghĩa Định nghĩa 5.4 Giả sử k, n số nguyên dơng, k n M C[n, k] kh«ng gian k chiỊu cđa (Z2)n ( kh«ng gian vecto tất vecto nhị phân n chiều) Ma trận sinh m C[n,k] ma trận nhị phân kìn, hàng ma trận tạo nên sở C Giả sử x, y (Z2)n, x = (x1, , xn) y = (y1, , yn) Ta xác định khoảng cách Hamming: d(x,y) = | {i : ≤ i ≤ n , xi yi} | tức số tạo độ mà x y khác Khoảng cách m C đợc định nghĩa nh sau: d(C) = { d(x,y) : x,y ∈ C, x≠y} M [n, k] có khoảng cách d đợc kí hiệu m [n,k,d] M sửa sai đợc dùng để sửa sai ngẫu nhiên xảy truyền số liệu (nhị phân) qua kênh có nhiễu ĐIều đợc thực nh sau Giả sử G ma trận sinh m [n,k,d], x véc tơ nhị phân k chiều cần truyền Ngời gửi Alice m hoá x thành vec to n chiều y = xG truyền y qua kênh Giả sử Bob nhận đợc vecto n chiều r không giống y Bob sÏ gi¶i m r b»ng chiÕn thuËt gi¶i m “ng−êi láng giềng gần Theo chiến thuật này, Bob tìm m từ y có khoảng cách tới r nhỏ Sau giải m r thành y, xác định vecto k chiều x cho y= x’G Bob hy väng y’= y vµ bëi vËy x’= x( tức Bob tin sai số đờng truyền đ đợc sửa) Dễ dàng thấy rằng, sai số đờng truyền nhiều (d-1)/2 thực tế, chiến thuật sửa đợc tất sai Ta xét thực tế, thuật toán giải m đợc thực nh nào? Vì | C | = 2k nên Bob so sánh r với từ m , phảI kiểm tra 2k vecto – lµ mét sè lín theo hµm mũ so với k Nói cách khác, thuật toán không phảI thuật toán chạy thời gian đa thức Một biện pháp khác ( tạo sở cho nhiều thuật toán giải m thực tế) dựa kháI niệm syndrom Ma trận kiểm tra tính chẵn lẻ cđa m C[n,k,d] ( cã ma trËn sinh G) lµ ma trận nhị phân ( n-k)ìn chiều ( kí hiệu H) Các hàng H tạo sở cho phần bù trực giao C ( kí hiệu C -) đợc gọi m đối ngẫu với C Nói cách khác, hàng H vevto độc lập tuyến tính, GHT ma trận không cấp kì(nk) Cho véc tơ r (Z2)n , ta xác định syndrom r H rT Syndrom H rT véc tơ cột có ( n-k) thành phần Các kết sau rút từ đạI số tuyến tính Định lý 5.2 Giả sử C m [n,k] có ma trËn sinh G vµ ma trËn kiĨm tra tÝnh chẵn lẻ H Khi x (Z2)n từ m khi: Hơn x ∈ C, e ∈ (Z2)n vµ r = x + e th× H rT = H eT Ta coi e véc tơ sai xuất trình truyền từ m x Khi r biểu diễn vec tơ thu đợc Định lý phát biểu syndrom phụ thuộc vào sai số mà không phụ thuộc vào từ m cụ thể đợc truyền Điều gợi ý tới cách giải m đợc gọi giải m theo syndrom: trớc tiên tính s = H rT Nếu s véc tơ không ta giải m r thành r Nếu không ta lần lợt tạo tất vec tơ sai có trọng số Với véc tơ e này, ta tÝnh H eT NÕu cã mét vÐc t¬ e thảo m n H eT = s ta giảI m r thành r-e Ngợc lại, lạI tiếp tục tạo véc tơ sai có trọng số 2,3, , (d-1)/2 Nếu thời đIúm H eT = s ta giảI m r thành r-e thoát khỏi trình giải m Nếu phơng trình không thảo m n với véc tơ sai cã träng sè ≤ (d-1)/2 th× ta cã thĨ kết luận số sai số xuất đờng truyền lớn (d-1)/2 Theo thuật toán này, giải m cho véc tơ nhận đơc nhiều nhÊt lµ n     n +   + +  d − 1  bớc Phơng pháp làm việc m tuyến tính Đối với số loạI m đặc biệt, thủ tục giải m nhanh chóng Tuy nhiên, thực tế, cách giảI cho chiến thuật giảI m ngời láng giềng gần toán NP đầy đủ Nh vậy, cha có thuật toán giải thời gian đa thức đ biết cho toán giảI m theo ngời láng giềng gần tổng quát ( Khi số sai số không bị giới hạn (d-1)/2 Cũng giống nh toán tổng tập con, trờng hợp đặc biệt dễ, sau ngụi trang cho giống với toán chung khó Để đa lý thuyết dàI dòng, vậy, ta tóm lợc kết Một trờng hợp riêng dễ đợc McEliece đề nghị dùng m lớp m Goppa Trên thực tế , m có thuật toán giải m hữu hiệu Hơn m dễ tạo có số lợng lớn m Goppa tơng đơng có tham số Các tham số m Goppa có dạng n = 2m, d = 2t+1 k = n-mt Để áp dụng thực tế cho hệ mật khoá công khai, McEliece đề nghị chọn m = 10 t = 50 ĐIều ứng với m Goppa [1024,524,101] Mỗi rõ véc tơ nhị phân cấp 524 m véc tơ nhị phân cấp 1024 Khóa công khai ma trận nhị phân cấp 524ì1024 Hình 5.14 mô tả hệ mật McEliece Hình 5.14 Hệ mật McEliece Cho G lµ mét ma trËn sinh cđa mét m Goppa C[n,k,d], ®ã n = , d = 2t + vµ k = n - mt Cho s ma trận khả nghịch cấp kìk Z2 Giả sử P ma trận hoán vị cấp nìn, ta đặt G = S G P Cho P = (Z2)k, C = (Z2)n vµ kÝ hiƯu: m K = {( G, S, P, G’)} Trong ®ã G, S, P đợc xây dựng nh mô tả đợc giữ kín, G đợc công khai Với K = ( G, S, P, G), ta định nghĩa: eK(x,e) = xG + e e (Z2)n véc tơ ngẫu nhiên có trọng số t Bob gi¶i m b¶n m y ∈ (Z2)n theo c¸c b−íc nh− sau: TÝnh y1 = yP-1 Giải m (decode) y1, Bob tìm đợc y1 = x1+e1, x1 ∈ C TÝnh x0 ∈ (Z2)k cho x0G = x1 TÝnh x = x0S-1 §Ĩ minh hoạ cho thủ tục m giảI m ( code and decode ), xÐt vÝ dô sau: VÝ dô 5.11 Ma trËn 1 0 1    0 0 1  G= 0 0 1   0 0 1 1   ma trận sinh m Hamming [7,4,3] Giả sư Bob chän ma trËn S vµ ma trËn P nh− sau: 1  1 S =  1  vµ 0  0 0  P = 1 0  0  0 0 0 0 0 0 0 1  0 1 1 1  0  1 0 0 0 0 0 0 0 0  0 1  0  0  0 Khi ®ã ma trËn sinh công khai là: G' =  0  1 0 0  0 0 0 1 1  1 1 Bây giả sử Alice m hoá rõ x = ( 1, 1, 0, 1) b»ng c¸ch dïng véc tơ sai ngẫu nhiên trọng số có d¹ng: e = (0, 0, 0, 0, 1, 0, 0) Bản m tính đợc là: y1 = x G + e 1 1 0    1 0 0  = (1, 1, 0, 1)  + (0, 0, 0, 0, 1, 0, ) 0 1 1   0 1 1    = (0, 1, 1, 0, 0, 1, ) + ( 0, 0, 0, 0, 1, 0, ) = (0, , 1, 0, 1, 1, 0) Khi Bob nhận đợc m y, trớc hết tÝnh: y1 = y P-1 0  1 0  = (0, 1, 1, 0, 1, 1, 0) 0  0  0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0  0 0  0 1 0  0 = (1, 0, 0, 0, 1, 1, 1) TiÕp theo Bob giảI m y1 để nhận đợc x1 = (1, 0, 0, 0, 1, 1, 0) ( Cần để ý e1 e phép nhân với P-1) Sau ®ã lËp x0 = (1, 0, 0, 0) ( bốn thành phần x1) Cuối cïng Bob tÝnh: x = S -1 x0 1  1 = 1  1 0  = (1, 1, 0, 1) 1 (1, 0, 0, 0) Đây rõ mà Alice đ m 5.4 Các giảI tàI liệu dẫn Hệ mật Elgamal đ đợc mô tả [EL 85] Thuật toán PohligHellman đợc công bố [PH 78], vấn đề liên quan đến bít riêng bàI toán logarithm rời rạc đợc nêu tàI liêụ Perelta [PE 86] Thông tin thêm bàI toán logarithm rời rạc tham khảo bàI báo La Macchima, Odlyzko [LO 91] vµ cđa Mc Curley [Mc 90] Sách tham khảo trờng hữu hạn Lidl Niederreiter [LN 83] Về chủ đề này, sách McEliece [Mc 87]cũng giáo trình tốt, chuyên khảo nghiên cứu lĩnh vực áp dụng trờng hữu hạn Menezes tác giả khác [MBGMVY 93] BàI báo bàI toán logarithm rời rạc GF(2n) lµ cđa Gordon vµ McCurley [GM 93] ý ®å sư dơng c¸c ®−êng cong elliptic cho c¸c hƯ mật khoá công khai Kobliz [Ko 87A] Miller [Mi 86] đa Quyển sách Menezes [ME 93] chuyên khảo hệ mật đờng cong elliptic Cũng xem bàI báo Menezes Vanstone [MV 93] chơng sách Kobliz [KO 87] Các đề cập sơ cấp đờng cong elliptic nên xem Sileverman Tate [ST 92] Phơng pháp suy biến logarithm rời rạc Menezes Okamoto Vanstone từ đờng cong elliptic sang trờng hữu hạn đợc cho [MO 94] ( cịng cã thĨ xem [ME 93]) HƯ mËt Merkle-Hellman đợc trình bày [MH 78] Hệ mật đ bị phá Shamir dạng có lặp hệ thống bị phá Brickell [Br85] Một hệ thống loạI xếp ba lô khác Chor Riverst [CR 88] cha bị phá Chi tiết xem bàI báo tổng quan BrickellOlyzko [BO 92] Sách tham khảo quan trọng lý thuyết code lµ cn [MS 77] cđa Mac William vµ Sloane Có nhiều giáo trình tốt lý thuyết code, chẳng hạn Hoffman tác giả khác [HLLPRW 91], cđa Vanstone, Van Oorchot [VV 89] HƯ mËt McEliece lÇn đợc mô tả [Mc 78] Một bàI báo gần thảo luận độ mật hệ thống đợc trình bày Chabaud [CH 95] BàI tập 5.1 áp dụng thuật toán Shanks để tìm logarithm rời rạc Zp với p số nguyên tố, phần tử nguyên thuỷ H y dùng chơng trình bạn để tìm log106 12375 Z24691 log6 248388 Z458009 5.2 áp dụng thuật toán Pohlig-Hellman để tìm logarithm rời rạc Zp, p số nguyên tố, phần tử nguyên thuỷ H y dùng chơng trình bạn tìm log5 8563 Z28703 log10 12611 Z31153 5.3 H y tìm log5 896 Z1163 cách dùng thuật toán đợc nêu hình 5.6 Giả sử r»ng, L2(β)=1 víi β = 25, 219 vµ 841 vµ L2(β) = víi β = 163, 532,625 vµ 656 5.4 H y giảI m m Elgamal cho bảng 5.3 tham số hệ thống p = 31847, α = 5, a = 7899 vµ β = 18074 Một phần tử Zn biểu thị kí tự nh bàI tập 4.6 Bảng 5.3 Bản m Elgamal (3781,14409) (5400,31486) (31590,26470) (16160,3129) (30555,24611) (1616,14170) (14130,22010) (26004,25056) (29538,5408) (1777,8737) (23258,3468) (8836,25898) (10422,5552) (25115,10840) (23418,22058) (19886,22344) (21563,7891) (24271,8480) (30499,14423) (24875,17641) (3576,4630) (3149,7400) (21541,19004) (17561,11884) (26521,5803) (28327,19237) (31552,3930) (19936,721) (3781,14409) (301,17252) (20501,2922) (4294,2307) (25910,19663) (5400,31486) (3149,7400) (26117,14251) (26052,20545) (8794,17358) (1777,8737) (14130,22010) (24139,9580) (21600,25505) (28250,21321) (26592,25457) (5839,24179) (1777,8737) (26664,27572) (8951,29435) (5865,29526) (2209,6107) (14884,14280) (15313,28649) (27214,15442) (27765,29284) (15898,30844) (24689,7776) (13659,5015) (2320,29174) (19557,10145) (9526,3019) (9396,3058) (7129,18195) (21958,5713) (1777,8737) (3780,16360) (16081,16414) (173,17075) (27119,19921) (28327,19237) (9660,7939) (12846,6589) (18825,19671) (27011,29164) (2059,3977) (10536,6941) (10422,5552) (4328,8635) (5809,30274) (29820,7710) (19048,12914) (28856,15720) (5740,31233) (3036,20132) (18899,27609) (12962,15189) (27149,20535) (25302,10248) (346,31194) (25038,12483) (11685,133) (28580,20845) (2016,18131) (23312,16906) (15313,28649) (10267,20623) (9284,27858) (31306,11929) (22763,8992) (16258,30341) (1777,8737 ) (19371,21005) (28250,21321) 5.5 H y xác định đa thức đa thức sau bất khả quy Z2[x]: x5 +x4 +1 x5 +x3 +1 x5 + x4 + x2 +1 5.6 Tr−êng GF(25) cã thể đợc xây dựng theo Z2[x]/(x5 +x2 +1) H y thực phép tính sau trờng này: a) TÝnh (x4 + x2)×(x3 +x +1) b) Sư dơng thuật toán Euclide mở rộng để tính (x3 +x2)-1 c) Sử dụng thuật toán bình phơng nhân để tính x25 5.7 Đây ví dụ hệ mật Elgamal áp dụng GF(33) Đa thức x3+2x2+1 đa thức bất khả quy Z3[x] Z3[x]/(x3+2x2+1) GF(33) Ta gắn 26 chữ cáI bảng chữ cáI với 26 phần tử khác trờng nh m hoá văn thông thờng theo cách truyền thống Ta dùng thứ tự theo từ đIún đa thức khác để thiết lập tơng ứng A ↔1 D ↔ x+1 G ↔ 2x+1 J ↔ x2+1 M ↔ x2+x+1 P ↔ x2+2x+1 S ↔ 2x2+1 V ↔ 2x2+2x+1 Y ↔ 2xx+2x+1 B ↔2 E ↔ x+2 H ↔ 2x+2 K ↔ x2+2 N ↔ x2+x+2 Q ↔ x2+2x+2 T ↔ 2x2+2 W ↔ 2x2+2x+2 Z ↔ 2xx+2x+2 C↔x F ↔ 2x I ↔ x2 L ↔ x2+x O ↔ x2+2x R ↔ 2x2 U ↔ 2x2+x X ↔ 2x2+2x Gi¶ sư Bob dïng α = x, a = 11 hƯ mËt Elgamal Khi ®ã β = x+2 H y cách Bob giảI m b¶n m sau sao: (K,H) (P,X) (N,K) (H,R) (T,F) (V,Y) (E,H) (F,A) (T,W) (J,D) (U,T) 5.8 Gi¶ sư E đờng cong elliptic y2 = x3 + x + 28 xác định Z71 a) H y xác định số đIểm E b) H y chứng tỏ E không phảI nhóm cyclic c) Cấp lớn phần tử E bao nhiêu? H y tìm phần tử có cấp 5.9 Cho E đờng cong elliptic y2 = x3 + x +13 xác định Z31 Đ biết #E = 34 (9,10) phần tử cấp 34 E Hệ mật MenezesVanstone đợc xác định E có không gian rõ Z34*ì Z34* Giả sử số mũ bí mật Bob α = 25 a) H y tÝnh β = aα b) H y gi¶I m b¶n m sau: ((4,9),28,7), ((19,28),9,13), ((5,22),20,17), ((25,16),12,27) c) Giả sử rõ biểu thị hai kí tự bảng chữ H y biến đổi rõ thành từ tiếng Anh (ở sử dụng phép tơng ứng sau: A 1, ., Z 26 không đợc phép có cặp đợc rõ) 5.10 Giả sử hệ mật Merkle-Hellman có danh sách công khai cỡ véc tơ xếp ba lô sau: t = (1394, 1256, 1508, 1987, 439, 650, 724, 339, 2303, 810) Giả sử thám m Oscar đ phát đợc p = 2503 a) Bằng phép thử sai số h y xác định giá trị cho danh sách a-1t mod p hoán vị danh sách siêu tăng b) H y rõ cách giảI m m 5746 5.11 Có thể chứng tỏ rằng, ma trận H đợc nêu dới ma trận kiểm tra tính chẵn lẻ m (code) BCH [15, 7, 5] 1  0 0  0 H= 1 0  0 0  0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 1 0 1 0 1 0 1 1 1 1 1 0 0 1 1  1 0 1 0  1 1 0 1 0 1  1 1 1  H y gi¶I m (decode) Mỗi véc tơ r nhận đợc sau phơng pháp giảI m theo syndrom: a) r = (1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) b) r = (1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0) c) r = (1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0) ... (26 052 ,2 054 5) (8794,17 358 ) (1777,8737) (14130,22010) (24139, 958 0) (21600, 255 05) (28 250 ,21321) (2 659 2, 254 57) (58 39,24179) (1777,8737) (26664,2 757 2) (8 951 ,294 35) (58 65, 2 952 6) (2209,6107) (14884,14280) ( 153 13,28649)... (14130,22010) (26004, 250 56) (2 953 8 ,54 08) (1777,8737) (23 258 ,3468) (8836, 258 98) (10422 ,55 52) ( 251 15, 10840) (23418,22 058 ) (19886,22344) (2 156 3,7891) (24271,8480) (30499,14423) (248 75, 17641) ( 357 6,4630) (3149,7400)... (27214, 154 42) (277 65, 29284) ( 158 98,30844) (24689,7776) (13 659 ,50 15) (2320,29174) (1 955 7,101 45) ( 952 6,3019) (9396,3 058 ) (7129,181 95) (21 958 ,57 13) (1777,8737) (3780,16360) (16081,16414) (173,170 75)

Ngày đăng: 11/05/2021, 04:38

TỪ KHÓA LIÊN QUAN