Tải bản đầy đủ (.pdf) (75 trang)

Xây dựng hệ mật mã tích dựa trên hệ mật mã truyền thống và giải quyết bài toán trao đổi mã khóa

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 (982.34 KB, 75 trang )

i
LỜI CAM ĐOAN
Với mục đích nghiên cứu, tìm hiểu để nâng cao kiến thức và trình độ chun
mơnđểápdụngtrongcácbàitốncụthểtrongtươnglainêntơiđãlàmluậnvănnày một cách
nghiêm túc và hoàn toàn trung thực. Nội dung luận văn do tự tơi tìm hiểu và
hồnthành.
Trong luận văn, tơi có sử dụng tài liệu tham khảo của một số tác giả trong và
ngoài nước để hoàn thành luận văn được nêu ở phần tài liệu tham khảo.
Tơixincamđoanvàchịutráchnhiệmvềnộidung,sựtrungthựctrongluậnvăn

tốt

nghiệp Thạc sỹ củamình.
Thái Nguyên, tháng 6 năm 2016
Học viên

Vũ Ngọc Hòa


ii

LỜI CẢM ƠN
Em xin chân thành cảm ơn toàn thể các thầycô giáo trong trường Đại học công
nghệ thông tin và truyền thơng Đại học Thái Ngun đã hết lịng dạy dỗ chỉ bảo, tạo
điều kiện tốt cho em trong suốt quá trình học tập cũng như trong thời gian thực hiện
khóa luậnnày.
Đặc biệt em gửi lời cảm ơn chân thành và sâu sắc tới TS Hồ Văn Canh người
đã trực tiếp quan tâm, tận tình hướng dẫn giúp đỡ và tạo điều kiện hết sức thuận lợi
cho em trong q trình thực hiện khóa luận.
Cảmơncácbạnđồngkhóavàgiađìnhđãđộngviên,giúpđỡtơirấtnhiềutrong q trình
học tập tại trường Đại học công nghệ thông tin và truyền thông Đại học Thái


Nguyên cũng như trong quá trình thực hiện khóaluận.

Thái Ngun, tháng 6 năm 2016
Học viên

Vũ Ngọc Hịa


iii

MỤC LỤC
LỜICAMĐOAN...................................................................................................... I
LỜICẢMƠN .......................................................................................................... II
MỤCLỤC ............................................................................................................. III
DANHMỤCBẢNG ................................................................................................ V
DANH MỤC CHỮVIẾTTẮT ....................................................................... VIII
PHẦNMỞĐẦU ...................................................................................................... 1
CHƯƠNG 1. TỔNG QUAN VỀ HỆMẬTMÃ ..................................................... 3
1.1. Lý thuyết về mã hóathơngtin.......................................................................... 3
1.1.1. Kháiniệm .................................................................................................. 3
1.1.2. Vai trị của mật mãhóa .............................................................................. 4
1.1.3. Các thành phần cơ bản của hệmãhóa ........................................................ 5
1.2. Tiêu chuẩn để đánh giá hệmãhóa .................................................................. 6
1.2.1. Độ an tồn củathuậttốn ........................................................................... 6
1.2.2. Tốc độ mã hóa vàgiảimã ........................................................................... 6
1.2.3. Phânphốikhóa ........................................................................................... 6
1.3. Phân loại các hệ mậtmã .................................................................................. 7
1.3.1. Mật cổđiển ............................................................................................... 7
1.3.2. Mật mãhiệnđại ........................................................................................ 32
1.3.3. Mã hóa khóacơngkhai............................................................................. 33

1.4Kếtluận ............................................................................................................ 43
CHƯƠNG 2:THUẬT TOÁN KẾT HỢP GIỮA VIGENERE VÀ CHUYỂN VỊ
.442.1. Hệ mậtmãvigenere ................................................................................... 44
2.1.1. Địnhnghĩa ............................................................................................... 44
2.1.2. Phương pháp mã hóa .............................................................................. 45
2.1.3. Phương pháp giải mã .................................................................................... 46
2.1.4. Phântích,đánhgiá .................................................................................... 46
2.2 Hệ mật mãchuyểnvị ....................................................................................... 48
2.2.1. Địnhnghĩa ............................................................................................... 48
2.2.2. Phương pháp mã hóa .............................................................................. 49
2.2.3. Phương pháp giảimã ............................................................................... 49
2.2.4. Phân tích ,đánhgiá .................................................................................. 50
2.3 Sự kết hợp giữa hai mã chuyển vị và mãvigenere ........................................ 51


iv
2.3.1. Thuật tốn 1 khóa k có độ dài 16ký tự .................................................... 51
2.3.2. Thuật tốn 2 khóa k có độ dài 21ký tự .................................................... 53
2.3.3. Thuật tốn 3 khóa k có độdàitùy ............................................................. 56
2.4 Đánh giákếtquả ............................................................................................. 57
CHƯƠNG 3: CÀI ĐẶT VÀTHỬNGHIỆM ....................................................... 58
3.1. Yêu cầuhệthống .............................................................................................. 58
3.2. Thử nghiệmchươngtrình ................................................................................. 58
3.2.1. Mơ tả dữ liệuthửnghiệm ......................................................................... 58
3.2.2. Quy trìnhmãhóa ...................................................................................... 59
KẾTLUẬN ............................................................................................................ 66
TÀI LIỆU THAM KHẢO ..................................................................................... 68


