1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Hệ thống mật mã cổ điển

35 540 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 35
Dung lượng 903,99 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Hệ thống mật mã cổ điển

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - TRUYỀN THÔNG

Trang 2

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐIỆN TỬ - TRUYỀN THÔNG

Trang 3

MỤC LỤC

MỞ ĐẦU

Bảo mật an toàn thông tin là một vấn đề rất được coi trọng từ ngày xưa tới nay.Con người luôn muốn thông tin của mình khi được truyền đi sẽ không bị phát hiện bởimột đối tượng mà họ không mong muốn Từ đó, họ đã đưa ra rất nhiều phương pháp

để bảo mật thông tin Phương pháp sử dụng phổ biến nhất đó là họ sẽ chuyển bản tin gửi họ muốn gửi đi dưới dạng một bản tin khác mà đối tượng không mong muốn sẽ không thể hiểu được Qua quá trình lịch sử của loài người thì các phương thức và các

hệ thống bảo mật thông tin đã ra đời để đảm bảo tính an toàn thông tin mà con người mong muốn khi truyền đi Ban đầu thì các phương thức và hệt thống bảo mật thông tin

là khá là đơn giản, nhưng qua quá trình phát triển của thì độ an toàn trong bảo mật thông tin ngày càng được nâng cao và phức tạp Nhờ đó, thông tin được truyền đi đảmbảo độ an toàn rất cao

Trang 4

Nội dung

Trang 5

1. Dịch mã

Một trong những hệ thống mật mã sơm nhất được thiết kế bởi Julius Ceasar Người ta cho rằng ông đã muốn gửi đi 1 văn bản đã được mã hóa như là: “Nước Pháp được phân chia thành 3 phần”

Nhưng ông không muốn Brutus đọc được Ông đã dịch mỗi ký tự của đoạn tin 3 vị trí trong bảng chữ cái Theo đó a trở thành D, b trở thành E, c trở thành F… Nếu đó là ký

tự cuối cùng trong bảng chữ cái thì sẽ được dịch từ A Theo đó x trở thành A, y trở thành B, và z trở thành C Đoạn mã lúc đó là:

JDXOLVGLYLGHGLQWRWKUHHSDUWV

Công việc dịch mã sẽ được thực hiện bằng cách dịch ngược lại 3 ký tự

Chìa khóa để giải mã là 1 số nguyên k với 0<=k<=25 Công việc mã hóa được biểu diễn dưới sơ đồ: x  x + k

Việc giải mã là x  x – k Ví dụ, Ceasar đã sử dụng k=3 Việc giải loại mã trênđược chia thành 4 trường hợp:

1.1. Chỉ có văn bản được mật mã hóa:

Eve chỉ có văn bản đã được mã hóa Cách tốt nhất mà cô ấy nghĩ ra là miệt mài tìm kiếm, từ 26 keys có thể là chìa khóa của văn bản mật Nếu đoạn tin nhắn dài thêm vài ký tự nữa, thì không hề dễ chịu chút nào vì điều đó tương đương với việc sẽ có hơn 1 thông tin được đề cập trong văn bản mật mã Nếu bạn không tin có thể tìm thêm 1 vài từ 4 hoặc 5 ký tự và dịch chúng Một trường hợp như vậy được đề cập trong bài tập 1 Một trường hợp khác, nếu đoạn văn bản đủ dài, cần phải làm 1 bộ đếm tần số cho các chữ cái khác nhau

Ký tự e xuất hiện thường xuyên trong hầu hết văn bản bằng tiếng anh,nếu ký tự

L xuất hiện nhiều nhất trong văn bản mật mã từ đó có thể đoán đc là L đại diện cho e, với e=4 và L=11 key hợp lý có thể là k=11-4=7 Tuy nhiên với dịch mã phương pháp này chiếm nhiều thời gian hơn so với tìm kiếm thủ công, bên cạnh đó nó yêu cần 1 tin nhắn nhiều ký tự để có thể mã hóa được.( anything short, such as this, might not contain a common symbol, thus changing

sraristical counts(éo hiểu đoạn này nghĩa gì))

