Tải bản đầy đủ (.doc) (49 trang)

Phân tích hệ thám mã vigenere

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (358.78 KB, 49 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trịnh Thị Dịu
PHÂN TÍCH HỆ THÁM MÃ VIGENERE
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
HÀ NỘI - 2009
ii
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trịnh Thị Dịu
PHÂN TÍCH HỆ THÁM MÃ VIGENERE
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công nghệ thông tin
Cán bộ hướng dẫn:Tiến sĩ.Hồ Văn Canh
HÀ NỘI - 2009
LỜI CẢM ƠN
Sau thời gian học tập tại trường bằng sự nỗ lực của bản thân cùng với sự chỉ bảo dạy dỗ
tận tình của các thầy cô trong trường Đại học công nghệ nói chung và các thầy cô trong
Khoa nói riêng em đã tích luỹ được nhiều kiến thức bổ ích trang bị cho công việc của một
cử nhân tương lai.
Luận văn tốt nghiệp là kết quả của sự cố gắng trong suốt 4 năm học tập và tìm hiểu kiến
thức tại trường , đó là sự đánh giá tổng kết công tác học tập trong suốt thời gian qua của
mỗi sinh viên. Trong thời gian luận văn tốt nghiệp này em đã được sự giúp đỡ nhiệt tình
của các thầy cô giáo trong bộ môn. Em xin gửi lời cảm ơn sâu sắc tới các thầy cô những
người đã trang bị cho chúng em hành trang kiến thức, đặc biệt thầy: Hồ Văn Canh đã tận
tình giúp em hoàn thành luận văn.
Do thời gian tiến hành làm luận văn và trình độ lý thuyết cũng như các kinh nghiệm thực
tế còn có hạn nên trong luận văn này chắc chắn sẽ không tránh khỏi những thiếu sót . Em
xin kính mong các thầy cô chỉ bảo để em có thể hoàn thiện hơn luận văn cũng như kiến


thức chuyên môn của mình.
Em xin chân thành cảm ơn !
Hà Nội, tháng 05 năm 2009.
Sinh viên : Trịnh Thị Dịu.
iii
TÓM TẮT NỘI DUNG
Nội dung của khóa luận là tìm hiểu về hệ mã hóa Vigenere nổi tiếng, nó được phát minh
vào thế kỷ thứ 16 và được viết đầu tiên bởi nhà ngoại giao Pháp Blaise de Vigenère.
Trước hết ta đi tìm hiểu về một vài hệ mã hóa cổ điển như hệ mã hóa truyền thống mã thay
thế, mã dịch chuyển, mã affine, mã caesar, (hay chúng còn được gọi là hệ mã hóa đơn
biểu). Đặc biệt đi sâu vào tìm hiểu hệ mã hóa Vigenere (hệ mã hóa đa biểu) để làm rõ hơn
độ an toàn của hệ mật mã này so với các hệ mật mã trên. Đồng thời, làm rõ thêm tính chất
của hệ mã hóa Vigenere và cách thức mã hóa và thám mã khi có khóa cho trước. Trong đó,
đi nghiên cứu về tần số đơn, tần số đôi, tần số ba và cả sự trùng lặp trong bản rõ và bản mã.
Đó cũng là một cách thám mã hiệu quả. Cách phá mã khi không có khóa cho trước, khi đó
ta cần thực hiện 2 bước: đầu tiên là tìm chu kỳ khóa, sau đó thám mã, trong đó sử dụng hai
cách là thám mã nổi tiếng là của Kasiski và dùng chỉ số trùng khớp. Cuối cùng là chương
trình mô tả về toàn bộ cách mã hóa, thám mã khi có khóa và khi không có khóa.( Là
chương trình đính kèm theo Vigenere.c).
iv
MỤC LỤC
Trịnh Thị Dịu ........................................................................................................... i
HÀ NỘI - 2009 .................................................................................................................................. i
Trịnh Thị Dịu .......................................................................................................... ii
HÀ NỘI - 2009 ................................................................................................................................ ii
Chúng ta tính được tần suất xuất hiện của các ký tự trong bản mã. Và bên phải là bảng tần
suất của các ký tự trong tiếng Anh.............................................................................................21
Và tần suất xuất hiện của bộ đôi và bộ 3 trong bản mã là:........................................................21
v


Lời mở đầu
Ngày nay, với sự phát triển mạnh mẽ của công nghệ thông tin việc ứng dụng các công
nghệ mạng máy tính trở nên vô cùng phổ cập và cần thiết. Sự ra đời và tiến bộ vượt bậc của
nó là bước ngoặt trong lịch sử phát triển của xã hội, đưa thế giới từ kỷ nguyên công nghiệp
sang kỷ nguyên thông tin và phát triển kinh tế tri thức. Công nghệ mạng máy tính đã mang
lại những lợi ích to lớn. Chúng được áp dụng trong hầu hết các công việc trong mọi lĩnh
vực như : chính trị, quân sự, quốc phòng…
Sự xuất hiện mạng Internet cho phép mọi người có thể truy cập, chia sẽ và khai thác
thông tin một cách dễ dàng và hiệu quả. Các công nghệ E-mail cho phép mọi người có thể
gửi thư cho người khác cũng như nhận thư ngay trên máy tính của mình. Gần đây có công
nghệ E-business cho phép thực hiện các hoạt động thương mại trên mạng máy tính. Việc
ứng dụng các mạng cục bộ trong các tổ chức, công ty hay trong một quốc gia là rất phong
phú. Các hệ thống chuyển tiền của các ngân hàng hàng ngày có thể chuyển hàng tỷ đôla qua
hệ thống của mình. Các thông tin về kinh tế, chính trị, khoa học xã hội được trao đổi rông
rãi.
Tuy nhiên lại nảy sinh vấn đề về an toàn thông tin. Đó cùng là một quá trình tiến triển
hợp logic: khi những vui thích ban đầu về một siêu xa lộ thông tin, bạn nhất định nhận thấy
rằng không chỉ cho phép bạn truy nhập vào nhiều nơi trên thế giới, Internet còn cho phép
nhiều người không mời mà tự ý ghé thăm máy tính của bạn.
Thực vậy, Internet có những kỹ thuật tuyệt vời cho phép mọi người truy nhập, khai
thác, chia sẻ thông tin. Những nó cũng là nguy cơ chính dẫn đến thông tin của bạn bị hư
hỏng hoặc phá huỷ hoàn toàn.
Có những thông tin vô cùng quan trọng mà việc bị mất hay bị làm sai lệch có thể ảnh
hưởng đến các tổ chức, các công ty hay cả một quốc gia. Các thông tin về an ninh quốc gia,
bí mật kinh doanh hay các thông tin tài chính là mục tiêu của các tổ chức tình báo nước
ngoài về chính trị hay công nghiệp hoặc kẻ cắp nói chung. Bọn chúng có thể làm mọi việc
có thể để có được những thông tin quý giá này. Thử tưởng tượng nếu có kẻ xâm nhập được
vào hệ thống chuyển tiền của các ngân hàng thì ngân hàng đó sẽ chịu những thiệt hại to lớn
1
như mất tiền có thể dẫn tới bị phá sản. Chưa kể nếu hệ thông thông tin an ninh quốc gia bị

đe doạ thì hậu quả không thể lường trước được.
[9]Theo số liệu của CERT(Computer Emegency Response Team - “Đội cấp cứu máy
tính”), số lượng các vụ tấn công trên Internet được thông báo cho tổ chức này là ít hơn 200
vào năm 1989, khoảng 400 vào năm 1991, 1400 vào năm 1993, và 2241 vào năm 1994.
Những vụ tấn công này nhằm vào tất cả các máy tính có mặt trên Internet, các máy tính của
tất cả các công ty lớn như AT&T, IBM, các trường đại học, các cơ quan nhà nước, các tổ
chức quân sự, nhà băng... Một số vụ tấn công có quy mô khổng lồ (có tới 100.000 máy tính
bị tấn công). Hơn nữa, những con số này chỉ là phần nổi của tảng băng. Một phần rất lớn
các vụ tấn công không được thông báo, vì nhiều lý do, trong đó có thể kể đến nỗi lo bị mất
uy tín, hoặc đơn giản những người quản trị hệ thống không hề hay biết những cuộc tấn
công nhằm vào hệ thống của họ.
Không chỉ số lượng các cuộc tấn công tăng lên nhanh chóng, mà các phương pháp tấn
công cũng liên tục được hoàn thiện. Điều đó một phần do các nhân viên quản trị hệ thống
được kết nối với Internet ngày càng đề cao cảnh giác. Cũng theo CERT, những cuộc tấn
công thời kỳ 1988-1989 chủ yếu đoán tên người sử dụng-mật khẩu (UserID-password) hoặc
sử dụng một số lỗi của các chương trình và hệ điều hành (security hole) làm vô hiệu hệ
thống bảo vệ, tuy nhiên các cuộc tấn công vào thời gian gần đây bao gồm cả các thao tác
như giả mạo địa chỉ IP, theo dõi thông tin truyền qua mạng, chiếm các phiên làm việc từ xa
(telnet hoặc rlogin).
Để vừa bảo đảm tính bảo mật của thông tin lại không làm giảm sự phát triển của việc
trao đổi thông tin quảng bá trên toàn cầu thì một giải pháp tốt nhất là mã hoá thông tin. Có
thể hiểu sơ lược mã hoá thông tin là che đi thông tin của mình làm cho kẻ tấn công nếu
chặn được thông báo trên đường truyền thì cũng không thể đọc được và phải có một giao
thức giữa người gửi và người nhận để có thể trao đổi thông tin, đó là các cơ chế mã và giải
mã thông tin.
Ngày nay thì việc mã hoá đã trở nên phổ cập. Các công ty phần mềm lớn trên thế giới
đều có nghiên cứu và xây dựng các công cụ, thuật toán mã hoá để áp dụng cho thực tế. Mỗi
quốc gia hay tổ chức đều có những cơ chế mã hoá riêng để bảo vệ hệ thống thông tin của
mình.
Một số vấn đề an toàn đối với nhiều mạng hiện nay:

2
Một người dùng chuyển một thông báo điện tử cho một người sử dụng khác. Một bên
thứ ba trên cùng mạng LAN này sử dụng một thiết bị nghe trộm gói để lấy thông báo và
đọc các thông tin trong đó.
Cũng trong tình huống trên bên thứ ba chặn thông báo, thay đổi các thành phần của nó
và sau đó lại gửi cho người nhận. Người nhận không hề nghi ngờ gì trừ khi nhận ra thông
báo đó là vô lý, và có thể thực hiện vài hành động dựa trên các thành phần sai này đem lại
lợi ích cho bên thứ ba.
Người dùng log vào một server mà không sử dụng mật khẩu được mã hoá. Một người
khác đang nge trộm trên đường truyền và bắt được mật khẩu logon của người dùng, sau đó
có thể truy nhập thông tin trên server như người sử dụng.
Một người quản trị hệ thống không hiểu về khía cạnh an toàn và yêu cầu của hệ thống
và vô tình cho phép người dùng khác truy nhập vào thư mục chứa các thông tin hệ thống.
Người dùng phát hiện ra họ có thể có được các thông tin hệ thống và có thể dùng nó phục
vụ cho lợi ích của mình. Thật tai hại nếu các vấn đề trên xảy ra, nó có thể ảnh hưởng không
chỉ lợi ích cá nhân mà còn ảnh hưởng tới lợi ích của tập đoàn, có khi là quốc gia.
Vậy nên vấn đề bảo mật thông tin ngày càng trở lên cần thiết và được sử dụng rất
nhiều trong các công ty, tập đoàn, ban bộ…Vì đó các hệ mã hóa mang lại lợi ích rất lớn và
đóng vai trò không thể thiếu trong đời sống công nghệ thông tin.
Trong tài liệu này, tôi xin giới thiệu với các bạn một số hệ mã hóa như: Caesar, mã
thay thế, mã dịch vòng…và đặc biệt hệ về hệ mã hóa Vigenere nổi tiếng. Hệ mã hóa này
được phát minh vào thế kỷ thứ 16 và được viết đầu tiên bởi nhà ngoại giao Pháp Blaise de
Vigenère và là một kiểu của mã hóa thay thế được xem xét là chưa từng bị phá vỡ trong
suốt 4 thế kỷ và nó được sử dụng phổ biến rộng rãi cho việc mã hóa những dữ liệu được
truyền qua hệ thống điện tín trong suốt thế kỷ 19.

Chương 1: Hệ mật mã truyền thống
3
1.1 Mở đầu – một số hệ mã hóa đơn giản:
Trong thực tế, giả sử bên A muốn liên lạc với B thương lượng một vấn đề bí mật nào

đó( ví dụ như: hợp đồng, bầu cử, thông điệp bí mật …) trên một kênh mật an toàn sao cho
C(kẻ trộm) không thể hiểu được thông tin được truyền đi giữa hai người là gì, để tránh tình
trạng nghe nén và ăn trộm thông tin quan trọng. Kênh liên lạc này có thể là một đường dây
điện thoại hay một mạng máy tính. Đối tượng cơ bản của mật mã chính là khả năng tạo ra
các kênh liên lạc đó. Thông tin mà bên A và B muốn gửi cho nhau có thể là những tài liệu
liên quan đến bất kỳ một vấn đề gì được thể hiện bằng một văn bản tiếng Anh, các dữ liệu
bằng số hay bất cứ tài liệu nào có cấu trúc tùy ý. A sẽ tìm cách làm thế nào đó để gửi an
toàn cho bên B một cách an toàn nhất, vậy nên, bên A sẽ mã hóa tài liệu đó (bản rõ) bằng
một khóa được xác định trước và gửi bản mã kết quả trên kênh. Bên C có bản mã thu trộm
được trên kênh song không thể xác định nội dung của bản rõ, nhưng B( người đã biết khóa
mã) có thể giải mã và thu được bản rõ. Đó là mục đích của mật mã- đảm bảo an toàn thông
tin.
1.1.1 Định nghĩa về hệ mật mã [1]:
Hệ mật mã là một bộ gồm 5 thành phần(P,C,K,E,D) thỏa mãn các điều kiện sau:
- P là một tập hữu hạn các bản rõ có thể
- C là một tập hữu hạn các bản mã có thể
- K là tập hữu hạn các khóa có thể(không gian khóa)
- Đối với mỗi k thuộc K có một quy tắc mã e
k
: P->C và một quy tắc giải mã tương ứng
d
k
thuộc D, d
k
: C->P và e
k
:P->C, là hàm mà: d
k
(e
k

(x))=x với mọi bản rõ x

P.
Khi bên A muốn gửi một tài liệu (bản rõ x) đến cho bên B, bên A sẽ mã hóa bản rõ đó bằng
e
k
: P->C và gửi đi trên đường truyền qua cho bên B, bên B nhận được sau đó sẽ giải mã
bằng d
k
: C->P để thu lại bản rõ ban đầu. Bên A và B sẽ áp dụng thủ tục sau dùng hệ mật
khóa riêng. Trước tiên họ chọn một khóa ngẫu nhiên K

K . Điều này được thực hiện khi
họ ở cùng một chỗ và không bị bên C theo dõi hoặc họ có một kênh mật trong trường hợp
họ ở xa nhau. Sau đó giả sử bên A muốn gửi một thông báo cho B trên một kênh không mật
và ta xem thông báo này là một chuỗi:
4
x = x
1
,x
2
,. . .,x
n

với số nguyên b ≥ 1 nào đó. Ở đây mỗi kí hiệu của mỗi bản rõ x
i


P , 1 ≤ i ≤ n . Mỗi x
i

sẽ
được mã hóa bằng quy tắc mã e
k
với khóa K xác định trước đó. Bởi vậy bên A sẽ tính y
i
=
e
k
(x
i
), 1 ≤ i ≤ n và chuỗi bản mã nhận được y = y
1
,y
2
,. . .,y sẽ được gửi trên kênh. Khi bên
B nhận được y = y
1
,y
2
,. . .,y anh ta sẽ giải mã bằng hàm giải mã d
k
và thu được bản rõ gốc
x = x
1
,x
2
,. . .,x
n
1.1.2.Một số loại mã hóa truyền thống như:
1.1.2.1 Mã dịch chuyển vòng( shift cipher):

Nhận xét: Trong trường hợp K=3, hệ mật thường được gọi là mã Caeser.
Ta sẽ sử dụng mã dịch vòng(với modulo 26) để mã hóa một văn bản tiếng Anh thông
thường bằng cách thiết lập sự tương ứng giữa các kí tự và các thặng dư theo modulo 26 như
sau: A ↔ 0,B ↔ 1, . . ., Z ↔ 25.
A B C D E F G H I J K L M
0 1 2 3 4 5 6 7 8 9 10 11 12
Định nghĩa[2]: Giả sử P = C = K = Z
26
với 0 ≤ k ≤ 25 , định nghĩa:
e
K
(x) = x +K mod 26
và d
K
(x) = y -K mod 26
(x,y ∈ Z
26
)
5
Ví dụ: Giả sử khóa cho mã dịch vòng là K=11
Bản rõ: “wewillmeetatmidnight”
Trước tiên biến đổi bản rõ thành dãy các số nguyên ta có:
Bản rõ số:
22 4 22 8 11 11 12 4 4 19
0 9 12 8 3 13 8 6 7 19
Sau đó cộng 11 vào mỗi giá trị rồi rút gọn tổng theo modulo 26, ta được:
Bản mã số:
7 15 7 19 22 22 23 15 15 4
11 4 23 19 14 24 19 17 18 4
Cuối cùng biến đổi dãy số nguyên này thành các kí tự thu được bản mã:

Bản mã chữ: “HPHTWWXPPELEXTOYTRSE”
Tương tự, khi bên B muốn xem bản mã này, trước tiên bên B sẽ biến đổi bản mã
thành dãy các số nguyên rồi trừ đi giá trị cho 11 (rút gọn theo modulo 26) và cuối cùng lại
biến đổi dãy này thành các ký tự.
N O P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
6
Kết luận: Mã dịch vòng là không an toàn vì nó có thể bị thám theo phương pháp vét cạn.
Do chỉ có 26 khóa nên dễ dàng thử mọi khóa d
k
có thể cho tới khi nhận được bản rõ có ý
nghĩa.
1.1.2.2 Mã thay thế:
Hệ mã hoá thay thế là hệ mã hoá trong đó mỗi ký tự của bản rõ được thay thế bằng ký
tự khác trong bản mã (có thể là một chữ cái, một số hoặc một ký hiệu).
Có 4 kỹ thuật thay thế sau đây:
1. Thay thế đơn (A simple substitution cipher):
Là hệ trong đó một ký tự của bản rõ được thay bằng một ký tự tương ứng trong bản
mã. Một ánh xạ 1-1 từ bản rõ tới bản mã được sử dụng để mã hoá toàn bộ thông điệp.
2. Thay thế đồng âm (A homophonic substitution cipher):
Giống như hệ thống mã hoá thay thế đơn, ngoại trừ một ký tự của bản rõ có thể được
ánh xạ tới một trong số một vài ký tự của bản mã: sơ đồ ánh xạ 1-n (one-to-many). Ví dụ,
“A” có thể tương ứng với 5, 13, 25, hoặc 56, “B” có thể tương ứng với 7, 19, 31, hoặc 42,
Định nghĩa[2]: Cho P =C = Z
26
. K chứa mọi hoán vị có thể của 26
kí hiệu 0,1, . . . ,25 Với mỗi phép hoán vị π ∈K , ta định nghĩa:
eπ(x) = π(x)

dπ(y) = π

-1
(y)
Trong đó π
-1
là hoán vị ngược π.
7
v.v.
3. Thay thế đa mẫu tự (A polyalphbetic substitution cipher):
Được tạo nên từ nhiều thuật toán mã hoá thay thế đơn. ánh xạ 1-1 như trong trường
hợp thay thế đơn, nhưng có thể thay đổi trong phạm vi một thông điệp. Ví dụ, có thể có
năm thuật toán mã hoá đơn khác nhau được sử dụng; đặc biệt thuật toán mã hoá đơn được
sử dụng thay đổi theo vị trí của mỗi ký tự trong bản rõ.
4. Thay thế đa sơ đồ (A polygram substitution cipher):
Là thuật toán trong đó các khối ký tự được mã hoá theo nhóm. Đây là thuật toán tổng
quát nhất, cho phép thay thế các nhóm ký tự của văn bản gốc. Ví dụ, “ABA” có thể tương
ứng với “RTQ”, “ABB” có thể tương ứng với “SLL”, v.v.
Ta xét ví dụ về phép hoán vị ngẫu nhiên
Π
tạo nên một hàm mã hóa( các kí hiệu của bản rõ
được viết bằng chữ thường còn các kí hiệu của bản mã là chữ in hoa).
Ví dụ:
a b c d e f g h I j k l m
X N Y A H P O G Z Q W B T
n o p q r s t u V w x y z
S F L R C V M U E K J D I
Như vậy, eπ

(a) = X, eπ

(b) = N,. . . .. Hàm giải mã là phép hoán vị ngược. Điều này được

thực hiện bằng cách viết hàng thứ 2 lên trước rồi sắp xếp theo thứ tự chữ cái. Ta nhận
được:
A B C D E F G H I J K L M
d l r y v o h e z x w p T
A B C D E F G H I J K L M
d l r y v o h e z x w p T
8
Bởi vậy, dπ

(A) = d, dπ(B) = 1, . . .
Kết luận: Mỗi khóa của mã thay thế là một phép hoán vị của 26 ký tự. Số các hoán vị này
là 26! Là một số rất lớn. Bởi vậy phép tìm khóa vét cạn không thể thực hiện được, thậm chí
bằng máy tính. Tuy nhiên, sau này sẽ thầy rằng mã thay thế có thể dễ dàng bị thám bằng
các phương pháp khác.
1.1.2.3 Hệ mã hoá CAESAR:
Hệ mã hoá CAESAR là một hệ mã hóa thay thế đơn làm việc trên bảng chữ cái tiếng
Anh 26 ký tự (A, B, …, Z).
Trong hệ Caesar và các hệ tương tự còn lại ta sử dụng các số tự nhiên thay cho các ký
tự - đánh số các ký tự trong bảng chữ cái theo thứ tự:
A B C D E F …. X Y Z
0 1 2 3 4 5 …. 23 24 25
Các phép toán số học thực hiện theo modul 26. Có nghĩa là 26 đồng nhất với 0, 27 đồng
nhất với 1, ….
Hệ Caesar sử dụng thuật toán mã hóa trong đó mỗi ký tự được thay thế bởi một ký tự khác
được xác định bằng cách dịch ký tự cần mã hóa sang phải k bước theo modulo 26:
E
k
(
α
) = (

α
+ k)mod 26. Trong đó
α
là một ký tự, 0

k

26
Thuật toán giải mã tương ứng D
k
là lùi lại k bước trong bảng chữ cái theo modul 26:
D
k
(
α
) = (
α
- k)mod 26
Không gian khóa của hệ Caesar bao gồm 26 số
Ví dụ :
Mã Hóa
Plaint: “TRICH”
Bản rõ số: 19 17 8 2 7
9
Khóa: k=3
Bản mã số: 22 20 11 5 10
Bản mã chữ là : “WULFK”
Giải mã:
Lùi lại với k=3 ta thu được bản rõ: “TRICH”
Nhận xét: hệ mã hóa Caesar là hệ mã hóa cũ và không an toàn vì không gian khóa của nó

rất nhỏ, do đó có thể thám mã theo phương pháp vét cạn. Khóa giải mã có thể tính ngay
đươc từ khóa mã hóa. Do chỉ có 26 khóa nên ta có thể thử lần lượt các khóa cho đến khi
tìm được khóa đúng.
1.1.2.4. Mã Affine:
Ví dụ: giả sử K=(7,3). Áp dụng công thức của hàm mã hóa:
E
k
(x) = 7x+3
Và hàm giải mã tương ứng là: d
k
(x)=15(y-3)=15y-19
Bản rõ là: “Iwillwin”
Bản số: 8 22 8 11 11 22 8 13
Ta có:
Định nghĩa[2]:
Cho P = C = Z
26
và giả sử:
P = { (a,b) ∈ Z
26
× Z
26
: UCLN(a,26) =1 }
Với K = (a,b) ∈K , ta định nghĩa:
e
K
(x) = ax +b mod 26

d
K

(y) = a
-1
(y-b) mod 26,
x,y ∈ Z
26
10
7 × 8 +3 mod 26 = 59 mod 26 = 7
7 × 22 + 3 mod 26 = 157 mod 26 =1
7 × 8 +3 mod 26 = 59 mod 26 = 7
7 × 11 +3 mod 26 = 80 mod 26 = 2
7 × 11 + 3 mod 26 = 80 mod 26 =2
7 × 22 +3 mod 26 = 157 mod 26 = 1
7 × 8 +3 mod 26 = 59 mod 26 = 7
7 × 13 +3 mod 26 = 94 mod 26 = 16
Bản mã số thu được là: 7 1 7 2 2 1 7 16
Bản mã chữ thu được là: “HBHCCBHQ”
Việc giải mã chỉ việc áp dụng d
K
(y) = a
-1
(y-b) mod 26,
1.2. Mã Vigenere và các đặc tính của nó:
1.2.1 Định nghĩa:
Trong cả hai hệ mã dịch vòng và mã thay thế( một khi khóa đã được chọn) mỗi ký tự
được ánh xạ vào một ký tự duy nhất. Vì đó mà các hệ mật còn được gọi là hệ thay thế đơn
biểu. Bây giờ ta sẽ trình bày một hệ mật không phải là bộ chữ đơn, đó là hệ mã Vigenere
nổi tiếng. Nó được gọi là hệ mã hóa đa biểu
Giống như Caesar nhưng ở đây khóa được thay đổi theo từng bước.
Định nghĩa[2]:
Cho m là một số nguyên dương cố định nào đó. Định nghĩa

P=C=K=(Z
26
)
m

Với khóa K = (k
1
,k
2
, …,k
m
) ta xác định:
e
k
(x
1
,x
2
,…,x
m
) =(x
1
+k
1
, x
2
+k
2
,….,x
m

+k
m
)
d
k
(y
1
,y
2
,…y
m
) = (y
1
-k
1
, y
2
-k
2
,….,y
m
-k
m
).
Trong đó tất cả các phép toán được thực hiện trong Z
26
. Ta sẽ biến
đổi các phần tử của bản rõ theo thặng dư 26, viết chúng thành các
nhóm 6 rồi cộng với từ khóa theo modulo 26.
11

Ví dụ: giả sử m=5 và từ khóa là “TRICH”. Từ khóa này tương ứng với dãy số
K=(19,17,8,2,7). Giả sử bản rõ là xâu:
Bản rõ: “CHIPHEO”
Ta sẽ biến đổi các phần tử của bản rõ thành các số từ 0-25, ta được:
Bản rõ số:
C H I P H E O
2 7 8 15 7 4 14
viết chúng thành các nhóm 5 rồi cộng với từ khóa theo modulo 26 ta được:
Bản rõ : C H I P H E O
Bản rõ số: 2 7 8 15 7 4 14
Khóa số viết lặp lại: 19 17 8 2 7 19 17
=>> Bản mã số: 21 24 16 17 14 23 5
Bởi vậy, dãy ký tự tương ứng của xâu bản mã sẽ là:
“VYQROXF”
Để giải mã ta có thể dùng cùng từ khóa nhưng thay cho cộng, ta trừ cho nó theo
modulo 26.
1.2.2 Tính chất:
Ta thấy, khóa có độ dài là m, nên các khóa có thể là 26
m

, bởi vậy phương pháp tìm
kiếm vét cạn cũng yêu cầu thời gian khá lớn.Việc thám mã là rất phức tạp. Thứ hai, từ khóa
12
có độ dài m, mỗi ký tự có thể được ánh xạ vào trong m ký tự có thể có, như trong ví dụ xét
trên có đến 2 ký tự H nhưng khi mã hóa ký tự H được mã hóa thành Y và O. Đó là một đặc
điểm khác so với các hệ mã hóa đơn biểu. Một hệ như vậy được gọi là hệ mật thay thế đa
biểu. Việc thám mã đa biểu khó khăn hơn nhiều so với việc thám mã hệ đơn biểu. Đó là
một tiến bộ hơn so với các phép mã hóa cổ điển ta xét bên trên.
1.3.Phương pháp mã hóa và giải mã Vigenere(khi có khóa cho trước):
Chúng ta xét một ví dụ sau:

Ví dụ:
Bản rõ: “Now is the time for all good men”
Keywords là: TABLE
Ta viết theo hàng của bản rõ và sự lặp lại của từ khóa phía dưới bản rõ, ta được:
Bản rõ: n o w i s t h e t i m e f o r a l l g o o d m e n
Lặp khóa: T A B L E T A B L E T A B L E T A B L E T A B L E
1.3.1 Mã hóa:
Chúng ta nhìn vào hình A polyalphabetic tableau ứng với mỗi ký tự của bản rõ là một
ký tự trên hàng của bảng đa biểu, và ứng với mỗi ký tự từ khóa là một ký tự trên cột của
bảng đa biểu, khi đó tìm được ký tự mà là giao của cột ký tự khóa với hàng ký tự của bản
rõ, ta được:
n o w i s t h e t i m e f o r a l l g o o d m e n
T A B L E T A B L E T A B L E T A B L E T A B L E
G O X T W M H F E M F E G Z V T L M R S H D N P R
Vậy nên, ta thu được bản mã là: “GOXTWMHFEMFEGZVTLMRSHDNPR”
13

×