v


DANH MỤC BẢNG
Bảng 1.1Bảngmã ................................................................................................... 12
Bảng 1.2 Bảng tầnsốđơn ........................................................................................ 13
Bảng 1.3. Mã trùngbô 3,4,6 ................................................................................... 14
Bảng 1.4 Bảng tần sốđịnhkỳ .................................................................................. 16
Bảng 1.5 Bảng tần số đơncủa26 ............................................................................. 17
Bảng 1.6 Bản giả mã độdài41 ................................................................................ 21
Bảng 1.7 Độdài79 .................................................................................................. 22
Bảng 1.8 Phương phápthámmã .............................................................................. 23
Bảng 1.9 Phương pháp thámmã1 ........................................................................... 23
Bảng 1.10 Phương pháp thámmã 2 ........................................................................ 23
Bảng 1.11 Phương pháp thámmã 3 ........................................................................ 24
Bảng 1.12 Thámmã1 ............................................................................................. 24
Bảng 1.13 Thámmã2 ............................................................................................. 25
Bảng 1.14 Thámmã3 ............................................................................................. 25
Bảng 1.15 Thámmã4 ............................................................................................. 26
Bảng 1.16 Thámmã5 ............................................................................................. 27
Bảng 1.17 Thámmã6 ............................................................................................. 27
Bảng 1.18 Bảng mãdịchchuyển ............................................................................. 28
Bảng 1.19 Bảng mã dịchchuyển1........................................................................... 28
Bảng 1.20 Bảng mã dịchchuyển2........................................................................... 29
Bảng 1.21 Bảng mã dịchchuyển3........................................................................... 29
Bảng 1.22 π được cho bởihoán vị .......................................................................... 30
Bảng 1.23 Mãaphin ............................................................................................... 31
Bảng 1.24 Quy đổi ký tự bản rõthànhsố ................................................................. 31
Bảng 1.25 Quy đổi ký tự bản mãthànhsố ............................................................... 32
Bảng 1.26BảngRSA .............................................................................................. 35
Bảng 1.27BảngElgama .......................................................................................... 39
Bảng 1.2 Bảng thuậttoán Rabin ............................................................................ 42



vi

Bảng 2.1 Phương pháp mãhóa ............................................................................... 45
Bảng 2.2 Phương pháp giải mã .............................................................................. 46
Bảng 2.3 Phân tích,đánhgiá ................................................................................... 47
Bảng 2.4 Phương pháp mãhóa ............................................................................... 49
Bảng 2.5 Phương pháp mãhóa ............................................................................... 50
Bảng 2.6. Bảngchuyểnvị ....................................................................................... 54
Bảng 2.7 Bảng mã5-bít .......................................................................................... 55


vii

DANH MỤC HÌNH

Hình 1.1: Mơ hìnhmã hóa ........................................................................................ 5
Hình 1.2: Apolyalphabetictableau .......................................................................... 10
Hình 1.3: Mơhình mã hóa khóacơngkhai ............................................................... 33


viii

DANH MỤC CHỮ VIẾT TẮT

Viết tắt

Tiếng Anh


Tiếng Việt

VGR

Vigenere

Nhiều vần chữ cái


1
PHẦN MỞ ĐẦU
Chúng ta biết rằng, việc bảo mật thông tin đã được hình thành từ xa xưa và
chúng phát triển theo sự phát triển của xã hội loài người. Từ trước đến nay việc bảo
mật thông tin “nhạy cảm” chủ yếu là bằng các hệ mật mã thủ công. Với sự pháttriển
nhanh chóng của Internet và việc lưu trữ các dự liệu nhạy cảm trên mạng máy tính,
mật mã đang trở thành một công cụ rất quan trọng của bảo mật thơng tin truyền và
lưutrênmáytính.Nhiềuthuậttốnmãhóađãđượcsửdụngrấtphổbiếntrênthếgiới
đểđảmbảoantồnthơngtin.Ngồihệmậtmãtruyềnthống,đãcónhiềuHệmậtmã
rađờinhưcáchệmậtmãkhóađốixứngcó:DES,trip-DES,AES,IDEA,RC4,RC5,
v.v. Hệ mật mã khóa cơng khai thì có: RSA,

ELGAMAL, D-H (Diffie - Hellman),

v.v. Tuy nhiên chúng ta biết rằng ngơn ngữ tự nhiên có hai quy luật cơ bản đó làquy
luậttầnsốvàquyluậtMarkov,mãhóatứclàđưaramộtthuậttốnnàođónhằmxóa bỏ được
hai quy luật đó để đầu ra là dãy giả ngẫu nhiên, độc lập mọi thuật tốn mã hóa, khóa
đối xứng đều thực hiện theo ý tưởngtrên.
Mặt khác các hệ mật mã khóa đối xứng hiện đại như DES,3DES, AES, IDEA,
RC4, RC5… đều sử dụng phương pháp thay thế và chuyển vị mà các hệ mật mã
truyền thống thực hiện nhằm xóa bỏ các quy luật bản rõ trong bảng mã. Do đó việc

