Các ví dụ về thuật toán mã hóa đối xứng

Một phần của tài liệu (LUẬN văn THẠC sĩ) lý thuyết vành trong máy tính (Trang 31 - 34)

Cho p là số nguyên tố lớn [7], và 2159 < p < 2160. Alice và Bob có không gian khóaK, không gian văn bản gốc Mvà không gian bản mã C giống như các tập hợp,

K=M=C ={1,2,3,· · · , p−1}.

Trong thuật ngữ hiện đại, K =M=C = F∗p bằng nhóm các phần tử khả nghịch của trường hữu hạn Fp. Alice và Bob chọn một khóa k ∈ K ngẫu nhiên, tức là, họ chọn một số nguyên k thỏa mãn 1 ≤ k < p, và họ quyết định sử dụng hàm số mã hóa ek

xác định bởi

ek(m)≡k·m (mod p).

Điều đó có nghĩa làek(m) được thiết lập bằng số nguyên dương duy nhất giữa1và p, đồng dư vớik·m (mod p)(theo định lý Fermat). Các hàm số giải mã tương ứng dk là

dk(c)≡k0·c (mod p),

với k0 là nghịch đảo củak môđunp.Điều quan trọng cần lưu ý là mặc dù plà rất lớn, thuật toán Euclid mở rộng cho phép chúng ta tính đượck0 ít hơn2 log2p+ 2 bước. Do đó tìmk0 từ k là dễ dàng trong lý thuyết mật mã.

Rõ ràng Eve phải mất nhiều thời gian để tính k, vì thế cô ấy có khoảng2160 khả năng để lựa chọn. Điều đó có là quá khó đối với Eve để phục hồi k nếu cô ấy biết bản

mã c? Câu trả lời là có, điều đó vẫn còn khó khăn. Chú ý rằng hàm số mã hóa

ek :M → C

là hàm số cho sự lựa chọn khóa k bất kỳ. Điều này có nghĩa là với mỗi c∈ C vàk ∈ K

bất kì, tồn tại m ∈ M sao cho ek(m) = c. Hơn nữa, bản mã bất kỳ có thể đại diện cho văn bản gốc bất kỳ, với điều kiện là văn bản gốc đã được mã hóa bằng một khóa thích hợp. Về mặt toán học, điều này có thể được viết lại bằng cách nói rằng cho bản mã c ∈ C bất kì, văn bản gốc m ∈ M bất kỳ, tồn tại một khóa k sao cho ek(m) =c.

Cụ thể điều này là đúng cho khóa

k ≡m−1·c (mod p).

Điều này chỉ ra rằng mật mã của Alice và Bob có tính chất 1, 2 và 3, từ đó bất kì ai biết khóa k có thể dễ dàng mã hóa và giải mã, nhưng điều đó là khó để giải mã nếu chúng ta không biết giá trị của k. Tuy nhiên, mật mã này không có tính chất 4, vì ngay cả một văn bản gốc cho biết bản mã duy nhất (m, c) cho phép Eve phục hồi lại riêng khóa k bằng cách sử dụng công thức.

Nếu Alice và Bob xác định hàm số mã hóa của họ là chỉ đơn giản là phép nhân các số nguyên ek(m) =k ·m không rút gọn môđun p, thì thuật toán mã hóa của họ vẫn có tính chất 1 và 2. Nếu Eve cố gắng giải mã một bản mã đơn giản c=k·m, cô ấy vẫn phải đối mặt với nhiệm vụ khó khăn vì hệ số lớn. Tuy nhiên, nếu cô ấy cố gắng để có được nhiều bản mãc1, c2,· · · , cn, thì có cơ hội tốt tức là

gcd(c1, c2,· · · , cn) = gcd(k·m1, k·m2,· · · , k·mn) =k·gcd(m1, m2,· · · , mn) bằng k hay nhỏ hơn một bội của k. Chú ý rằng đây là một nhiệm vụ dễ dàng để tính toán ước chung lớn nhất.

Quan sát này cung cấp dấu hiệu đầu tiên của chúng ta về cách rút gọn môđun

p có một hiệu ứng phá hủy các tính chất như là tính chia hết. Hãy xem xét những lỗ hổng của mật mã đế lựa chọn giải mã văn bản gốc. Như đã nói ở trên, nếu Eve có thể biết một bản mãcvà văn gốc m tương ứng, thì cô ấy dễ dàng khôi phục lại khóa bằng cách tính

