SEELHEPOREEISYFENMCMAHLAHERAITMHTSTHAAHBTWKP chỉ cần biết đây là mật mã thuộc kiểu dịch chuyển thì cryptanalyst có thể giải mã được bằng cách liệt kê ra các bảng gồm các cột có ba, bốn,
Trang 1Nhóm 9:
Lê Đỗ Trường An – 08520004
Lý Tuấn Anh – 08520011
Trang 3Làm thế nào để giữ được các bí mật?
Trang 4Khóa là gì?
Trang 6Caesar Cipher
- Được biết như là Caesar Shift
- Quá trình thay thế chữ cái này bằng chữ cái
khác khác, đơn giản là dịch chữ cái đó trên
một số các chữ cái được định nghĩa trước
Trang 8Breaking the Caesar Cipher
Ciphertext:hxdjannrcqnafrcqdbxajpjrwbcd
brwcqnorpqcjpjrwbccnaaxa
=> Plaintext ??
Trang 12Z=0
=>Thứ tự:X, E, S, V, I, F, J, A, N, C, K, Q, T, B,
M, P, Y, D, G, H, L, R, U, W, Z
Trang 17RN THE ETHO OEN TION N E TION
(RTE và RN không thường thấy trong tiếng Anh)
Trang 18AN THE ETHO OEN TION N E TION
(AN và ATE thường thấy trong tiếng Anh)
Trang 19Giả sử: J = D
XEJIQYSIFSKECVKXECVPSOXCKIXS XTS
TODA EA E OIN O N E TI ATE THE
XTS EFCSO IVJ AEVASNXOEBAFQNXEKFINTQ
THE O IE AND ON E T O TO A H
IVJ XTSMSXTEJOEBSVAFQNXCEV IVJ JSAFQNXCEV
AND THE ETHOD O EN R TION AND DE TION
Trang 20XEJIQYS IFS KECVKXECVPSOXCKIXS XTS
TODA E ARE OIN O N E TI ATE THE
XTS EFCSO IVJ AEVASNXOEBAFQNXEKFINTQ
THE ORIE AND ON E T O R TO RA H
IVJ XTSMSXTEJOEBSVAFQNXCEV IVJ JSAFQNXCEV
AND THE ETHOD O EN R TION AND DE R TION
Trang 21=> Plaintext:
XEJIQ YS IFS KECVK XE CVPSOXCKIXS XTS
TODAY WE ARE GOING TO INVESTIGATE THE
XTSEFCSO IVJ AEVASNXO EB AFQNXEKFINTQ
THEORIES AND CONCEPTS OF CRYPTOGRAPHY
IVJ XTS MSXTEJ OEB SVAFQNXCEV IVJ JSAFQNXCEV
AND THE METHOD O ENCRYPTION AND DECRYPTION
Trang 22Polyalphabetic Ciphers
- Điển hình là mật mã Vigenere
Trang 23- Plaintext: TODAY WE MOVE BE PREPARED
- Ta chọn keyword là MOVE Keyword được đặt
phía trên plaintext và lặp lại cho đến khi hết đoạn plaintext:
Key: MOVEM OV EMOV EM OVEMOVEM Plaintext: TODAY WE MOVE BE PREPARED
=> Ciphertext: FCYEK KZ QAJZ FQ DMIBOMIP
Trang 24Đơn giản hơn:
caesar shift -> saesat chifr
Trang 25The Split Rail Cipher
- Còn gọi là Rail Fence Cipher, là một hình
thức của mã chuyển vị.
Thông điệp: So far there has been little
math, which makes me happy!
Trang 26Nhằm tăng độ phức tạp cho Split Rail
Trang 27SEELHEPOREEISYFENMCMAHLAHERAITMHTSTHAAHBTWKP
chỉ cần biết đây là mật mã thuộc kiểu dịch chuyển thì cryptanalyst có thể giải mã được bằng cách liệt kê ra các bảng gồm các cột có ba, bốn, năm, … chữ cái và tìm ra được plaintext => làm tăng thêm độ phức tạp của mã hóa.
Trang 29tiếp tục làm tăng độ phức tạp của mật mã
Trang 30=> keyword: 4163752
Để làm tăng tính bảo mật có thể kết hợp cả hai
phương pháp thay thế và chuyển vị.
Trang 32Tạo ra một cụm từ khóa: “When in the course of
Trang 33Ta có thể tiếp tục mã hóa bằng phương pháp
chuyển vị như sau:
Plaintext: 22 15 52 12 13 25
Line 1: 2 1 5 1 1 2 Line 2: 2 5 2 2 3 5
=> Ciphertext: 21 51 12 25 22 35
Trang 34The one-time pad
- Sử dụng một khóa có cùng chiều dài với thông
điệp plaintext và sử dụng khóa này chỉ một lần
Khóa được tạo một cách random.
Trang 35Rotor Machines
Trang 36Introduction to CrypTool
- Download tại www.CrypTool.com
Trang 38Kỹ thuật mã hóa cổ điển (truyền
thống) trước đây như Caesar,
Transposition, Enigma, Polybius đơn
giản là các kỹ thuật chuyển đổi ký tự
này sang ký tự khác
Kỹ thuật mã hóa hiện đại dùng toán
học
Trang 39Công thức toán học trong mật mã học
đều liên quan đến ký tự và số
Và cá ký tự này nó có 1 giá trị đã được chỉ định hoặc tính toán
Trang 40Nội dung cần tìm hiểu:
Inverse operation (thao tác chuyển đổi)
Prime number (số nguyên tố)
Relatively prime (số nguyên tố cùng nhau)
Math called Mod (chia lấy dư)
Binary and hex values (hệ nhị phân và thập
lục phân)
XOR
Trang 41 2 thuật ngữ được giới
thiệu trong phần này
là inverse number và
inverse function
Trang 42Prime và Relative prime
Trang 43Binary and Hex values
Trang 44Modular operation:
[(a mod n) + (b mod n)] mod n = (a + b) mod n
[(a mod n) - (b mod n)] mod n = (a - b) mod n
[(a mod n) * (b mod n)] mod n = (a * b) mod n
Trang 47Mã hóa và giải mã đều sử dụng chung
một khóa bí mật (symmetric key )
Private key exchange( hay symmetric
key exchange) cũng có thể được coi
như một sự chia sẻ bí mật
Trang 48 Khóa ko chỉ mạnh và còn phải được bảo mật
Khóa phải được mã hóa.
Trang 49Số “thật sự ” ngẫu nhiên
RNG – Random Number Generator
PRNG – Pseudo-Random Number
Generator
Sử dụng seed để tạo ra giá trị duy nhất
Kết hợp các seed để tạo ra single-seed
Trang 50Có loại thuật toán mã hóa khóa
symmetric key
block cipher
stream cipher
Trang 51Mã hóa từng block dữ liệu thay vì
từng bit
Một block dữ liệu thường là số bit với
bội số của 8 bytes hoặc 64 bits
Giải quyết vấn đề các block trùng
nhau => CBC (Cipher Block Chaining)
Trang 53Mã hóa và giải mã dựa trên dãy bit
( stream ), mỗi lần mã hóa, giải mã 1
bit.
Caesar và vigenere là stream cipher
Trang 54 Stream Cipher nhanh hơn Block Cipher
Block Cipher có lợi thế là tái sử dụng khóa.
Vì thế khi lựa chọn Block Cipher hay Stream
Cipher phải xem xét đến mục đích và hoàn
cảnh mã hóa.
2 thuật toán được sử dụng rộng rãi là Digital
Encryption Standard (DES) và Advanced
Encryption Standard(AES) đều là Block
Cipher.
Stream Cipher thường được sử dụng là RC4
Được dùng cho các ứng dụng như SSL trong
giao dịch Web
Trang 55Thực hiện nhiều lần việc thay thế, biến đổi hoặc nhiều bước xáo trộn làm cho độ phức tạp tăng lên và kết quả sẽ tăng tính bảo
mật
Có sự lặp lại các bước Và một loạt các
bước thực hiện đó gọi là 1 round
Là một Product Cipher
Trang 57Key size (128 bits)
Number of rounds (often 16 rounds)
Block size ( 64 bits )
Round function
Subkey algorithm
Trang 60Sử dụng 3 khóa có độ dài khác nhau :
128-bit, 192-bit, 256-bit
Sử dụng round giống DES nhưng
nhiều hơn, tùy thuộc vào độ dài khóa
Trang 61Mã hóa và giải mã đều sử dụng chung
một khóa bí mật (symmetric key ) nên phải có phương thức trao đổi khóa để
người ngoài không thể biết khóa là gì.
Sử dụng bên thứ 3 đáng tin cậy đảm
nhận việc trao đổi khóa -> Key
Distribution Center ( KDC )
Trang 64Nếu KDC bị tấn công thì toàn hệ thống
có nguy cơ bị mất mát dữ liệu Và các
khóa của các hệ thống mã hóa sẽ bị
lộ
Vì thế cần một thuật toán mã hóa cao
hơn, an toàn hơn AES -> Public Key
Crytography
Trang 66Diffie – Hellman
RSA
Ecliptic Curve Cryptography
Quản lý khóa ngoại :
Trang 67Diffie – Hellman
Trang 68Mô tả Diffie – Hellman
Trang 69RSA
Trang 70Mô tả RSA
Trang 71Ví Dụ:
p = 61 số nguyên tố thứ nhất (giữ bí mật hoặc hủy sau khi tạo khóa)
q = 53 số nguyên tố thứ hai (giữ bí mật hoặc hủy sau khi tạo khóa)
n = pq = 3233 môđun (công bố công khai)
e = 17 số mũ công khai
d = 2753 số mũ bí mật
Khóa công khai là cặp (e, n) Khóa bí mật là d Hàm mã hóa là:
• encrypt(m) = m e mod n = m17 mod 3233
với m là plain text Hàm giải mã là:
• decrypt(c) = c d mod n = c2753 mod 3233
Trang 72Ví Dụ:
p = 61 số nguyên tố thứ nhất (giữ bí mật hoặc hủy sau khi tạo khóa)
q = 53 số nguyên tố thứ hai (giữ bí mật hoặc hủy sau khi tạo khóa)
n = pq = 3233 môđun (công bố công khai)
Trang 73 Dữ liệu mã hóa bởi một mã khóa (công khai hoặc cá nhân) sẽ chỉ có thể được
giải mã với mã khóa còn lại (cá nhân hoặc công khai).
Độ bảo mật cao.
Quá trình trao đổi mã khóa không ảnh hưởng đến việc bảo mật thông tin.
Số lượng mã khóa phải quản lý bằng với số đối tượng tham gia trao đổi thông
tin, do đó phù hợp với giao dịch trên mọi quy mô.
Tốc độ thực hiện khá chậm.
Bản mã có dung lượng lớn hơn nhiều so với bản gốc.
Trang 74 Có 2 trường cơ bản của Quản Lý khóa :
• Distribution of public keys.
• Use of public key cryptography to manage private,
or secret keys.
Các phương thức được sử dụng khi phân phối
khóa ngoại:
• Public Announcement
• Public Key Directory
• Public Key Authority
• Public Key Certificates
Trang 75Ecliptic Curve Cryptography :
Trang 761 Giả mạo
2 Sửa đổi nội dung
3 Sửa đổi trình tự
Trang 77Nhiệm vụ chứng thực:
1 Xác định rõ nguồn gốc, không bị giả mạo
2 Thuyết phục dữ liệu là toàn vẹn, chưa bị chỉnh sửa
Trang 781 Sử dụng mã khóa bí mật,mã khóa công khai
2 Sử dụng MAC (Message Authentication Code)
3 Sử dụng hàm băm
Trang 791 A và B cùng dùng chung 1 khóa K bí mật để gửi
M A->B: M+C (C=Ek(M))
=> Nhược điểm A hoặc B sẽ có thể ko thừa nhận với C về gói tin M
2 A và B sử dụng khóa công khai
=> Có thể giải quyết vấn đề trên A->B:
M+E(PRa,M)
Trang 801 Sử 1 khóa bí mật(k) để tạo tra 1 khối dữ liệu nhỏ
cố định đính kem thông điệp gửi MAC=Ck(P)
A->B: P(gửi)+ MAC=Ck[P(gửi)]
B: MAC’=Ck[P(nhận)]
MAC=MAC’ thì B có thể khẳng dữ liệu đến từ A
và ko bị sữa đổi
Trang 81Hàm MAC chỉ theo 1 chiều, tức là
để xác thực thông tin thì A và B cùng tính giá trị MAC
Trang 82Vd1:
Trang 83Vd2:
Trang 84Thuật toán nhằm sinh ra các giá trị băm tương ứng với mỗi khối dữ liệu.
Các thuật toán băm thường dùng MD5, SHA-1, HMAC ( có sử dụng thêm khóa bí mật )
Trang 85MD5 biến đổi một thông điệp có chiều dài bất kì thành một khối dữ liệu có kích thước cố định
128 bits.
Do Ron River phát triển, hiện nay ít được sử
dưng do độ dài 128 bits dễ bị tấn công brute
force
Trang 86SHA được phát triển bởi National Institute of Standard and Technology (NIST) được giới thiệu vào năm 1993 gồm:
SHA-1: trả lại kết quả dài 160 bit.
SHA-2: gồm
SHA-224: trả lại kết quả dài 224 bit.
SHA-256: trả lại kết quả dài 256 bit.
SHA-384: trả lại kết quả dài 384 bit.
SHA-512: trả lại kết quả dài 512 bit.
Trang 87Một vấn đề của những giải thuật trước đó là
chúng không sử dụng khóa
Nói cách khác MD5 và SHA-1 chỉ băm theo cách
cố định không tùy biến sử dụng khóa bí mật.
HMAC sử dụng khóa bí mật trong khi băm
Khóa bí mật được thêm vào theo thể thức cùng
độ dài nhưng kết quả tóm tắt bản tin khác nhau khi sử dụng thuật toán khác nhau