tìm hiểu các mật mã truyền thống là quan trọng và cần thiết.Vì tính cần thiết đó nên
em đã chọn hướng xây dựng tìm hiểu nghiên cứu cho đề tài luận văn cao học của
mình là: “Xây dựng hệ mật mã tích dựa trên hệ mật mã truyền thống và giải quyết
bài tốn trao đổi mã khóa” do vậy:
- Mục đích của Đềtài
+ Xây dựng một hệ mật mã tích giữa chuyển vị và VGR, dựa trên sự đánh giá
ưu/ nhược điểm của hai hệ mật mã này. Đồng thời đề xuất một phương pháp trao
đổi khóa mật mã đối xứng khơng sử dụng mật mã khóa cơngkhai.
- Phạm vi nghiên cứu của đềtài:
+ Tìm hiểu tổng quan về các hệ mật mã
+ Tìm hiểu và xây dựng hệ mật mã tích dựa trên các mật mã truyền thống


2

+ Giải bài tốn trao đổi khóa bí mật.
Nội dung của luận văn gồm: phần mở đầu, ba chương chính, kết luận và tài liệu
tham khảo, cụ thể:
Phần mở đầu: Nêu lý do chọn đề tài và bố cục luận văn
Chương 1: TÌM HIỂU TỔNG QUAN CÁC HỆ MẬT MÃ
Chươngnàygiớithiệukếtquảtìmhiểuvềlýthuyếtmậtmãhệtruyềnthống,hệ mật mã
hiện đại, tìm hiểu hai hệ mật mã truyền thống là thay thế nhiều vần chữ cái
vàmậtmãchuyểnvị.Trêncơsởđó,xâydựngmộthệmậtmãbằngcáchkếthợpgiữa

hai

hệ

mật mã đó thành một hệ mật mã được xâydựng.
Chương 2: THUẬT TOÁN KẾT HỢP GIỮA MÃ VIGENERE VÀ

CHUYỂN VỊ.
Nộidungtrongphầnnàylàtìmhiểutổngquanvềbàitốntraođổikhóa,những

ưu

nhược điểm của các phương pháp đang được ứng dụng hiện nay. Trên cơ sở đó em
sẽ xây dựng một phương pháp trao đổi khóa mật mã khơng cần sử dụng mật mã
khóa cơngkhai.
Chương 3: THỬ NGHIỆM CHƯƠNG TRÌNH
Chương này em chạy thử nghiệm chương trình.
Phần kết luận: Nhận xét kết luận và hướng phát triển.


3

Chương 1. TỔNG QUAN VỀ HỆ MẬT MÃ
Chương này giới thiệu kết quả tìm hiểu về lý thuyết mật mã, hệ mật mã hiện
đại, tìm hiểu hai hệ mật mã truyền thống điển hình là thay thế nhiều vần chữ cái
(hay còn gọi là Vigenere) và mật mã chuyển vị hay cịn gọi là (transposition) . Trên
cơ sở đó, xây dựng một hệ mật mã bằng cách kết hợp giữa hai hệ mật mã đó thành
một hệ mật mã được xây dựng mới, khắc phục được những điểm yếu từ từng hệ mật
riêng lẻ, nhằm đảm bảo độ an toàn caohơn.
1.1. Lý thuyết về mã hóa thơngtin
1.1.1. Kháiniệm
Trong những năm gần đây, mạng Internet đã trở thành nền tảng chính cho sự
trao đổi thơng tin trên tồn cầu. Có thể thấy một cách rõ ràng là Internet đã và đang
tác động lên nhiều mặt của đời sống chúng ta từ việc tìm kiếm thơng tin, trao đổi dữ
liệuđếnviệchoạtđộngthươngmại,họctậpnghiêncứuvàlàmviệctrựctuyến...Nhờ Internet
mà việc trao đổi thông tin cũng ngày càng tiện lợi, nhanh chóng hơn, khái niệm thư
điện tử (email), facebook, zalo, sky...cũng khơng cịn mấy xa lạ với mọi người.

Tuy nhiên trên mơi trường truyền thơng này, ngồi mặt tích cực Internet cũng
tiềm ẩn những tiêu cực của nó đối với vấn đề bảo vệ thơng tin.
Do đó, những u cầu được đặt ra đối với việc trao đổi thông tin trên mạng:
- Bảo mật tuyệt đối thông tin trong giaodịch.
- Đảm bảo tính tồn vẹn của thơngtin.
- Chứngthựcđượctínhđúngđắnvềpháplícủathựcthểthamgiatraođổithơng
tin.
- Đảmbảothựcthểkhơngthểphủnhậnhaychốibỏtráchnhiệmcủahọvề
những hoạt động giao dịch trên Internet.
Mãhóathơngtinlàmộtngànhquantrọngvàcónhiềuứngdụngtrongđờisống
xãhội.Ngàynaycácứngdụngmãhóavàbảomậtthơngtinđangđượcsửdụngngày
càngphổbiếnhơntrongcáclĩnhvựckhácnhautrênThếgiới,từcáclĩnhvựcanninh, qn sự,
quốc phịng…. Cho đến các lĩnh vực dân sự như thương mại điện tử, ngân hàng…


4

Mãhóathơngtinlàchuyểnđổithơngtintừdạngrõ(dạngđọcđược)sangdạng
mờ(dạngkhơngthểđọcđược)vàngượclại.Nhằmmụcđíchngănchặnnguycơtruy