k ≡m−1c (mod p).

Vì vậy hàm số mã hóaek được đưa ra không có tính chất 4.

Trong ví dụ này, vì phép cộng hiệu quả hơn phép nhân, có một phép cộng môđun

pmã hóa được cho bởi

ek(m)≡m+k (mod p) và dk(c)≡c−k (mod p),

Định nghĩa 1.5.3. Mật mã affine, là sự kết hợp của sự thay đổi mật mã và mật mã nhân. Khóa cho một mật mã affine bao gồm hai số nguyên k = (k1, k2) và mã hóa và giải mã được xác định bởi

ek(m)≡k1·m+k2 (mod p), dk(c)≡k10 ·(c−k2) (mod p),

Với k0 là nghịch đảo của k (mod p).

Định nghĩa 1.5.4. Mật mã Hilll là một sự tổng quát hơn của mật mã affine, trong đó văn bản gốc m, bản mã c, và phần thứ hai của khóa được thay thế bằng vectơ cột gồm n số modun p.Phần thứ nhất của khóa k1 được lấy bởi n ma trận với các thành phần số nguyên môđun p.Mã hóa và giải mã một lần nữa được đưa ra bởi

ek(m)≡k1·m+k2 (mod p), dk(c)≡k10 ·(c−k2) (mod p),

nhưng bây giờ phép nhân k1·m là tích của một ma trận và vector, và k10 là ma trận nghịch đảo củak1 môđun p.

Cả mật mã affine và mật mã Hill đều dễ bị giải mã trong một số trường hợp lựa chọn giải mã văn bản gốc.

Ví dụ 1.5.5. Như đã đề cập trước đó, phép cộng là nhanh hơn phép nhân, nhưng có một hoạt động máy tính cơ bản còn nhanh hơn phép cộng được gọi là loại trừ hoặc và được ký hiệu là XOR hay⊕. Ở cấp thấp nhất, XOR có hai bit cá nhân β ∈ {0,1} và

β0∈ {0,1}khi đó β⊕β0 =       

0 nếu β và β0 giống nhau,

1nếu β và β0 khác nhau.

Nếu chúng ta coi một bit như là một số0hoặc1, thì XOR giống như phép cộng mô-đun 2.

Tổng quát hơn, XOR của hai chuỗi bit là một kết quả thực hiện XOR trên mỗi cặp tương ứng với các bit. Ví dụ,

10110⊕11010 = [1⊕1][0⊕1][1⊕0][1⊕1][0⊕0] = 01100.

Sử dụng phép toán mới này, Alice và Bob có một thuật toán mã hóa cơ bản chưa xử lý của họ được xác định bởi

ek(m) =k⊕m và dk(c) =k⊕c.

Ở đâyK, Mvà C là các tập hợp của tất cả các chuỗi nhị phân độ dài B, hay, tập tất cả các số giữa 0 và 2B −1.

Mật mã này có lợi thế là hiệu quả cao và hoàn toàn đối xứng theo nghĩa là ek và

dk là hàm số giống nhau. Nếu k được chọn ngẫu nhiên và được sử dụng một lần duy nhất, thì mã này được biết như là một thời gian đi bộ của Vernam. Thật không may, mật mã này đòi hỏi một khóa dài như là văn bản gốc. Và nếu k được sử dụng để mã hóa nhiều hơn một văn bản gốc, thì Eve có thể khai thác thực tế là

c⊕c0= (k⊕m)⊕(k⊕m0) =m⊕m0

để lấy thông tin về m và m0. Chúng ta không biết Eve sẽ tiến hành như thế nào để tìm thấy k, m hay m0, nhưng một thực tế đơn giản là khóa k có thể được gỡ bỏ một cách dễ dàng, tiết lộ số lượng ít có khả năng ngẫu nhiên m⊕m0, nên tạo một mật mã phức tạp. Hơn nữa, phương pháp này dễ bị giải mã trong một số trường hợp lựa chọn giải mã văn bản gốc.

Một phần của tài liệu (LUẬN văn THẠC sĩ) lý thuyết vành trong máy tính (Trang 31 - 34)

Tải bản đầy đủ (PDF)

(77 trang)