Tổng quan Mật mã là một lĩnh vực khoa học chuyên nghiên cứu về các phương pháp và kỹ thuật đảm bảo an toàn và bảo mật trong truyền tin liên lạc với giả thiết sự tồn tại của các thế lực
Trang 1Mật mã hóaNhóm sinh viên lớp Đ6-ĐTVT2
Trang 31 Tổng quan
Mật mã là một lĩnh vực khoa học chuyên nghiên cứu về các phương pháp và kỹ thuật đảm bảo an toàn và bảo mật trong truyền tin liên lạc với giả thiết sự tồn tại của các thế lực thù địch, những kẻ muốn ăn cắp thông tin để lợi dụng và phá hoại
Mật mã (cryptology) thường được quan niệm như sự kết hợp của 2 lĩnh vực con:
• Sinh, chế mã mật (cryptography): nghiên cứu các kỹ thuật toán học nhằm cung cấp các công cụ hay dịch vụ đảm bảo an toàn thông tin
• Phá giải mã (cryptanalysis): nghiên cứu các kỹ thuật toán học phục vụ phân tích phá mật mã và/hoặc tạo ra các đoạn mã giản nhằm đánh lừa bên nhận tin
Trang 53 Mô hình truyền tin mật cơ bản
Trang 61 Mã CAESAR
Trong mật mã học, mật mã Caesar, còn gọi là mật mã dịch chuyển, là một trong những mật mã đơn giản và được biết đến nhiều nhất
Đây là một dạng của mật mã thay thế.
Nơi nhận sẽ giải mã bằng cách trừ 1 cho các mã nhận được trước khi tra bảng mã ASCII.
Thường được kết hợp với một mã phức tạp hơn, ví dụ như mật mã Vigenère, và hiện nay vẫn được dùng trong các ứng dụng hiên đại như mã ROT13.
Vì giải thuật tạo mã quá đơn giản nên bản tin có thể được giải mã một cách dễ dàng mà không cần biết trước khóa.
Trang 71 Mã CAESAR
Ví dụ: bước dịch chuyển là 3:
Ta thu được chuỗi:
WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
Với dòng dữ liệu cần mã hóa:
Với dòng dữ liệu cần mã hóa:
Plain : 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 Cipher: 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
Trang 81 Mã CAESAR
Một phương pháp khác để tạo mã mẫu tự đơn có tên là Polybius square
Mẫu tự I và J được kết hợp lại và được xử lý như một từ đơn, để tổng số mẫu tự là 25 25 mẫu tự lại được chia thành dãy 5x5 Mỗi mẫu tự sẽ được mã bởi một cặp số tương ứng với hàng và cột trong bảng mã
Polybius square
Trang 91 Mã CAESAR
Bảng mã Polybius square
Ví dụ trước: THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
Mã Polybius square là: 44325114544231522124432533 414322
Trang 102 Mã đa mẫu tự
Mục đích: Để tránh việc lặp lại các ký tự trong bản mật mã
Mỗi ký tự cũng được thay bởi một ký tự khác, nhưng các ký tự giống nhau không phải được thay bằng một ký tự duy nhất, mà sẽ được thay bằng các ký tự khác nhau tùy theo vị trí của nó
Thí dụ của mã đa mẫu tự là mã Vigenère
Trang 112 Mã đa mẫu tự
Mã Vigenère
• Mã hóa văn bản bằng cách xen kẽ một số phép mã hóa Caesar khác nhau dựa trên các chữ cái của một từ khóa Nó là một dạng đơn giản của mật mã thay thế dùng nhiều bảng chữ cái
• Kết hợp xen kẽ vài phép mã hóa Caesar với các bước dịch khác nhau
• Để mã hóa, ta dùng một hình vuông Vigenère (trang sau) Trong quá trình mã hóa, tùy theo từ khóa mà mỗi thời điểm ta dùng một dòng khác nhau để mã hóa văn bản
Trang 122 Mã đa mẫu tự
Bảng Vigenère
Trang 13Ký tự thứ i của bản rõ (p[i]) được mã hóa thành:
C[i] = (p[i] + k[i mod m] ) mod 26
Thí dụ: Dùng mảng ở trên để thay các chữ THE trong bản
tin ở các vị trí 25, 54 và 104 Ta lập bảng thay thế như sau:
Các ký tự THE ở các vị trí khác nhau trong bản tin đã lần lượt
được thay bởi SHF, VKI và TIG.
Ký tự cần thay Vị trí i i mod 26 Vị trí j Ký tự phải thay
Trang 142 Mã đa mẫu tự
Ý tưởng của phương pháp giải mã Vigenere gồm 3 bước như sau:
• Đi tìm chu kỳ p (độ dài khoá)
• Chia tách MÃ thành p đoạn phân mã, mỗi đoạn bao gồm các chữ ở vị trí kp+i (k=1,2,3 ; i=0,p-1), tức là được mã hoá theo bảng thế với chữ khoá chỉ số i.
• Dùng phương pháp một bảng thế đã biết để giải từng đoạn phân mã (cụ thể là
với mã Vigenere chỉ cần một phép dịch đúng).
Người ta sử dụng khái niệm IC (Index of Coincidence) để tính chu kỳ p.
Theo định nghĩa, IC xác định qua công thức:
IC =
Trong đó f là xác xuất của phép thử - nhặt ra 2 con chữ ngẫu nhiên bất kỳ từ trong một đoạn văn bản -
Trang 153 Mã chuyển vị
• Người ta sắp xếp lại thứ tự các ký tự của bản văn bằng cách lưu chúng trong một mảng 2 chiều, m cột, m ký tự đầu tiên
sẽ cho vào hàng thứ nhất, m ký tự kế tiếp cho vào hàng thứ hai, và cứ thế tiếp tục cho hết bản tin
• Hoán đổi vị trí các cột theo thứ tự mới, giả sử pb p2 pm Sự hoán đổi có thể thực hiện một cách ngẫu nhiên hoặc theo
một qui luật định trước Bản tin sẽ được truyền đi theo thứ tự từ p^ p2 đến pm
Trang 173 Mã chuyển vị
Sắp xếp lại các cột theo thứ tự 2, 4, 3, 1, 5, ta được bản tin:
IIKTMNZBSGRAL IASGE ADZEMP IIAO (2 khoảng trống) YMN FER
Để tăng tính bảo mật có thể chuyển vị nhiều lần
Rõ ràng là bản tin đã mã hóa không còn một dáng dấp nào của bản tin ban đầu
Nhưng phương pháp vẫn còn khuyết điểm là sự lặp lại của các ký tự Nếu kẻ gian xác định được mật mã đã dùng là loại chuyển vị thì khả năng giải được mã không khó lắm
Trang 184 Mã DES
Mã DES được phát triển bởi IBM vào những năm đầu thập niên 70
DES chia bản tin ra thành từng khối 64 bit và dùng khóa 56 bit để thực hiện quá trình tạo mã rất phức tạp
bao gồm các kỹ thuật như chuyển vị, thay thế, toán tử EX-OR và vài xử lý khác để tạo nên một bản mã 64 bit
Giới thiệu
Trang 194 Mã DES
Thuật toán của DES:
Với bản rõ cho trước x, một xâu bit x0 sẽ được xây dựng bằng cách hoán vị các bit của x theo phép hoán vị cố định ban đầu IP Ta viết
x0=IP(x)=L0R0, trong đó L0 gồm 32 bít đầu và R0 là 32 bit cuối.
Sau đó tính toán 16 lần lặp theo một hàm xác định Ta sẽ tính LiRi 1 <= I <= 16 theo quy tắc sau: Li=R i-1;Ri=Li-1 xor f(Ri-`1 ,ki)
Trong đó: xor là phép loại trừ hai xâu bit.
F là một hàm sẽ được mô tả ở sau
K1 k2…k16 là các xâu bit có độ dài 48 được tính như 1 hàm của khóa k.
Trang 204 Mã DES
Một vòng của phép mã hóa được mô tả như sau
Trang 214 Mã DES
Mô tả hàm f:
• Xâu bit A có độ dài 32
• Xâu bit J có độ dài 48
Hàm f có 2 biến vào:
Đầu ra của f là xâu bit có độ dài 32.
Các bước thực hiện:
• Biến thứ nhất A được mở rộng thành một xâu bit độ dài 48 theo một hàm mở rộng cố định E E(A) gồm
32 bit của A (được hoán vị theo cách cố định) với 16 bit xuất hiện hai lần.
• Tính E(A) xor J và viết kết quả thành một chuỗi 8 xâu 6 bit là B1B2B3B4B5B6B7B8
Trang 224 Mã DES
• Bước tiếp theo dùng 8 bảng S1S2….S8 (được gọi là hộp S) với mỗi Si là một bảng 4x16 cố định có các hàng là các số nguyên từ 0 đến
15 Với xâu bit có độ dài 6 (ki hiệu Bi=b1b2b3b4b5b6), ta tính Sj(Bj) như sau:
o Hai bit b1b6 xác định biểu diễn nhị phân hàng r của Sj (0=<r=<3)
o 4 bit (b2b3b4b5) xác định biểu diễn nhị phân của cột c của Sj (0=<c=<15)
o Khi đó Sj(Bj) sẽ xác định phần tử Sj(r,c); phần tử này viết dưới dạng nhị phân là một xâu bit có độ dài 4.
o Bằng cách tương tự tính các Cj=Sj(bj) ,(1=<j=<8)
Trang 244 Mã DES
Phép hoán vị ban đầu IP Bảng hoán vị IP-1
Trang 25LOGO