cập

thơng tin truyền đi trên mạng một cách bất hợp pháp. Thông tin sẽ được truyền đi
trên mạng dưới dạng mờ và không thể đọc được với bất kỳ ai cố tình muốn lấy
thơng tin đó nếu khơng có thơng tin về mãhóa.
Khi chúng ta có nhu cầu trao đổi thơng tin, thì Internet là mơi trường khơng an
tồn,đầyrủirovànguyhiểm,khơngcógìđảmbảorằngthơngtinmàchúngtatruyền đi khơng
bị đọc trộm trên đường truyền. Vì vậy mã hóa là biện pháp giúp ta bảo vệ chính
mình cũng như thơng tin mà ta gửiđi.
Ngồi ra mã hóa cịn đảm bảo tính tồn vẹn của dữ liệu.

1.1.2. Vai trị của mật mãhóa
Mật mã hay mã hóa dữ liệu (cryptography), là một công cụ cơ bản, thiết yếu
cho việc bảo mật thông tin. Mật mã đáp ứng được các nhu cầu về tính bảo mật
(confidentiality), tính chứng thực (authentication) và tính khơng từ chối (nonrepudiation) của một hệ truyền tin.
Từnhữngucầutrên,mãhóađóngvaitrịquantrọngtrongviệctraođổithơng tin hiện
nay. Các hệ mã hóa phải thực hiện được các vai trịsau:
- Cáchệmãhóaphảichedấuđượcnộidungcủavănbảnrõ(PlainText)đểđảm bảo sao
cho chỉ người chủ hợp pháp của thơng tin mới có quyền truy cập thơng tin, hay nói
cách khác là chống truy cập khơng đúng quyềnhạn.
- Tạo các yếu tố xác thực thông tin, đảm bảo thông tin lưu hành trên hệ thống
đến người nhận hợp pháp xácthực.
- Tổchứccácsơđồchữkýđiệntử,đảmbảokhơngcóhiệntượnggiảmạo,mạo danh để
gửi thơng tin trênmạng.
Ưu điểm lớn nhất của các hệ mã hóa là có thể đánh giá được độ phức tạp của
tính tốn mà “kẻ địch” phải giải quyết bài tốn để có thể lấy được thơng tin của dữ
liệu. Tuy nhiên mỗi hệ mã hóa đều có một số ưu và nhược điểm khác nhau, nhưng
nhờ đánh giá được độ phức tạp tính tốn, mức độ an tồn của mỗi hệ mã hóa mà ta
có thể ứng dụng cụ thể tùy theo yêu cầu về độ an toàn.
Mật mã (Cryptography) là khoa học nghiên cứu tìm ra các phương pháp nhằm
bảo đảm tính bí mật của bản tin, còn được gọi là bản rõ (Plain Text). Người mã hóa


5
cần áp dụng các phép biến đổi của mình để biến bản rõ thành bản mã (Cryptogram).
Quá trình biến đổi đó được gọi là mã hóa (Encryption). Q trình biến đổi ngược lại
từ bản mã thành bản rõ được gọi là giải mã (Deciphering). Để biến đổi q trình mã
hóa và giải mã người làm mật mã ln dùng khóa. Thơng thường khóa được gửi đi
bằng một phương pháp tin cậy nào đó, sau đó người ta sẽ sử dụng nó để tạo ra các
bản mã tức là các bản tin cần được bảo vệ.Ta có định ngĩa tốn học sau đây về một
hệ mật mã.

1.1.3. Các thành phần cơ bản của hệ mãhóa
Định nghĩa: Một hệ mã hóa là một bộ 5 (P, C, D, K, E), trong đó,
- P là một tập hợp hữu hạn các bản rõ (PlainText), nó cịn được gọi là khơng
gian bảnrõ.
- C là tập hợp hữu hạn các bản mã (CipherText), nó cịn được gọi là không
gian bản mã. Mỗi phần tử của C có thể nhận được bằng cách áp dụng phép mã hóa
Ek lên một phần tử của P.
- K là tập hợp hữu hạn các khóa hay cịn gọi là khơng gian khóa. Đối với mỗi
phần tử kϵK được gọi là một khóa (Key). Số lượng của khơng gian khóa phải đủ lớn
để “kẻ địch” không đủ thời gian để thử mọi khóa (phương pháp vétcạn).
- EvàDlầnlượtlàtậpluậtmãhóavàgiảimã.VớimỗikϵKcómộtquytắcmã

hóa

ek:

PC và một quy tắc giải mã tương ứng dkϵD. Mỗi ek: PC và dk: CP là những
hàm thỏa mãn điều kiện: dk(ek(x))=x với mọi bản rõxϵP.

Hình 1.1: Mơ hình mã hóa


6
1.2. Tiêu chuẩn để đánh giá hệ mãhóa
1.2.1. Độ an tồn của thuậttốn
Đối với các thuật tốn mã hóa, giải mã hiện đại, để phục vụ yêu cầu trong
Thương mại điện tử, chúng đều phải được cơng khai hóa,đều được cơng bố nơicơng
cộng. Độ an tồn duy nhất của hệ mật mã đó là ở khóa mã. Do đó khơng gian khóa
phải đủ lớn và việc lấy một mã khóa trong đó hồn tồn ngẫu nhiên, để chống lạitấn
cơng vétcạn.