1.2. Biết được văn bản gốc:

Nếu bạn biết chỉ 1 ký tự trong văn bản gốc cùng với 1 ký tự tương ứng trong văn bản đc mã hóa, bạn có thể suy luận được key của đoạn văn bản đó Ví dụ, nếu biết t(=19) mật mã hóa thành D(=3), vậy key sẽ là k=3-19= -16= +10( mod 26)

1.3. Chọn 1 ký tự trong plaintext(1 hình thức của 1 văn bản mật mã có thể hiểu được):

Chọn ký tự a(=0) với tư cách là plaintext Bản mật sẽ cho us khóa Ví

dụ, nếu trong bản mật là H(=7) thì key là 7

Trang 6

1.4. Chọn 1 ký tự trong ciphertext:

Lựa chọn ký tự A với tư cách là ciphertext Dựa vào bản gốc sẽ tìm được key của bản mật Ví dụ, nếu trong bản gốc tương ứng với A là h thì key sẽ là -7 = 19(mod 26)

2 Mật mã Affine

Mật mã Affine là một dạng mật mã thay thế dùng một bảng chữ cái, trong đó mỗi chữ cái được ánh xạ tới một số sau đó mã hóa qua một hàm số toán học đơn giản Một phép dịch Caesar là mật mã Afin, trong đó các chữ cái được mã hóa với hàm (x+b) mod (26), với b là bước dịch

• Mô tả

Trong mật mã Affine, đầu tiên bảng chữ cái của thông điệp cần mã hóa có kích thước

m sẽ được chuyển thành các con số tự nhiên từ 0 m-1 Sau đó dùng một hàm mô đun

2. Biết bản rõ: Người phân tích không chỉ truy cập được một vài bản mã mặt kháccòn biết được bản rõ

3. Lựa chọn bản rõ: Người phân tích không chỉ truy cập được bản mã và kết hợp bản rõ cho một vài bản tin, nhưng mặt khác lựa chọn bản rõ đã mã hoá

4. Lựa chọn bản mã Người phân tích có thể chọn bản mã khác nhau đã được mã hoá và truy cập bản rõ đã giải mã

3 Mật mã Vigenre

Mật mã Vigenre: Một biến đổi của mã dịch được sáng tạo vào thế kỉ 16 Nó

thường được liên tưởng tới Vigenere, dù phương pháp mã hóa của Vigenere là phức tạp hơn Trong thế kỷ XX, hệ thống mật mã này được cho là an toàn, mặc dù Babbage và Kasold đã cho thấy làm thế nào để tấn công nó trong thế kỷ XIX Trong những năm 1920, Friedman đã phát triển phương pháp bổ sung để phá vỡ mật mã này và các mật mã liên quan

Chìa khóa của mật mã là một vector,đầu tiên chọn chiều dài khóa,rồi chọn vector

có chiều dài đó

Các giá trị là các số nguyên từ 0 đến 25.VD:k=(21,4,2,19,14,17)

Trang 7

Để giải mã bản mã,ta lấy chữ cái đầu tiên của bản mã dịch đi 21,chữ cái thứ 2 dịch

đi 4,tương tự đến chữ cái thứ 6 dịch 17,chữ cái thứ 7 dịch 21 …

Cách giải mã:tìm chiều dài khóa và tìm khóa

Tìm chiều dài khóa:

-Viết bản mã 2 lần song song nhau,lần thứ 2 dịch đi 1 số vị trí so với lần 1(có thể

là chiều dài khóa).VD:dịch 2

Ta có dịch 5 là có số kí tự trùng nhiều nhất,đây nhiều khả năng là chiều dài khóa

Giải thích cách tìm chiều dài khóa:

