hệ mật mã mcelice
TRANSCRIPT
1
HỆ MẬT MÃ MCELIECE
I. Nguy ê n tắc chung của m ã ho á với kho á c ô ng khai Trong hệ thống có n đối tượng cùng trao đổi thông tin mật. Từng đối tượng
chọn cho mình một khoá lập mã k và công thức mã hoá ek được công khai. Như vậy có n khoá lập mã công khai k1, k2, k3, …, kn. Khi Bob muốn gửi thông tin cho Alice thì dữ liệu được chuyển thành từng khối với đội dài nào đó, mỗi khối P trong văn bản được mã hoá bằng khoá của Bob, thông tin gửi đi có dạng:
C = ek(P).Để giải mã đối tượng Alice thực hiện: dk(C) = dkek(P) = P.Do ek và dk là khoá lập mã và giải mã của đối tượng do vậy các đối tượng
khác trong hệ thống không thể tìm ra khoá giải mã dk trong thời gian chấp nhận được mặc dù biết ek.
II. Hệ mật mã McEliece 1. Định nghĩa
Giả sử k, n là các số nguyên dương, k ≤ n. Mã C[n,k] là một không gian k
chiều của (Z2)n (không gian vector của tất cả các vector nhị phân n chiều).Ma trận sinh của mã C[n,k] là ma trận nhị phân k x n, các hàng của ma trận
này tạo nên cơ sở của C.
Giả sử x,y ∈(Z2)n, trong đó x = (x1, x2, …, xn) và y = (y1, y2, …, yn). Ta xác định khoảng cách Hamming:
d(x,y) = |{i: 1 ≤ i≤ n, xi ≠ yi}
tức là số các toạ độ mà ở đó x và y khác nhau.Khoảng cách mã C được định nghĩa như sau:
d(C) = min{d(x,y): x,y Є C, x ≠ y}
Mã [n, k] có khoảng cách d được ký hiệu là mã [n, k, d].Mã sửa sai được dùng để sửa các sai ngẫu nhiên xảy ra khi truyền số liệu (nhị
phân) qua kênh có nhiễu. Điều đó được thực hiện như sau: Giả sử G là một ma trận sinh đối với mã [n, k, d], x là vector nhị phần, k chiều cần truyền đi. Người gửi sẽ mã hoá x thành một vector n chiều y = xG rồi truyền y qua kênh.
Giả sử người nhận nhận được vector n chiều r không giống y, người nhận sẽ giải mã r bằng chiến thuật giải mã “người láng giềng gần nhất”. Theo chiến thuật này, người nhận sẽ tìm thấy từ y’ có khoảng cách tới r nhỏ nhất. Sau đó sẽ giải mã
2
r thành y’, rồi xác định vector k chiều x’ sao cho y’ = x’G. Người nhận hy vọng y’ = y và bởi vậy x’ = x (tức là người nhận tin rằng các sai số trên đường truyền đã được sửa).
2. Thuật toán Hệ mật mã McEliece
Hệ mật mã McEliece được đề xuất năm 1978, tác giả là Robert McEliece. Ý
tưởng của bài toán này giống với ý tưởng của hệ mật mã Merkle-Hellman: Phép giải
mã là trường hợp đặc biệt của bài toán NP đầy đủ.
Gọi C[n,k] là mã tuyến tính, t là số bít bị sai khi truyền bản mã qua kênh nhiễu, các
tham số này có liên quan với nhau bằng các hệ thức:n=2m,k=n−mt . Để áp dụng
trong thực tế, hệ mật mã công khai McEliece đề nghị chọn 1024, t = 50.
Hệ mật mã McEliece hình thành như sau:
Quá trình hình thành khóa:
1. Chọn mã tuyến tính C[n,k] có thể sửa được t lỗi. Mã này phải có thuật toán giải
mã hiệu quả.
2. Tạo ra ma trận sinh G cấp k×n cho mã C.
3. Chọn S là ma trận khả nghịch cấp k×k .
4. Chọn tiếp ma trận hoán vị P cấp n×n .
5. Tính ma trận G’ cấp k×n : G’=SGP.
6. Công khai khóa công cộng (G’, t) và giữ kín khóa mật (G,P,S).
Quá trình mã hóa:
Sử dụng khóa công cộng (G’,t) và tiến hành mã hóa theo các bước sau:
1. Mã hóa bản tin x ở dạng nhị phân chiều dài k.
2. Tính véc tơ c’=xG’.
3. Tạo ra một véc tơ ngẫu nhiên e, có trọng số t và chiều dài n.
4. Hình thành bản mã: y=c’+e.
Quá trình giải mã:
1. Tính ma trận khả nghịch của P là P-1.
2. Tính.
3. Sử dụng thuật toán giải mã để giải mã y’ thành y” suy ra giá trị xS.
4. Tính toán bản rõ: x=xS. S-1
Chúng ta tìm hiểu rõ hơn về phần giải mã, chúng ta có:
3
y '= y . P−1=(c’+e)P-1=(xSGP+e)P-1=xSG+e’
ở đây e’ là véc tơ có trọng số là t. dùng thuật toán giải mã của mình để véc cạn các
gía trị có thể của e’. Và từ đó tìm xSG và từ đây chúng ta tính x dễ dàng bằng cách
nhân với ma trận nghịch đảo.
Ví dụ: Chúng ta xem mã Hamming (7,4)
( Mã Hamming là một mã sửa lỗi tuyến tính (linear error-correcting code), được
đặt tên theo tên của người phát minh ra nó là Richard Hamming. Mã Hamming có thể
phát hiện một bit hoặc hai bit bị lỗi (single and double-bit errors). Mã Hamming còn
có thể sửa các lỗi do một bit bị sai gây ra ).
Hình thành khóa:
Ma trận sinh của mã này là G, được cho như sau:
Giả sử chọn ma trận S và P như sau:
4
Tính ma trận G’:
Mã hóa:
Mã hóa thông điệp x=(1,1,0,1) bằng cách dùng véc tơ sai ngẫu nhiên có trọng số là
1 dạng: e=(0,0,0,0,1,0,0), và tính bản mã:
Giải mã:
Tính P-1 và tính y’=yP-1
Tính ra y’=(1000111).
Dùng thuật toán giải mã để tìm lỗi và ta thấy không có lỗi nên y’’=(1000111). Từ
đây suy ra xS=(1000). Để giải mã cần tính S-1,
Tính được bản rõ như sau: xS.S-1=(1,1,0,1).
5
Chú ý:
Đối với mã Hamming (7,4), chúng ta sử dụng hai mã trận có liên quan gần gũi, và đặt tên cho chúng là:
và
Các cột vectơ trong là nên tảng hạch của và phần trên của (4 hàng đầu) là một ma trận đơn vị (identity matrix). Ma trận đơn vị cho phép vectơ dữ liệu đi qua trong khi làm tính nhân, và như vậy, các bit dữ liệu sẽ nằm ở 4 vị trí trên cùng (sau khi nhân). Sau khi phép nhân hoàn thành, khác với cách giải thích ở phần trước (các bit chẵn lẻ nằm ở vị trí 2k), trật tự của các bit trong từ mã (codewords) ở đây khác với cách bố trí đã nói (các bit dữ liệu nằm ở trên, các bit kiểm chẵn lẻ nằm ở dưới).
Chúng ta dùng một nhóm 4 bit dữ liệu (số 4 trong cái tên của mã là vì vậy) chủ chốt, và cộng thêm vào đó 3 bit dữ liệu thừa (vì 4+3=7 nên mới có số 7 trong cái tên của mã). Để truyền gửi dữ liệu, chúng ta hãy nhóm các bit dữ liệu mà mình muốn gửi thành một vectơ. Dữ liệu là "0111" thì vectơ của nó là:
P= (0111)
Giả sử, chúng ta muốn truyền gửi dữ liệu trên. Chúng ta tìm tích của và p, với các giá trị môđulô 2:
6
. P=(1 0 0 00 1 0 00 0 1 00 0 0 10 1 1 11 0 1 11 1 0 1
). (0111)=(0111100)= r
Nhân với r để kiểm tra xem có lỗi xảy ra hay không. Kết quả chia đồng dư cho 2
.r =(0 0 0 1 1 1 10 1 1 0 0 1 11 0 1 0 1 0 1).r =(000)
Vì chúng ta được một vectơ toàn số không cho nên có thể kết luận là không có lỗi xảy ra. Sở dĩ một vectơ toàn số không có nghĩa là không có lỗi, bởi vì khi được nhân với vectơ dữ liệu, một sự thay đổi trong nền tảng xảy ra đối với không gian bên trong vectơ (vector subspace), tức là hạch của . Nếu không có vấn đề gì xảy ra trong khi truyền thông, r sẽ nằm nguyên trong hạch của và phép nhân sẽ cho kết quả một vectơ toàn số không.
3. Thuật toán cải biênSau đây nêu ra thuật toán xây dựng hệ mật m ã McEliece có cải biên đôi chút.
Sửa đổi này sẽ làm tăng tốc độ truyền, mặc dù thuật toán giải mã có phức tạp hơn
một chút. Thuật toán này sẽ được mô tả như sau:
Hình thành khóa:
Xác định K = {G, S, P, G’}
G, S, P, G’ được xác định như ở trên.
G’ được đem công khai; G, S, P được giữ kín.
Mã hóa:
Đối với K = (G, S, P, G’), ta xác định:
Bản mã: y = xG’ + e’Bản rõ x ∈GF(2k); e’ ∈GF(2n) là một day tin có trọng số t, dãy tin này có chiều dài ngẫu nhiên, bit “1” l à b i t thứ t của bản tin e’, các bit tiếp theo của dãy này đều bằng 0.
Nén tín hiệu cần mã hóa bằng một chương trình nén càng đặc trưng càng tốt.
7
Giải mã:
Giải nén tin hiệu thu được để thu được bản mã và tiến hành giải mã
Bản mã nhận được y ∈GF(2n) được giải mã theo các bước sau:
1) Tính y’ = y.p-1;
2) Giải mã y’, ta thu được y’ = x1 + e1. Trong đó: x1, e1, y’∈GF(2n);
3) Tính x0 ∈GF(2k) sao cho x0.G = x1;
4) x = x0. S-1.
=> Cải biên lược đồ mã hóa của hệ mật mã McEliece bằng cách sử dụng các kỹ thuật nén dữ liệu trước khi mã hóa và chọn vector sai e’ được lấy từ nội dung bản rõ.
4. Xây dựng hệ mật mã McEliece với mã Xyclic cục bộHệ mật mã McEliece trên mã Xyclic cục bộ được sử dụng ma trận sinh G dựa trên phân hoạch vành theo nhóm nhân Xyclic đơn vị với k = 8
Sơ đồ mã hóa:
8
Sơ đồ giải mã:
Ví dụ: Mã hóa
Để tăng khả năng tốc độ truyền thông tin ta sử dụng mã XCB(64, 7, 32) kết hợp mã Elias(8,7,2): (512,49,64)= ( 64, 7, 32)(8,7,2)Thông tin đầu vào được chia như sau:
7 bit 7 bit 7 bit 7 bit 7 bit 7 bit 7 bit Có chứa 31 bit 1 và độ dài # 512 bit
Khi mã hóa ta sẽ mã hóa mỗi lần 7x7=49 bit chứa thông tin thông qua khóa công khai G’(7,64) = SGP
Trong đó: S là ma trận khả nghịch 7x7
G là ma trận sinh 7x64P là ma trận hoán vị 64x64
9
Khi mã hóa ta được ma trận chứa thông tin M(7x7) với ma trận G’(7x64)
Giải mãViệc giải mã được thực hiện như sau:
- Từ 512 bit dữ liệu thu được khôi phục thành ma trận M 1(8x64) - Nhân ma trận M 1với ma trận nghịch đảo của P thu được ma trận M 2.
M 2= M 1*P-1
- Sử dụng các tổng kiểm tra giải mã cho M 2thu được ma trận M 3(7x7) - Nhân mã trận M 3với ma trận nghịch đảo của S thu được ma trận M.
M = M 3*S-1
với ma trận M(7x7) là ma trận chứa 49 bit thông tin mã hóa. - Do sử dụng vector sai chứa thông tin lên phải thực hiện thêm một số bước sau: - Mã hóa lại ma trận M(7x7) thu được:
M(7x7)*G’(7x64) thu được ma trận 8x64 chứa dữ liệu mã hóa chưa có vector sai (hàng thứ 8 bằng tổng các hàng phía trên). - Sắp xếp thành chuỗi 512 bit, sau đó thực hiện cộng module 2 với 512 bit thu được ta sẽ thu được ta sẽ thu được vector sai.
III. Đá nh gi á hệ mật m ã McEliece
1. Quản lý khóa và vấn đề truyền khóa
Đối với hệ mật mã McEliece nguyên thủy theo đề xuất của McEliece khóa công khai là ma trận G’[1024 x 512] với kích thước của khóa khoảng 64KB là khá lớn, nó ảnh hưởng tới tốc độ truyền bản tin đã được mà hoá.
Với những cải biên được đề xuất trong nội dung của luận văn này thì khoá công khai của hệ mật mã McEliece chỉ là ma trận G’[64 x 7] với kích thước khoảng 56 Byte là khá nhỏ, hơn nữa nêu áp dụng thêm thuật toán nén tin hiệu sau khi mã hoá và giải nén tín hiệu trước khi giải mã bằng một thuật toán nén/ giải nén cá biệt (tin hiệu mã hoá sẽ được nén) thì kích thước khoá công khai của hệ một còn được giảm đi đáng kể (tỷ lệ giảm này phụ thuộc vào tỉ lệ nén tín hiệu của thuật toán nén sử dụng)
2. Thám mã
Lược đồ McEliece bị hai điểm yếu sau đây:- Không có khả năng bảo vệ các bản tin được mật mã hoá nhiều hơn một
lần.(*)
10
- Không có khả năng bảo vệ các bản tin có quan hệ tuyến tính đã biết với một bản tin khác.(**)
Mặc dù những điểm yếu không có khả năng phá vỡ lược đồ McEliece ngay lập tức (ví dụ: không thể lấy được khoá riêng), nhưng có thể thám mã sẽ thực hiện một hành động mà làm cho các điểm yếu này sẽ xuất hiện. Ví dụ: một thám mã có thể đưa vào trong bản mật mã một số lỗi, bản này sẽ được gửi từ người gửi đến người nhận. Như vậy người nhận sẽ không thể giải mã một cách chính xác bản mật mã này. Nếu người nhận nghĩ rằng điều này sinh ra bởi lỗi trong quá trình mã hoá, anh ta sẽ yêu cầu người gửi gửi lại cho anh ta một bản khác (mã hoá bản tin và gửi lại). Do đó, nhược điểm (*) sẽ xuất hiện.
Tuy nhiên, để phá được hệ mật McEliece thì người thám mã phải thực hiện thám mã theo nguyên lý vét cạn theo một trong ba phương án sau:
+ Vét cạn theo các dấu thông tin.+ Vét cạn theo số khóa.+ Vét cạn theo số các vector sai có thể có.
Ví dụ: với dữ liệu có 49 bit thì có 249=5,63.1014 cách thử.
3. Các cách tấn công của Berson với lược đồ McEliece
Berson đã đưa ra hai cách tấn công đối với lược đồ McEliece, được gọi là cách tấn công message-resend và related- message (Tấn công với thông báo được gửi lại và tấn công với thông báo có quan hệ).
3.1. Thông báo được gửi lại (Message-resend)Chúng ta giả sử rằng một bản tin m được mã hoá lần thứ hai bởi một vài sự cố
nào đó hoặc là một hành động đặc biệt của một người giải mã. Khi đó, người giải mã biết c1 = mG' + e1 và c2 = mG' + e2, ở đó e1 ≠ e2
(được gọi là điều kiện gửi lại bản tin). Vì vậy, c1 + c2 = e1 + e2Lưu ý rằng trọng số của e1 + e2 là chẵn và lớn nhất là 100 bởi vì trọng số
của mỗi vector sai số được thêm vào trong lược đồ McEliece là 50. Theo như phân tích của Berson thì trọng số Hamming mong muốn của e1 + e2 là khoảng 95,1 nếu một điều kiện gửi lại bản tin xảy ra. Nếu các bản tin cơ bản khác nhau thì trọng số Hamming mong muốn của c1 + c2 sẽ là 512. Vì vậy, rất dễ dàng để phát hiện sự xuất hiện của một diều kiện gửi lại bản tin và trọng số của e1 + e2 bằng cách theo dõi trọng số Hamming của c1 + c2. Nếu trọng số của e1 + e2 là 94, chúng ta cần dự đoán 524 vị trí của c1(c2) mà không bị ảnh hưởng bởi e1(e2) từ 930 vị trí có thể với 3 vị trí sai. Xác suất chúng ta có thể có được một dự đoán đúng là:
11
( 927524 )
( 930524 )
=0.0828
Điều đó có nghĩ là người giải mã chỉ cần khoảng 12 dự đoán để thành công. Tương tự như vậy, nếu trọng số của e1 + e2 là 96 thì chỉ cần khoảng 5 dự đoán cho người giải mã để họ thành công.
Lưu ý rằng, nguyên nhân chính tại sao các tấn công của Berson thành công là bởi bằng cách theo dõi giá trị của c1 + c2, có thể thu được nhiều thông tin hơn về các vị trí trong đó các lỗi sẽ có thể xảy ra.
3.2. Thông báo có quan hệ (Related-Message )
Chúng ta giả sử rằng hai bản tin m1 và m2 được mã hoá và người giải mã biết được một quan hệ tuyến tính, ví dụ như giá trị của m1 + m2, giữa hai bản tin. Khi đó, người giải mã biết được rằng c1 = m1G' + e1 và c2 = m2G' + e2, ở đó m1 ≠ m2 và e1 ≠ e2.
Do đó, c1 + c2 = m1G' + e1 + m2G' + e2 = (m1 + m2)G' + (e1+ e2).Bởi vì giá trị của m1 + m2 đã biết trước đó nên có thể tính được (m1 + m2)G'. Vì thế c1 + c2 + (m1 + m2)G' = e1 + e2.
Tương tự như trường hợp tấn công message-resend, số lượng dự đoán cần thực hiện để thành công nhỏ. Về căn bản, cách thức tấn công message-resend là một trường hợp đặc biệt của cách thức tấn công related-message, ở đó, mối quan hệ tuyến tính giữa các bản tin là m1 + m2 = 0. Để khắc phục các điểm yếu này, Berson đề xuất phân bố tính ngẫu nhiên thông qua hình thức plaintext theo một số cách phức tạp; ví dụ OAEP (Optimal Asymmetric Encryption Padding là một chương trình đệm) của Bellar và Rogaway.
Do đó, quan hệ tuyến tính giữa các bản tin không thể bị nhận biết thông qua một vài thao tác của người giải mã. Tuy nhiên, mọi lược đồ như vậy đều phải chịu một sự tổn thất trong tốc độ thông tin.
4. Độ bảo mật
Lược đồ McEliece bị hai điểm yếu sau đây:- Không có khả năng bảo vệ các bản tin được mật mã hoá nhiều hơn một lần.- Không có khả năng bảo vệ các bản tin có quan hệ tuyến tính đã biết với một
bản tin khác.
Mức độ an toàn và bảo mật vẫn cao. Hiện nay, hệ mật mã McEliece đang còn sử dụng trong một số lĩnh vực.Một số tiêu chí để chọn bộ mã xây dựng hệ mật mã McEliece là: Có thuật toán hiệu quả để sửa được t lỗi.
12
Cấu trúc mã cho phép sửa được t lỗi khi kết hợp với ma trận S và P thì không tìm ra được cấu trúc của mã đó.
Lưu ý: Giải thuật thời gian đa thức tất định và không tất định P: Tập hợp tất cả những bài toán có thể giải được bằng những giải thuật ‘tất định’ trong thời gian đa thức. “Tất định” (Deterministic) : khi giải thuật đang làm gì, cũng chỉ có một việc duy nhất có thể được thực hiện kế tiếp.NP: tập hợp tất cả những bài toán mà có thể được giải bằng giải thuật ‘không tất định’ trong thời gian đa thức.Không tất định: khi một giải thuật gặp một sự lựa chọn giữa nhiều khả năng, nó có quyền năng “tiên đóan” để biết chọn một khả năng thích hợp.Lớp P là một tập con của lớp NP.Những bài toán NP-đầy đủ là một lớp con đặc biệt của lớp bài toán NP.Công cụ chính để chứng minh một bài toán thuộc loại NP-đầy đủ là ý tưởng về ‘tính khả thu giảm đa thức’ (polynomial reducibility).Thu giảm về: Ta bảo bài toán L1 thu giảm về (reduces to) bài toán L2, ký hiệu là L1α L2, nếu bất kỳ giải thuật nào giải được L2 thì cũng có thể giải được L1.Để chứng minh một bài toán thuộc loại NP là NP-đầy đủ, ta chỉ cần chứng tỏ rằng một bài toán NP-đầy đủ đã biết nào đó thì khả thu giảm đa thức về bài toán mới ấy.
GF (Galois field - hay gọi finite field), là ‘Trường Hữu Hạn’- trường số có hữu hạn các phần tử, tức là một tập hữu hạn các phần tử mà ở đó có thể cộng trừ, nhân, chia mà không vượt ra ngoài phạm vi tập hữu hạn các phần tử đó. Trường Galois thuộc lọai đó và đóng vai trò quan trọng trong lý thuyết mã.
IV . Kết luận Cần chú ý rằng các mã Xyclic truyền thống không sử dụng được trong sơ đồ này
do số lượng các đa thức sinh khá hạn chế. Các mã XCB khắc phục được nhược điểm này, tuy nhiên lại có hạn chế về mặt tốc độ. Để khắc phục nhược điểm này việc sử dụng một phần bản tin làm vector sai là một giải pháp phù hợp.
McEliece hệ mật là an toàn, nhưng nó hiện ít được sử dụng do kích thước của khóa công khai và tỷ lệ xấp xỉ 50% dữ liệu. Một số phương pháp đã được tìm thấy mà tăng tốc độ dữ liệu lên đến 80% và nén các kích thước của khóa riêng
Khi công nghệ tiến bộ, những hạn chế cho hệ thống sẽ trở nên ít trở ngại để mã với các tham số thậm chí còn lớn hơn Goppa có thể được sử dụng.
Ngoài ra, kể từ khi số mã Goppa tăng theo cấp số nhân với chiều dài của mã và mức độ của các đa thức tạo ra, các yếu tố công việc cho các cuộc tấn công chống lại cấu trúc hệ thống nên thực sự gia tăng. Hệ thống McEliece chưa thể thay thế cho các hệ thống mã hóa khóa công khai hiện nay, mà chỉ dựa trên một vài vấn đề quan trọng trong lý thuyết số
13
Tài li u tham kh o:ệ ảhttps://en.wikipedia.org/wiki/McEliece_cryptosystemhttp://www-math.ucdenver.edu/~wcherowi/courses/m5410/ctcmcel.htmlhttps://vi.wikipedia.org/wiki/M%C3%A3_Hamminghttp://luanan.nlv.gov.vn/luanan?a=d&d=TTbGLiarZxxm2007.1.21&e=-------vi-20--1--img-txIN#