Chúng ta biết rằng, các thuật toán khác nhau cung cấp mức độ an toàn khác
nhau, phụ thuộc vào độ phức tạp để phá vỡ chúng. Tuy nhiên, việc xác định được
thuật tốn mã hóa/giải mã, khơng phải lúc nào cũng đễ dàng, thậm chí có khi chúng
taphảimấtđếnhàngnămhoặclâuhơnnữachưachắcđãthànhcơng,chẳnghạnnhư mật mã
Vigenere. Trong các trường hợp đó, khơng gian khóa mã có thể khơng lớn lắm mà
việc thám mở vẫn vơ cùng khó khăn. Đối với mật mã truyền thống, việc xác định
đúng thuật tốn mã hóa coi như thành cơng được 50% khối lượng công việc. Người
ta gọi nhiệm vụ xác định thuật tốn mã hóa là " xác định mãpháp".
1.2.2. Tốc độ mã hóa và giảimã
Khi đánh giá hệ mã hóa phải chú ý đến tốc độ mã hóa và giải mã. Hệ mã hóa
tốt thì thời gian mã hóa và giải mã nhanh.
1.2.3. Phân phốikhóa
Có nhiều phương pháp khác nhau để thực hiện phân phối (hoặc trao đổi)
khóa mã tùy từng loại Hệ mật mã cụ thể. Trong các Hệ mật mã truyền thống,
việc trao đổi khóa chủ yếu là giấu khóa hoặc nhóm báo khóa vào ngay chính
trong bản mã, nhờ giữa hai người gửi và nhận đã có qui định trước nên sau khi
nhận được bản mã, người nhận dễ dàng biết được khóa mật mã đang được sử
dụng. Người ngồi cuộc khó có thể biết được qui ước này nên khó tìm được khóa
mã. Thuật tốn mã hóa/giải mã cũng được hai bên thống nhất trước, điều này làm
cho đối phương khó biết được khóa mã và thuật tốn mã. Khi đã khơng biết được
thuật tốn mã/giải mã thì đối phương làm sao giải được bản mã để đọc nội dung
thơng tin chứa trong đó. Nếu bí mật được thuật tốn mã/giải mã và khóa mã thuật
tốn thì độ an tồn của dữ liệu càng cao.


7
Đối với mật mã khóa đối xứng (symmetric key) hiện đại, chẳng hạn như DES,
3DES,IDEA(InternationalDataEncryptionAlgorithm),AES(AdvancedEncryption
Standard), v.v, do tính chất Thương mại hóa trên tồn Cầu, bắt buộc các thuật tốn
mã /giải mã phải được cơng khai hóa hồn tồn. Độ an toàn của các loại mật mã này

chỉ phụ thuộc vào khóa mã. Nếu khóa mã bị lộ thì có nghĩa là độ an tồn của hệ mật
đó khơng cịn tác dụng nữa. Do vậy, người ta phải đảm bảo giữ bí mật được khóa
mã/giải mã đó. Để đạt được u cầu này, một mặt, khơng gian khóa phải đủ lớn để
chống lại khả năng vết cạn. Mặt khác, khóa này phải được truyền đến nơi nhận bằng
kênh bí mật. Việc phân phối khóa bí mật thì chi phí sẽ cao và độ an tồn của khóasẽ
bị giảm đi. Hiện nay, người ta sử dụng tính chất của mật mã khóa bất đối
xứng(AsymmetricKey)đểtruyềnkhóamậtmãđốixứng.Mộtvídụđiểnhìnhcholý

luận

trên là Hệ mật mã PGP (Pretty GoodPrivacy).
1.3. Phân loại các hệ mậtmã
1.3.1. Mật cổđiển
1.3.1.1 Mã Vigenere và các đặc tính củanó
Mã lấy tên của Blaise de Vigenere, sống vào thế kỷ 16. Khác với các mãtrước,
mã VGR không thực hiện trên từng ký tự một,mà được thực hiện trên từng bộ m ký
tự (m là số nguyêndương).
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ã VGR nổi tiếng. Nó được gọi là hệ mã hóa nhiều vần chữcái
Giống như Caesar nhưng ở đây khóa được thay đổi theo chu kỳ độ dài khóa.
Định nghĩa 2:
Cho m là một số nguyên dương cố định nào đó. Định nghĩa P=C=K=(Z26)m
Với khóa K = (k1,k2, …,km), kiϵ{ a,b,c,...,z }; i = 1,2,...,m.Ta xác định:
ek (x1,x2,…,xm) =(x1+k2, x2+k2,….,xm+km) mod26
dk(y1,y2,…ym) = (y1-k1, y2-k2,….,ym-km) mod 26.


8

Trong đó, tất cả các phép tốn được thực hiện trong Z26 theo modulo26. 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 5 rồi
cộng với từ khóa theo modulo 26.
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

