Tải bản đầy đủ

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

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 độ chuyên
mônđểápdụngtrongcácbàitoá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à
hoà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 Nguyên đã 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 quá 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 quá 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 Nguyên, 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 toàn củathuậttoá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 toán 1 khóa k có độ dài 16ký tự .................................................... 51
2.3.2. Thuật toán 2 khóa k có độ dài 21ký tự .................................................... 53
2.3.3. Thuật toá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ậttoánmãhóađãđượcsửdụngrấtphổbiếntrênthếgiới
đểđảmbảoantoànthôngtin.Ngoà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ậttoá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 toá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 toá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 toá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àitoá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 toà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, ngoà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 yê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 toà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, quân 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
toà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.
Ngoài ra mã hóa còn đảm bảo tính toà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ữngyêucầ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 toán mà “kẻ địch” phải giải quyết bài toá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 toán, mức độ an toà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). Quá 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 quá trình mã
hóa và giải mã người làm mật mã luôn 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 toá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 toàn của thuậttoán
Đối với các thuật toá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 toà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 đó hoàn toà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 toá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 toá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 toá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 ngoài cuộc khó có thể biết được qui ước này nên khó tìm được khóa
mã. Thuật toá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 toán mã. Khi đã không biết được
thuật toá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 toán mã/giải mã và khóa mã thuật
toán thì độ an toà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 toàn Cầu, bắt buộc các thuật toán
mã /giải mã phải được công khai hóa hoàn toà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 toà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 yê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 toà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 toá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
Quá 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à hoàn toà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ự đoá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ìquángắ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ý


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×