Tần suất xuất hiện các chữ cái tiếng Anh: (theo phần trăm)

Đặt tần suất xuất hiện các chữ cái tiếng Anh vào vector:

Trang 8

Tương tự tích của Ai với Ai cũng cho kết quả là 066.Tích của Ai và Aj sẽ thấp đi khi Ai khác Aj

Phương pháp thứ nhất:Ví dụ ta xác định được chiều dài khóa là 5.Nhìn

vào chữ cái thứ 1,6,11 xem chữ cái nào xuất hiện thường xuyên nhất.Ta có:

Xuất hiện nhiều nhất là G,sau đó đến J,K,C.Nếu J=e thì là dịch 5,khi đó

C=x.Nhưng nó sẽ làm tần suất xuất hiện cao bất thường của x trong bản rõ.Tương tự,K=e là P=j và Q=k,cả 2 có tần suất quá cao.Nếu C=e thì V=x,không đúng trong trường hợp này.Từ đo,ta chọn G=e,yếu tố đầu tiên của khóa là 2=c.Làm tương tự,ta đoán khóa là {2,14,3,4,18} = {c,o,d,e,s}

Phương pháp thứ 2:Để tìm yếu tố thứ nhất của khóa,đếm số lần xuất hiện

của chữ cái thứ nhất,thứ 6,11…và đặt chúng vào vector

V = (0,0,7,1,1,2,9,0,1,8,8,0,0,3,0,4,5,2,0,3,6,5,1,0,1,0)

Nếu ta chia cho 67(là tổng số lần xuất hiện),ta có vector

W = (0, 0, 1045, 0149, 0149, 0299, , 0149, 0)

Trang 9

Ta đã biết chiều dài khóa là 5,nên chữ cái thứ 1,6,11 đều được dịch 1 lương nhất định.Từ đó chúng như 1 đoạn ngẫu nhiên cùng được dịch 1 đoạn.Tần suất xuất hiện của chúng,được thể hiện bởi vector W,nên giống với vector Ai,với i

là giá trị dịch bởi chữ cái đầu tiên

Xác định i:Nhắc lại Ai*Aj max khi i=j,và W giống Aj.Nếu ta tính W*Aj với 0=<j=<25,giá trị lớn nhất khi i=j,ta có các giá trị: 0250, 0391, 0713, 0388,

ký tự khác( hoặc có thể là chính nó) Chính xác hơn, 1 sự hoán vị của bảng chữ cái là

sự lựa chọn và ứng dụng được vào trong văn bản gốc cần mã hóa Trong trang giải đố,khoảng cách giữa các từ thường được giữ nguyên, điều này có lợi cho việc giải đố, từ khi kiến thức của cấu trúc từ trở nên hữu dụng Tuy nhiên, để tăng độ bảo mật, tốt hơnhết là bỏ đi khoảng cách giữa các từ Dịch mã và mã Affine là 1 trường hợp của Thế

mã Mọi người đều biết rằng thế mã có thể bị bẻ khóa bằng cách đếm tần suất xuất hiện của các chữ cái Tuy nhiên, để xử lý chúng có thể phức tạp hơn

Hãy cùng theo dõi ví dụ sau Thomas Jefferson muốn gửi 1 tin nhắn bí mật đến Ben Franklin, dĩ nhiên ông không muốn người anh đọc được nếu họ bắt được Vì thế ông đã mã hóa tin nhắn của mình sử dụng thế mã Thật may là Ben Franklin biết đượccách hoán vị ký tự mà Thomas đã dung, thế nên ông có thể dễ dàng đảo ngược lại quá trình để thu được đoạn tin nhắn gốc

Bây giờ giả sử cta đang làm việc cho Government Code và Cypher School ở anh vào năm 1776 và họ có 1 đoạn mật mã cần phải decode