Chuyển sang ký tự ta có: VYQROCF.
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.
Tính chất:
Ta thấy, khóa có độ dài là m, nên các khóa có thể là 26m , 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. Nếu m khá lớn (chẳng hạnm
=20thìviệctìmkiếmkhóabằngphươngphápvétcạnlàkhóthànhcơng).Việcthám mã cũng
khá phức tạp. Thứ hai, từ khóa 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 tốt khác so với các hệ
mãhóađơnbiểu.Mộthệnhưvậyđượcgọilàhệmậtthaythếđabiểu.Việcthám


9
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. Vì vậy, hệ mật này đã được sử
dụng trong nhiều thập niên của thế kỷ 20 .

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 he t

i m e f o r a l l g o o d menLặ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 LE
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ự của khóa là một ký tự
trên cột của bảng đa biểu, khi đó tìm được ký tự 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 en

TA 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 TWMH F E M FE G Z V T L M R SH D N PR
Vậy nên, ta thu được bản mã là:
“GOXTWMHFEMFEGZVTLMRSHDNPR”
Chúng ta xem xét một vài đặc điểm. Trong từ “all” của bản rõ, xuất hiên 2 chữ
‘l’nhưngkhiđượcmãhóachúngthànhLvàM,chữ‘t’ởtrong“the”và“time”được mã hóa
thành M và E…Vì vậy, những ký tự giống nhau của bản rõ có thể mã hóa thành
những ký tự mã khác nhau, và những ký tự giống nhau của bản mã lại có thể được
tạo nên bởi các ký tự khác nhau của bảnrõ:



10
PLAIN TEXT LETTER
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
K
E
Y
W
O
R
D
L
E
T
T
E
R

H I J K L M N O P Q R S T U V WX Y Z A B C D E F G
I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
J K L M N O P Q R S T U V WX Y Z A B C D E F G H I
K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
L M N O P Q R S T U V W X Y Z A B C D E F G H I J K

M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
Q R S T U V WX Y Z A B C D E F G H I J K L M N O P
R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
S T U V WX Y Z A B C D E F G H I J K L M N O P Q R
T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
U V WX Y Z A B C D E F G H I J K L M N O P Q R S T
V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
WX Y Z A B C D E F G H I J K L M N O P Q R S T U V
X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
Z A B C D E F G H I J K L M N O P Q R S T U V W X Y
Hình 1.2: A polyalphabetic tableau


11
Giải mã:
Sự giải mã là quá trình ngược lại của mã hóa. Chúng ta viết dưới bản
mã với keyword được lặp lại, sau đó nhìn theo cột của keyword khi nào thấy ký tự
mãhóa,chiếusanghàngngangtasẽtìmraký

tựrõtươngứng.Vídụ,kýtựmãlàG,

kýtựkhóalàT,tanhìndọctheocộtTkhinàotìmthấyG,chiếusanghàngngangthì
hàngđólàcủakýtựN,vậynênbảnrõlàN.Tươngtựlầnlượtnhưvậytatìmrađược bảnrõ.
Ví dụ:
Ciphertext: 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
Keyword: T A B L E T A B L E T A B E T A B L E T A B L E

Paintext: 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
Tronghệmãhóanày,cósửdụngsựquayvịngmộtsốtronghệmãhóaCaesar.
Trongmỗicột,đạidiệnmộtphépmãhóaCaesarđơngiảnvớimộtphépdịchchuyển.
Chương trình mã hóa:
Chúng ta nhìn vào hàng đầu tiên trong tableau. Trong mỗi cột,A được miêu tả
bởi một ký tự khóa, B sẽ được miêu tả ký tự khóa cộng thêm 1, ngoại trừ cột cuối
cùng,nơinósẽđượcthaythếbởilýtựA.Csẽđượcmiêutảbởikýtựkhóacộngvới 2, ngoại trừ
2 cột cuối cùng.Paintext :P Ciphertext: C Keyword:K
Do đó,tacó:

C=[P+K-

1]mod26Vídụ:
Ta xét hàng đầu tiên P=13(M), K= 20(T) ,chúng ta sẽ có: C=[13+20-1]mod
26 =6 (F). Theo như trên, cột T và hàng M giao nhau tại F.
Nếu bản rõ là vector T% và khóa là vector K%, khi đó bản rõ sẽ được xác
định theo cơng thức:C%(X)=T%(I)+K%(KP)-1
IF C%(X)>26 THEN C%(X)=C%(X)-26
Q trình giải mã là sự ngược lại của giải mã, khi đó thay cơng thức
trên thành:C%(I)=T%(K)-K%(L)+1
IF C%(I)<0 THEN C%(I)=C%(I)+26


12
Nhận xét:
Ưu điểm: Mật mã VGR có tốc độ mã hóa/giải mã khá nhanh đặc biệt là nhờ có
bảng (gọi là bảng VGR) nên việc mã hóa/giải mã rất thuận lợi, nhanh chóng.
TrongmậtmãVGRnếuđộdàicủakhóamãtrùngvớiđộdàibảnthơngbáocần mã thì
người ta đã chứng minh được rằng, bản mã không thể bị phá vỡ .Tuy nhiên trong
thực hành người ta thường sử dụng khóa có độ dài ngắn, do tính thuận lợi của nó.

