Affine Cipher

Nguồn

Keyword

  • Mật mã Affine, Cryptography, monoalphabetic substitution cipher, mật mã thay thế một bảng chữ cái

Mở đầu

Mật mã Affine là một dạng mật mã thay thế một bảng chữ cái, mỗi chữ cái sẽ được thay thế với một con số tương ứng, sau đó được mã hóa với một hàm toán học đơn giản, và cuối cùng lại được chuyển về một chữ cái. Hàm toán học sẽ chuyển một chữ cái trong văn bản gốc sẽ được chuyển thành một chữ cái trong văn bản mã, và ngược lại. Tất nhiên, mật mã Affine cũng có những điểm yếu như tất cả các mật mã thay thế một bảng chữ cái khác.

Mã hóa – Giải mã

Trong mã Affine, bảng chữ cái có m chữ cái sẽ được chuyển thành các số 0, 1, 2, ... , m - 1

Sau đó, dùng hàm module để mã hóa và chuyển thành bản mã

Hàm mã hóa với một kự tự
E(x) = (ax + b)\ mod\ m
Trong đó, a và b là khóa, a và m nguyên tố cùng nhau

Hàm giải mã với một ký tự

D(x) = a^{-1}(x-b)\ mod\ m

Trong đó a^{-1} là nghịch đảo của a theo module m

Ví dụ

Mã hóa văn bản: “HELLO WORLD” với khóa là (17, 6)

  • Trong bảng mã ABC..XYZ, ta có m = 26
  • Văn bản gốc được chuyển thành dãy số [7, 4, 11, 11, 14, 22, 14, 17, 11, 3]
  • Với từng số x trong dãy số trên, áp dụng hàm mã hóa E(x) = (17x + 6)\ mod\ 26, ta được dãy số [21, 22, 11, 11, 10, 16, 10, 11, 9, 5]
  • Chuyển dãy số về dạng ABC, ta có bản mã: VWLLK QKJLF

Mã hóa văn bản: “VWLLK QKJLF” với khóa là (17, 6)

  • Trong bảng mã ABC..XYZ, ta có m = 26
  • Văn bản mã được chuyển thành dãy số C1 = [21, 22, 11, 11, 10, 16, 10, 11, 9, 5]
  • Nghịch đảo của 17 theo module 26 là 23, ta có a^{-1}=23
  • Với từng số x trong dãy số C1, áp dụng hàm giải mã D(x) = a^{-1}(x-b)\ mod\ m = 23(x-6)\ mod\ 26, ta được dãy số [7, 4, 11, 11, 14, 22, 14, 17, 11, 3]
  • Chuyển dãy số này về dạng ABC, ta được văn bản gốc: HELLO WORLD

Thử thách

C1. (Dễ)

Chứng minh x = D(E(x))

C2. (Dễ)

Mã hóa thông điệp sau

Plaintext: “WELCOME TO AFFINE CIPHER”

Key: (a, b) = (5, 17)

C3. (Dễ)

Giải mã thông điệp sau

Ciphertext: “LQJVFORNS RT OWL XNTO INZLYGJC ZLFINS ZWRVW PNJ VFS JTL ON VWFSBL OWL ZNYCQ”

Key: (a, b) = (21, 5)

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s