LWNSOZBNWVWBAYBNVBSQWVUOHWDIZWRBBNPBPOOUWRPAWXAWPBWZWMYPOBNPBBNWJPAWWRZSLWZQJBNVIAXAWPBSALIBNXWABPIRYRPOIWRPQOWAIENBVBNPBPUSREBNWVWPAWOIHWOIQWAB

Trang 10

JPRZBNWFYAVYIBSHNPFFIRWVVBNPBBSVWXYAWBNWVWAIENBVESDWARUWRBVPAWIRVBIBYBWZPUSREUWRZWAID IREBHWIATYVBFSLWAVHASUBNWXSRVWRBSHBOTESDWARWZBNPBLNWWDWAPRJHSAUSHESDWARUWRBQWXSUWVZWVBAYXBIDWSHBNWVWWRZVIBIVBNVAIENBSHBNWFWSFOWBSPOBWASABSPQSOIVNIBPRZBSIRVBIBYBWRWLESDWARUWRBOPJIREIBVHSYRZPBISRSRVYXNFAIRXIFOOTPRZSAEPRIKIREIBVFSLWAVIRVYXNHSAUPVBSVWMJSVBOICWOJBSWHHWXBBNWIAVPHWBJPRZNPFFIRWW

Tần suất xuất hiện của các ký tự trong bản mật trên:

Ta có thể khẳng định rằng W=e, nhưng nếu ra mở rộng bảng để bao gồm những ký tự có tần suất xuất hiện thấp, ta sẽ tháy rằng W sẽ lien hệ với các ký tự khác ngoài e ra Sau đây chúng ra sẽ xác nhận lại phán đoán của ta là đúng hay sai

Các ký tự a,i,o có khuynh hướng phủ định các ký tự còn lại Nếu ta nhìn vào dòng ký tự R, ta sẽ thấy rằng R thường xuyên ko đặt trước S,I,A,N Nhưng nhìn vào cột R thấy rằng R theo sau S,I,A là khá thường xuyên Vì thế chúng ta có thể đoán

Trang 11

rằng R không thể là a,i,o V và N cũng loại vì chúng yêu cầu a,i, hoặc o đứng trước W=e là khá thường xuyên Sau đây, cta sẽ thấy rằng phù hợp nhất với a,i,o là S,I,P.

Ký tự n thuộc trên dưới 80% của những ký tự mà đứng trước nó là 1 nguyên

âm Từ việc ta đã thực sự biết rằng W,S,I,P là những nguyên âm, cta có thể thấy rằng

R và A có khả năng là cao nhất Ta phải đợi để xem trường hợp nào là đúng

Ký tự h thường xuyên xuất hiện trước e và hiếm khi sau nó Điều này khẳng định rằng N=h, 2 ký tự hay đi với nhau nhất là t và h, theo bảng trên thì BN xuất hiện

20 lần, vì vậy B sẽ đại diện cho t

Trong bảng tần suất xuất hiện trên, còn lại r và s, và chúng có thể bằng V hoặc

A hoặc R Từ r đứng cặp với nhiều hơn với nguyên âm và s cặp nhiều với phụ âm, ta thấy răng V phải là s và r được biểu diễn bằng A hoặc R

Tổ hợp rn xuất hiện nhiều hơn nr, và AR xuất hiện nhiều hơn so với RA, vì thế nên ta có thể đoán rằng A=r và R=n

Cta có thể tiếp tục phân tích và xác định rằng S=o, I=i và P=a là sự lựa chọn hợp lý nhất Tới thời điểm hiện tại thì ta đã xác định được 382/520 ký tự trong đoạn tin nhắn

Tại đây, kiến thức về ngôn ngữ học, những ký tự xuất hiện nhiều t2 và khả năng phán đoán là cần thiết để hoàn thành những ký tự còn lại Ví dụ, dòng thứ nhất 1

sự lựa chọn hợp lý đó là Y=u từ truths xuất hiện Tất nhiên sẽ có nhiều khả năng xảy