Đối với mã VGR, giả sử chữ e rất cao tần trong bản rõ tiếng Anh, nhưng qua
mã hóa chữ e có thể trở thành một, hai hoặc ba chữ cái khác tùy thuộc vào mã khóa.
Do vậy trong mật mã VGR các quy luật tần số của bản thông báo được “ san bằng”
và các qui luật về ngôn ngữ cũng bị “xóa” ở mức độ cao. Do đó việc xác định mã
phápcủahệmậtmãVGRkhókhănhơnnhiềusovớimậtmãchuyểnvị.Chínhvìvậy mật mã
VGR đã tồn tại trong thực tế suốt cả thế kỷ20.
Nhược điểm: Mật mã VGR được cho là bền vững trong cả một thế kỷ, nhưng
ngày nay các nhà phân tích mật mã thấy rằng nếu bản thơng báo đủ lớn (cỡ trên 200
kýtự)vàđộdàikhóađủngắn(nhỏhơn20kýtự)thìviệcphântíchtấncơngvàobản mã nhằm
tìm ra bản thơng báo là hồn tồn cóthể.
Ví dụ: Thám mã thủ công (Thực tế là thám mã bán thủ công)
Để minh họa cho việc thám bản mã bằng phương pháp Kasiski tốt nhất làchúng
ta sẽ tiến hành phân tích bản mã trên một số ví dụ cụ thể. Giả sử ta có bản mã sau
đây:
Bảng 1.1 Bảng mã
GFVTZ QVWM JTGQE SGKL

KNRXX ISAVN YIKVM

SSMDE ECJAJ

SNJII

KJRM KIDOB

ZXXZR BSWBS YKLEZ ILWX

LEJYZ

WTIID TUIRP


ZXHSF RVZVI LENII

YJMW

XHJY

GYSNJ ITZY
XRXT

LNEHR

WXWI KAEKN FJMYZ EDGK XVXH

LVEK XHWL

QTZRS GZRRH CHWW CHBX

GWIE

IXNVI

MFYM

AEKNF JMYIW WFC
Để thám mở được bản mã này, ta tiến hành các bước sau đây:


13
a. Xác định mã pháp

* Tần số đơn
Sau khi tính tần số đơn bản mã trên, ta có kết quả:
Bảng 1.2 Bảng tần số đơn

Tổng cộng 223 ký tự

Ký tự
A
B

Tần số
4
4

C

4

D

4

E
F
G

13
6
8


H
I

8
19

J
K

12
12

L
M

9
9

N
O

9
1

P
Q

1
3


R
S

10
10

T

7

U

1

V
W

14
14

X
Y

16
12

Z

11



14
Qua bảng tần số đơn của các ký tự trong bản mã ta thấy rằng: bản mã sử dụng
hết26kýtựvàtầnsốcóchênhlệchnhưngkhơngrõnétlắm.Tathửdùngtiêuchuẩn



để

kiểm tra sự chênh lệch tần số củachúng:
Ởđây: n  223; p 

1

; q  1

26

1
26



25
;
26

Ta thấy tần số cao nhất trong bảng là chữ I với tần số là 19, 19>19,65 tức là
tần số Max vượt ngưỡng trên của tiêu chuẩn. vậy dẫy tần số đơn trên vi phạm cận
trên. Tuy nhiên sự vi phạm này không rõ ràng. Ta tiếp tục tính tần số bộ đơi móc

xích.
Kết quả của việc tính tần số bộ đơi móc xích bản mã cũng cho ta đánh giá
tương tự (thực tế do độ dài bản mã không lớn lắm nên biểu hiện tần số bộ đơi móc
xích khơng được rõ ràng lắm) (ta khơng đưa ra kết quả tính tần số bộ đơi móc xích
ở đây). Bây giờ ta tìm trùng mã bộ ba trở lên.
Ta thấy bản mã có khá nhiều trùng mã bộ 3, bộ 4, bộ 6...
Ta lập bảng sau đây
Bảng 1.3. Mã trùng bộ 3,4,6
T

Bộ

T

1
2
3
4
5
6
7
8
9
10
11

EKN
EKN
AEKNFJMY
WWFC

VXHWLV
KLE
KLE
KLE
KVX
YSNJI
TZY

Vị trí

Vị

Khoản

trùng

trí

g cách

mã thứ

thứ

20
20
147
188
162
18

18
82
159
47
52

150
212
211
220
170
82
90
90
169
55
124