ra và những giả thuyết đó cần đc kiểm tra cho tới khi tìm đc 1 khả năng đúng nhất

5 Mật mã Sherlock Holmes

Sherlock Holmes (phát âm tiếng Việt: Sê-lốc Hôm) là một nhân vật thám tử hư cấu vào cuối thế kỉ 19 và đầu thế kỉ 20, xuất hiện lần đầu trong tác phẩm của nhà văn Arthur Conan Doyle xuất bản năm 1887 Ông là một thám tử tư ở Luân Đôn nổi tiếng nhờ trí thông minh, khả năng suy diễn logic và quan sát tinh tường trong khi phá những vụ án mà cảnh sát phải bó tay Nhiều người cho rằng Sherlock Holmes là nhân vật thám tử hư cấu nổi tiếng nhất trong lịch sử văn học và là một trong những nhân vậtvăn học được biết đến nhiều nhất trên toàn thế giới

Suy luận kiểu Holmes

Trong tập Chiếc nhẫn tình cờ, Holmes có viết một tiểu luận theo đó "Từ một giọt nước, một người suy luận logic có thể nêu được khả năng đó là một giọt nước Đại Tây Dương hay một giọt nước từ thác Niagara" Những vụ án do Holmes điều tra thường bắt đầu với việc ông thể hiện khả năng suy luận tuyệt vời của mình như đoán ra thân thế và nghề nghiệp của khách hàng mà không cần hỏi thông tin từ họ

Trang 12

Phương pháp suy luận của Holmes thường là đi từ những chứng cứ quan sát được đến ý nghĩa của những chứng cứ đó, tức là "Nếu có A thì có B" Ví dụ trong truyệnngắn Vụ tai tiếng xứ Bohemia, sau khi nhìn thấy Watson, Holmes suy luận được rằng ông này mới bị ướt sũng và có một cô hầu gái vụng về và bất cẩn nhất trên đời, ông giải thích cho lập luận của mình như sau:

• Phía bên trong lớp da chiếc giày bên trái của bác sĩ Watson có sáu vết xước gầnnhư song song Rõ ràng là những vết xước đó gây ra do một người bất cẩn khi chà xát xung quanh mép gót giày để lau bùn

• Người lau giày cho bác sĩ chỉ có thể là người hầu gái của ông

• Người lau bùn mà để lại những vết xước như vậy hẳn phải là người bất cẩn và vụng về

• Đôi giày có nhiều bùn đến mức phải lau như vậy chỉ có thể là người mang nó vừa phải đi trong thời tiết giá lạnh và ẩm ướt

Ở đây "A" là những vết xước nhìn thấy trên đôi giày của bác sĩ Watson, còn "B" làviệc ông này bị ướt và người hầu gái bất cẩn

Sự thành công trong suy luận của Holmes cũng còn do ông có phương pháp nghiêncứu hiện trường vụ án rất khoa học và cẩn thận, và do ông rất am hiểu những lĩnh vực liên quan như pháp y hay chất độc Theo Holmes, những kết luận logic của ông thực ra là "đơn giản" và "hiển nhiên" Điều quan trọng trong những suy luận của Holmes là phải triệt tiêu được càng nhiều khả năng xảy ra càng tốt Bác sĩ Watson đôi khi cũng thử áp dụng phương pháp này nhưng ông thường sai trong hầu hết các trường hợp

6 Mã Playfair và mã ADFGX

Mã Playfair và mã ADFGX đã được người Anh và Đức sử dụng trong thế chiến thứ nhất Theo các tiêu chuẩn hiện đại thì cách mã hóa của hai mật mã này không đảm bảođược độ an toàn, nhưng tại thời điểm đó thì mã hóa theo cách này là rất an toàn

6.1. Mã Playfair