Nhân tử hóa khoảng
cách
(Các ước của

130
192
64
32
8
64
72
8

10
8
72

2,5,10,13,26,65,130
2,3,4,6,8,12,16,24,32,48,6
2,4,8,16,32,64
2,4,8,16,32
2,4,8
2,4,8,16,32,64
2,3,4,6,8,9,12,18,24,36,72
2,4,8
2,5,10
2,4,8
2,3,4,6,8,9,12,18,24,36,72


15
Dùng chương trình tính trùng mã các bộ để tìm hết được các trùng mã. Tuy
nhiên nếu thiếu một vài trùng mã khi độ dài bản mã lớn thì cũng khơng ảnh hưởng
nhiều đến dự đốn của ta.
Qua bảng trên, lưu ý đến cột 6, ta thấy rằng con số 2, 4,8 có mặt hầu
hếtởcácdịng, có nghĩa là hầu hết độ đo khoảng cách các trùng mã đều chia hết cho
2,4,8.Ta thấy rằng ở dòng 1 và dòng 9 (2, 5, 10, 13, 26, 65, 130 và 2, 5, 10)
khơngcómặtsố8.Vậycâuhỏiđặtralàsựvắngmặtsố8ở2dịng1và9làngẫunhiênhaykhơngn
gẫu nhiên? Ta thấy ở dòng 1 và dòng 9 đều tương ứng với khoảng
cáchcủatrùngmãbộ3.Vậycâuhỏivừanêuđượccụthểhóahơnnhưsau:Trongbảnmãđộdài2
23kýtựmàcó2trùnglặpbộ3thìđólàsựtrùnglặpngẫunhiênhaykhơngngẫunhiên?Tathấyx
ácsuấtđểhaiblockcủa3chữcáitrùngvớinhaumộtcáchngẫunhiên là: 1/263. Bây giờ, từ
223 ký tự (chữ cái) chúng ta chọn block đầu tiêncó3ký tự đứng liền nhau là 221

cách chọn. Vì block thứ 2 khơng trùng
vớiblockthứnhấtnêncó218blockthứ2nhưvậy.Tuynhiênnhưvậychúngtađãchọnmỗibl
ock hai lần. Do đó số các trùng mã bộ 3 xuất hiện ngẫu nhiên trong bản mãgồm
223 ký tự (về trung bình)là:
221.218
 1, 3706
2.263

Vậyviệccó2trùngmãbộ3xuấthiệnmàkhoảngcáchkhơngcóướccủa8được
coilàngẫunhiên.Vìvậychúngtacóthểnghĩngayrằng8chínhlàđộdàicủakhóa(4
và2cũngcómặtởtấtcảcácdịngnhưngđộdài2thìqngắn,độdàichukỳ4cũng ngắn nên
trong thực tế ít khi được sửdụng).
Chú ý:
Một cách tổng quát, số các trùng mã bộ i (i = 2, 3, 4,...) xuất hiện ngẫu nhiên
(độc lập) trong bản mã (dùng 26 chữ cái) độ dài N (N ≥ i) được tính theo cơng thức:
(N -i +1)(N-2i +1)
2.26i

(i)
N 

Cơngthứcnàyđượccoilàgiátrịtrungbìnhmàsốcáctrùnglặpbộixuấthiệnngẫu
nhiêntrongbảnmãdùng26chữcáivớiđộdàibảnmãlàN.


16
Để tính tần số định kỳ 8, ta viết bản mã như sau (bảng 8 cột và







223

dịng;

8 

trong đó 223 là số nguyên nhỏ nhất lớn hơn hoặc bằng 223 là số nguyênnhỏ
8 

8 

nhất lớn hơn hoặc bằng)
Bảng 1.4 Bảng tần số định kỳ
1
G
M
G
X
K
E
N
N
G
X
Y
X
T

P
Z
X
W
N
X
M
X
K
T
H
B
G
M
M

2 3
4
F V T
F
J T
K L E
I
S A
V M S
C J A
J
I
T
J

I
I
K I D
Z R B
K L E
K L E
I
I D
Z X H
V I
L
R X T
V X H
E H R
K A E
Y I
E
V X H
V X H
Z R S
C H W
X J
I
W I
E
Y A E
Y I W

5
Z

G
K
V
S
J
Z
K
O
S
Z
J
T
S
E
Z
J
W
K
D
W
W
G
W
X
L
K
W

6
Q

Q
N
N
M
G
Y
J
B
W
I
Y
U
F
N
Y
Y
X
N
G
L
L
Z
F
N
M
N
F

7
8

V W
E S
R X
Y I
D E
Y S
Y S
R M
Z X
B S
L W
Z W
I R
R V
I
I
J M
V L
W I
F
J
K V
V E
V Q
R R
C H
V I
F Y
F
J

C

Bây giờ ta tiến hành tính tần số đơn của 26 ký tự lần lượt theo từng cột. Ta có
bảng (Bảng 1.5 bảng tần số đơn của 26) sau đây:


17
Bảng 1.5 Bảng tần số đơn của 26

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

22
23
24
25
26

A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X

Y
Z

1

2

3

4

2

2
1

1

5

6
1

2
1

2

4
1


2

2
7

1
1
3
2

2
2
2
5

4
3

2
8
3

4
2

3
1

1


1
1

3
4
1

2
2
6

7
1
2
1
1
3

2
1
1
1

8

Tổng theo

2


1
4
2
1
2

1
1
2
1

2
1

2

1
2 3
4 1

4

1
2
4

1
1
6
1

1

5
1
1
3
3

1
5

1
2 5
1
4

1
1
4
1

5
1
3
2

2
3
2
1


4
4
4
4
13
6
8
8
19
12
12
9
9
9
1
1
3
10
10
7
1
14
14
16
12
11

Quabảngtầnsốđịnhkỳ(bảng1.5)tathấytầnsốcáckýtựtheocộtthểhiệnkhárõ.
Nếutacoimỗicộtlàmộtbảnmãthaythếđơnthìđólàmãpháp

tựrõđượccộngtheomơ-đun26vớimộthằngsốKinàođó(1≤K≤25).
Nhiệm vụ của chúng ta là tìm các hằng số Ki; i = 1,2,...,8
Trước hết ta đặt véctơ chuẩn hóa gồm 26 thành phần là:

Caesar,tứclàcácký


×