Hệ thống mã Playfair được phát minh bởi Sir Charles Wheatstone, ông ấy đã sử dụng tên người bạn của ông ấy để đặt cho nó Ngoài việc sử dụng nó trong thế chiến 1, quânđội Anh đã sử dụng nó ở chiến tranh Boer

Chìa khóa là một từ, ví dụ, playfair Những kí tự lặp lại nhiều lần thì bỏ đi kí tự xuất

hiện từ lần thứ hai, sẽ được playfir, và những kí tự đó là những kí tự bắt đầu ở ma trận5x5 Những ô trống còn lại trong ma trận là điền những kí tự còn lại trong bảng chữ cái theo thứ tự alphabet, i và j sẽ được coi như là một từ Ma trận đó được sử dụng để

mã hóa

Trang 13

Giả sư bản tin ban rõ là meet at the schoolhouse Bỏ dấu cách và chia văn bản thành

các nhóm chứa hai kí tự liền nhau Nếu từ nào xuất hiện liền nhau trong một nhóm, chèn x và sửa lại nhóm đó Thêm x tại điểm kết thúc vào nhóm cuối cùng, nếu cần thiết Bản tin rõ của chúng ta sẽ trở thành

me et at th es ch ox ol ho us ex

Bây giờ sẽ sử dụng ma trận để mã hóa hai kí tự trong mỗi nhóm theo nguyên lí dưới đây:

• Nếu hai kí tự là không cùng một hàng hoặc một côt, thay thế mỗi kí tự đó bằng

kí tự cùng hàng với kí tự đó và cùng cột với kí tự kia Ví dụ, et thành MN, do

M là cùng hàng với e và cùng cột với t, và N là cùng hàng với t và cùng cột vớie

• Nếu hai kí tự đó cùng một hàng, thay thế từng kí tự đó bằng kí tự ngay phía sau

ở bên phải nó, kí tự cuối cùng của hàng được thay bởi kí tự đầu tiên của hàng

đó Ví dụ, me thành EG.

• Nếu hai kí tự là cùng một cột, thay thế kí tự đó bởi từ ở ngay phía bên dưới nó,

từ cuối cùng của cột sẽ được thay thế bằng từ đầu tiên của cột đó Ví dụ, ol

thành VR

Khi đó ta sẽ được bản mã

EG MN FQ QM KN BK SV VR GQ XN KU

Để giải mã, làm ngược lại các bước trên

Hệ thống không chịu được một cuộc tấn công với tần suất lớn do sự xuất hiện của các

tổ hợp từ khác nhau (tổ hợp hai từ) trong tiếng anh là đã được thống kê

Tất nhiên, chúng ta chỉ cần tìm kiếm những tổ hợp hay xuất hiện; họ có những mô

hình tương đương cho những từ hay xuất hiện trong tiếng anh: th, he, an, in, re, es,…

Hơn nữa, sửa đổi một chút trong thống kê đó sẽ cho kết quả nhanh hơn Ví dụ, hai tổ

hợp re và er là rất giống nhau Nếu cặp đôi IG và GI cùng có trong bản tin mã hóa, thì

đó là một gợi ý tốt rằng e, i, r, g là các góc của một hình chữ nhật trong ma trận Một

điểm yếu khác là mỗi từ rõ là chỉ có 5 khả năng từ mã tương ứng Do đó, trừ khi từ

Trang 14

khóa là dài, một vài hàng của ma trận là có thể xác định Việc quan sát như thế này cho phép phá vỡ hệ thống mật mã chỉ với tấn công từ một bản tin mã hóa.

6.2. Mật mã ADFGX

Mã ADFGX được tạo thành như sau Đặt các kí tự của bảng chữ cái vào ma trận 5x5

Từ i và j coi như là một, cột của ma trận được kí hiệu bởi các từ A, D, F, G, X Ví dụ,

ma trận có thể là

Mỗi kí tự ban đầu là được thay thế bằng kí hiệu ở hàng và cột của nó Ví dụ, s thành

FA, và z thành DG Giả sử bản tin rõ là

Bây giờ đặt lại các cột sao cho các kí hiệu được sắp xếp theo thứ tự trong bảng chữ cái

sẽ được:

Trang 15

Cuối cùng, bản tin mã hóa thu được bằng cách đọc từ trên xuống dưới các hàng( bỏ qua các kí hiệu) theo thứ tự:

Giải mã là rất dễ, miễn là bạn biết từ khóa Từ độ dài của từ khóa và độ dài của bản

mã, độ dài của mỗi cột là được xác định Các kí tự được đặt vào các cột, các cột được đặt lại theo từ khóa Sử dụng ma trận ban đầu khi đó sẽ khôi phục được bản tin rõ

Ma trận ban đầu và từ khóa là thường xuyên thay đổi, gây ra khó khăn rất lớn cho phân tích mật mã, do đó mà chỉ có một số lượng hạn chế bản mã có sẵn cho bất kỳ tổ hợp nào Tuy nhiên, hệ thống đã bị tấn công thành công bởi nhà thám mã người Pháp Georges Painvin, người đã giải mã một số lượng lớn bản tin thực tế

Đã có một kĩ thuật được sử dụng ở đây Giả sử biết được một vài kí tự ban đầu giống nhau từ hai bản mã Thì một phỏng đoán hợp lí về hai bản rõ sẽ cho phép tìm được một vài kí tự Điều này có ý nghĩa rằng một vài từ hay xuất hiện ở trong các cột của trong một văn bản là giống với những bản khác Nghiên cứu các bản mã và tìm ở những nơi được phép Những từ này có thể sẽ là bắt đầu của các cột Nếu điều này là đúng, chúng ta sẽ biết được số cột của ma trận Chia các kí tự của bản mã ma trận dựa trên số cột của ma trận Cho bản mã hóa thứ nhất, một vài cột sẽ có một độ dài nhất định và những cột khác có thể ngắn hơn Những cột ngắn hơn sẽ là cột bắt đầu, nhữngcột còn lại là ở cuối cùng Lặp lại với bản mã thứ hai Nếu cột dài ở chung ở cả hai bản mã, nó là cột bắt đầu Nếu cột dài ở một bản mã và không có ở bản khác, nó là gần ở giữa Nếu cột ngắn ở cả hai bản mã, nó là cột ở phía cuối Đến thời điểm này, thử một vài từ vào cột, nhưng chỉ một số kí tự hạn chế Những kí tự này có khả năng đúng rất cao

Mã ADFGX là được chọn bởi những kí hiệu mã Morse là rất khó sử dụng Cuối cùng,

mã ADFGX là được thay thế bằng mã ADFGVX, nó sử dụng ma trân 6 x 6 Cho phép

sử dụng tất cả các kí tự và các số

7 Block Ciphers

Trong những hệ thống mật mã đã kể trên, khi thay đổi một từ trong bản rõ sẽ chỉ chínhxác một kí tự trong bản mã thay đổi Trong mã dịch, Affine, và mã thế, một kí tự trong bản mã thường có chính xác một kí tự trong bản rõ Điều này rất dễ cho việc tìmkhóa sử dụng phân tích tần số xuất hiện Trong hệ thống Vigenere, sử dụng một khối

Trang 16

kí tự, tương ứng với độ dài của từ khóa, tạo ra nhiều khó khăn khi phân tích tần số xuất hiện, nhưng vẫn có thể, vì không có sự tương tác trong mỗi khối Mã khối tránh những vấn đề này bằng cách mã hóa từng khối của một vài kí tự hoặc số một cách đồng loạt Một sự thay đổi của một ký tự trong khối kí tự ban đầu có khả năng làm thay đổi toàn bộ các kí tự trong khối kí tự mã tương ứng.

Mã Playfair trong mục 2.6 là một ví dụ đơn giản của mã khối, do nó là khối chứa hai

kí tự và mã hóa chúng thành những khối chứa hai kí tự Một sự thay đổi của một kí tự trong cặp đôi ban đầu luôn tạo ra sự thay đổi tại ít nhất một kí tự, và thông thường là

cả hai, của cặp đôi kí tự mã Tuy nhiên, khối của hai kí tự là có độ an toàn rất thấp, và khi thực hiện phân tích tần suất, là thường thành công

Những hệ thống mã hóa hiện đại được xem xét sau này là mã khối Ví dụ, DES hoạt động dựa trên mã khối 64 bit AES là sử dụng mã khối 128 bit RSA là sử dụng khối

có độ dài vài trăm bit, độ dài của mã phụ thuộc vào modul sử dụng Tất cả những khốinày là đủ dài để đảm bảo an toàn trước các cuộc tấn công qua cách phân tích tần suất.Cách thông thường để sử dụng mã khối là chuyển những khối của bản tin rõ sang bản tin mã, độc lập và tại một thời điểm Cái này được gọi là chế độ electronic codebook Tuy nhiên, có cách sử dụng khác là liên hệ ngược từ những khối mã đã được mã hóa đến những khối của bản tin rõ Điều này chế độ mã hóa khối chuỗi (CBC) và chế độ hoạt động mã hóa ngược

Trong mục này, chúng ta thảo luận về mã Hill là mã khối được phát minh vào năm

1929 bởi Lester Hill Nó dường như là không được ứng dụng trong thực tế nhưng nó

có ý nghĩa quan trọng là rằng nó là có thể là mã đầu tiên sử dụng phương pháp đại số (đại số tuyến tính, số học modula), một phương pháp quan trọng trọng mật mã Về việc đó chúng ta sẽ xem xét ở chương sau, phương pháp đại số bây giờ chiếm giữ vị trí trung tâm trong vấn đề này

Chọn một số nguyên n, ví dụ n=3 Khóa là một ma trận M có kích cỡ n x n Ví dụ,

Văn bản là được viết thành một dãy trong các vector hàng Ví dụ, nếu văn bản là abc, chúng ta sẽ thay đổi chúng thành một vector hàng (0, 1, 2) Để mã hóa, nhân vector với ma trận (theo truyền thống, ma trận là ở bên phải của phép nhân) và chia cho 26:

Bởi vậy, bản mã là AXW(Thực tế là các từ đầu tiên không thay đổi là ngẫu nhiên, không phải một điểm yếu của phương pháp này)

Trang 17

Để giải mã, chúng ta cần xác định ma trận M thỏa mãn

Điều này có ý nghĩa là một ma trận N với số nguyên ban đầu thỏa mãn MN=I(mod 26), ma trận I là ma trận đơn vị

Ví dụ, det(M)=-3 Ma trận đảo của M là

Vì 17 là đảo của -3 mod 26, thay -1/3 bằng 17 và chia lấy phần dư cho 26 ta được

Người đọc có thể kiểm tra lại MN=I(mod 26)

Để giải mã ta nhân với ma trận N, như sau:

Phương pháp tổng quát với ma trận n x n, chuyển bản tin rõ thành các khối n kí tự và thay đổi mỗi khối đó sang một vector chứa n số nguyên từ 0 tới 25 bằng cách chuyển

từ a = 0, b = 1, …, z = 25 Ví dụ, với ma trận M ở trên, giả thiết bản tin rõ là

Blockcipher.

Bản tin rõ này trở thành( chúng ta điền thêm từ x vào khoảng trống cuối cùng)

Bây giờ nhân mỗi vec tơ với ma trận M,lấy kết quả là phần dư của phép chia cho 26,

và đổi về kí tự

Bản tin mã là

RBZMUEPYONOM

Ngày đăng: 28/02/2017, 12:26

TỪ KHÓA LIÊN QUAN

w