Professional Documents
Culture Documents
(Computer Security)
1
Tài liệu tham khảo
1. A. J. Menezes, P. van Oorschot, and S.
Vanstone, Handbook of Applied Cryptography.
CRC Press, 1996.
www.cacr.math.uwaterloo.ca/hac
2. B. Schneier, Applied Cryptography, Protocols,
Algorithms and Source Code in C. John Wiley and
Sons, 1995.
3. William Stallings, Cryptography and Network
Security: Principles and Practice, Prentice Hall,
2002.
4. http://math.scu.edu/~eschaefe/index.html
5. Keywords: cryptography, security
2
Mã hóa và Bảo mật
(Cryptography and Computer Security)
3
Bảo mật thông tin
(Computer Security)
• Thông tin là nguồn tài nguyên chiến lược
• Bảo mật thông tin được coi như tài sản vật chất của
chính quyền
• Sự bùng nổ của CNTT đòi hỏi những phương tiện
tự động và kỹ thuật bảo mật thích hợp
• Ngân sách đáng kể đầu tư cho CNTT
• Bảo mật TT liên quan đến:
– Lưu trữ và xử lý thông tin trên 1 máy tính
– Trao đổi thông tin giữa các máy tính
• Cần xác định các yêu cầu bảo mật và thực hiện
chúng một cách nghiệm túc
4
Các thành phần của BMTT
• Các yếu tố đe dọa
• Các kiểu tấn công
• Các mô hình bảo mật
• Các dịch vụ bảo mật
• Các cơ chế bảo mật
• Mã hóa và các công cụ
5
Các yếu tố đe dọa sự bí mật
• Tỷ lệ thuận với kích thước và phạm vi của
tài nguyên cần giữ bí mật.
• Các yếu tố thống kê được:
– 55% - Lỗi do sơ ý của con người
– 10% - Sự bất bình của nhân viên
– 10% - Sự không trung thực của nhân viên
– 10% - Sự truy cập của kẻ lạ
– 15% - Nguyên nhân khách quan (hỏa hoạn, bão
lụt, động đất, …)
6
Các kiểu tấn công (1)
1. Làm gián đoạn dịch vụ (interruption): Tấn
công vào tính sẵn sàng - availability
2. Lấy trộm TT trên đường truyền
(interception): Tấn công vào tính bí mật -
confidentiality
3. Thay đổi TT (modification): Tấn công vào
tính toàn vẹn - integrity
4. Mạo danh để tạo TT (fabrication): Tấn công
vào tính xác thực - authenticity
• Tấn công bị động và chủ động (passive
and active attacks)
7
Các kiểu tấn công (2)
8
Các kiểu tấn công (3)
9
Mô hình bảo mật – Truy cập máy tính
• Chọn các chức năng thích hợp của gatekeeper để xác định users
• Thực hiện kiểm tra để chắc chắn rằng chỉ có users có quyền mới
có thể tiếp cận các thông tin hay tài nguyên tương ứng
10
Mô hình bảo mật – trao đổi TT
• Thiết kế thuật toán truyền dữ liệu an toàn
• Phát triển các phương pháp phân bổ thông tin mật
• Tạo nghi thức cho các dụng dịch vụ truyền thông an toàn
11
Các dịch vụ bảo mật
(Security services)
1. Bí mật (Confidentiality or secrecy):
• Kẻ lạ không thể hiểu được dữ liệu
2. Toàn vẹn dữ liệu (Data integrity)
• Bảo vệ sự thay đổi của dữ liệu
3. Xác thực dữ liệu (Data origin authentication)
• Xác định nguồn, nơi dữ liệu được truyền đi
4. Không thể chối cãi (Non-repudiation)
• Người đã truyền dữ liệu không thể phủ nhận
5. Kiểm tra truy cập (Access control)
• Cấm kẻ lạ truy cập đến các dữ liệu mật
12
Các cơ chế bảo mật
13
Khoa học mã hóa là gì?
• Cryptography = Crypto (secret) + Graphy
(writing)
• Liên quan đến việc phát triển các thuật toán,
được sử dụng để:
– Che dấu 1 phần thông điệp, chỉ có người gửi và
người nhận là có thể hiểu
– Kiểm tra tính toàn vẹn của thông điệp cũng như
tính hợp lệ của người gửi thông điệp
• Là cơ sở của nhiều giải pháp công nghệ
trong việc giải quyết bài toán bảo mật thông
tin.
14
Công cụ của bảo mật
1. Quy trình mã hóa (encryption schemes)
– Làm cho dữ liệu trở nên bí mật
2. Quy trình chữ ký (signature schemes)
– Để ký dữ liệu, bảo đảm sự toàn vẹn, xác thực
của dữ liệu và không thể chối cãi của người gửi
3. Các hàm băm (cryptographic hash functions)
– Cho phép thu nhỏ nhưng vẫn kiểm tra được
những thay đổi của dữ liệu
4. Qui trình nhận diện (identification schemes)
– Cho phép nhận biết các thực thể (người,
computer, …)
15
Công cụ của bảo mật (2)
5. Mã xác thực thông điệp
(message authentication codes - MAC)
– Cung cấp sự toàn vẹn dữ liệu
6. Nghi thức khóa thỏa thuận
(key agreement protocols)
– Tạo nên một khóa bí mật dùng chung giữa hai
hoặc một vài đối tượng
7. Qui trình tạo số ngẫu nhiên
(pseudorandom number generator)
– Cho phép tạo ra các số ngẫu nhiên dưới dạng
chuỗi các bits. Dùng để tạo ra các khóa.
16
Một số thuật ngữ
• Cryptography (khoa học mã hóa)
– Khoa học bao gồm các nguyên tắc và phương pháp biến
đổi 1 thông điệp dễ hiểu thành không thể hiểu được và
sau đó khôi phục lại thông điệp gốc
• Plaintext (bản nguồn)
– Là thông điệp dễ hiểu ban đầu
• Ciphertext (bản mã)
– Là thông điệp đã bị biến đổi
• Cipher (thuật toán mã)
– Thuật toán biến đổi 1 thông điệp dễ hiểu thành không thể
hiểu được sử dụng phương pháp đổi chỗ và thay thế
• Key (khóa)
– Thông tin đặc biệt được sử dụng trong Cipher và thường
chỉ có người gửi và người nhận biết
17
Một số thuật ngữ (2)
• Encipher (encode) (mã hóa)
– Quá trình biến đổi plaintext thành ciphertext, sử dụng
cipher và key
• Decipher (decode) (giải mã)
– Quá trình biến đổi ngược ciphertext thành plaintext,
sử dụng cipher và key
• Cryptanalisis (codebreaking) (khoa học thám mã)
– Khoa học nghiên cứu các nguyên tắc và phương pháp
biến đổi ngược ciphertext thành plaintext khi không
biết key
• Cryptology (khoa học mật mã)
– Cryptology = Cryptography + Cryptanalisis
18
Một số khái niệm
• Encryption (Hàm mã)
– Hàm toán học biến đổi plaintext thành ciphertext sử
dụng khóa K: C = EK (P)
• Decryption (Hàm giải mã)
– Hàm toán học biến đổi ciphertext thành plaintext sử
dụng khóa K: P = EK-1(C)
• Cryptographic system (Hệ thống mã hóa)
– Họ các phép biến đổi trong đó hàm mã hóa EK đã
được chọn
• Key (khóa)
– Các thông số xác định 1 phép biến đổi cụ thể đã
được chọn. Khóa được chọn từ keyspace K
• Ta thường cho rằng Cryptographic system là công
khai chỉ có khóa là bí mật
19
Các thuật toán (TT)
• TT mã hóa dùng khóa bí mật (private-key)
• TT mã hóa dùng khóa công khai (public-key)
• TT chữ ký số (digital signature)
• Các hàm băm (hash functions)
• Các TT mã hóa khóa bí mật được chia làm 2
loại:
– Mã hóa theo luồng (stream ciphers)
– Mã hóa theo khối (block ciphers)
20
Mã hóa và Bảo mật thông tin
Mã hóa Thám mã
Khóa bí mật: Qui trình mã hóa và giải mã có từ hơn 3000 năm nay
Khóa công khai : Bắt đầu từ năm 1976 (Diffie-Hellman)
Hỗn hợp: Các nghi thức ngày nay sử dụng cả 2 loại thuật toán mã hóa
21
Mã hóa truyền thống
• Người gửi và người nhận:
- dùng chung 1 khóa hoặc
- dùng 2 khóa có thể suy ra lẫn nhau
• Tất cả các TT truyền thống đều là private-key
22
Hệ thống mã hóa truyền thống
(Conventional Cryptosystem)
• Các tên gọi khác: Đối xứng (symmetric), khóa đơn (single-
key), khóa bí mật (secret-key), cá nhân (private-key)
• Bài toán: Nam và Mai muốn viết thư cho nhau và không
muốn Dũng có thể hiểu các bức thư của họ.
• Giải quyết: N & M sẽ mã hóa thư của mình – bằng khóa bí
mật K : p Æc.
Dũng
p Mã hóa c Giải mã p
Nam Mai
e() d()
k Kênh an toàn
Tạo khóa
23
Các định nghĩa
• p gọi là văn bản chưa mã hóa (plaintext - PT)
• P = {p1, p2,…, pm} – tập các PT (plaintext space)
• c gọi là văn bản đã mã hóa (ciphertext - CT)
• C= {c1, c2,…, cn} – tập các CT (ciphertext space)
• k gọi là khóa (key)
• K= {k1, k2,…, kl} – tập các khóa (key space)
• l hàm mã hóa eki : P →C (hoặc eki(p) = c)
• l hàm giải mã dki : C → P (hoặc dki(c) = p)
• eki và dki là các hàm nghịch đảo:
dki (c) = dki (eki (p) ) = p ∀ ki ∈ K
24
Hệ thống mã hóa
(Cryptosystem)
26
Các kiểu tấn công
1. Chỉ biết văn bản mã hóa (Ciphertext-only attack)
– D biết một vài c1=ek(p1), c2=ek(p2), …
– D cần phục hồi p1, p2, … hoặc khóa k
2. Biết vài văn bản gốc (Known plaintext attack)
– D biết một vài cặp (p1, c1=ek(p1)), (p2, c2=ek(p2)), …
– D cần phục hồi khóa k
3. Được chọn văn bản gốc (mã) (Chosen plaintext
(ciphertext) attack)
– D biết một vài cặp (p1, c1=ek(p1)), (p2, c2=ek(p2)), … và có
thể chọn p1, p2, … (c1, c2, …) để thử
– D cần phục hồi khóa k
4. Được chọn văn bản gốc và mã (Chosen plaintext -
ciphertext attack)
– D biết một vài cặp (p1, c1=ek(p1)), (p2, c2=ek(p2)), … và có
thể chọn p1, p2, … cũng như c1, c2, …để thử
– D cần phục hồi khóa k 27
Vét cạn các khóa
• Về lý thuyết luôn có thể tìm được khóa bằng vét cạn
• Hầu hết TT dò khóa có độ phức tạp tỷ lệ thuận với độ lớn
của khóa
• Giả sử rằng ta có thể biết hoặc nhận ra khi tìm thấy đúng
plaintext
• Bảng sau cho ta thấy sự phụ thuộc thời gian tìm kiếm vào
độ dài khóa và tốc độ xử lý của H/W và S/W
29
Mã hóa cổ điển
30
Lịch sử mã hóa
• Mã hóa cổ điển
– Lịch sử mã hóa bắt nguồn cách đây khoảng trên
3000 năm
– Chủ yếu dựa trên việc thay đổi các ký tự của bản gốc
bằng các ký tự khác
– Thực hiện việc mã hóa thủ công bằng tay hoặc sử
dụng các nguyên lý cơ học
– Ứng dụng phổ biến trong quân sự
• Mã hóa hiện đại (Từ 1970)
– Xuất hiện cùng với sự ra đời và phát triển của MTĐT
và CNTT
– Xử lý bằng MTĐT với đơn vị là các bit
– Được ứng dụng rộng rãi trên hầu hết các công cụ
trên mạng internet và trong thương mại điện tử
31
Kỹ thuật mã hóa cổ điển
• Dựa trên việc thay đổi (shift) các ký tự:
– Thay thế (substitution)
– Đổi chỗ (transposition)
• Các thuật toán mã hóa:
– Thuật toán thay thế đơn từ
(monoalphabetic ciphers)
– Thuật toán thay thế đa từ
(polyalphabetic ciphers)
• Một vài thuật toán có thể liên kết với nhau để
tạo ra thuật toán tổng hợp (product cipher)
32
TT mã hóa Caesar
(Caesar Cipher)
• 2000 năm trước Julius Caesar sử dụng TT
mã hóa bằng phép thay thế đơn giản
• Mã hóa: Thay mỗi chữ cái bởi chữ thứ 3 sau
nó:
ª I CAME I SAW I CONQUERED -> L FDPH L
VDZ L FRQTXHUHG
• Có thể biểu diễn như sau:
– Plain: ABCDE FGHIJ KLMNO PQRST UVWXY Z
– Cipher: DEFGH IJKLM NOPQR STUVW XYZAB C
• Ví dụ: giải mã “QJDB PDL QJKL KRF"
33
TT mã hóa Caesar mở rộng
• Mỗi chữ cái sẽ được thay bởi 1 chữ khác ở
một khoảng cách cố định
• Khoảng cách cố định này có thể từ 1 đến 25
• Có thể ký hiệu ký tự khóa (key letter) là ký
tự mà plaintext A dịch đến
VD: ký tự khóa F có nghĩa là:
– A dịch đến F, B đến G, ... Y đến D, Z đến E
– Tức là dịch chuyển các ký tự 5 vị trí
• Do đó ta có 26 (25 có nghĩa) cách mã hóa
khác nhau!
34
TT Caesar mở rộng
A B C D E F G H I J K L M
0 1 2 3 4 5 6 7 8 9 10 11 12
N O P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Giả sử P = C = K = Z26; x ∈P , y ∈ C , k ∈ K
Mã hóa : ek(x) = (x + k) mod 26
Giải mã : dk (y) = (y - k) mod 26
Với k = 3 có tên là “ Caesar Cipher ”
35
Thám mã Caesar
• Phương pháp vét cạn khóa (exhaustive key
search)
– Chỉ có 25 khóa
– Thử từng khóa để tìm plaintext có nghĩa
– Ví dụ: Phá khóa “ GCUA VQ DTGCM”
• Phương pháp phân tích tần số chữ cái
– Các chữ cái mức độ sử dụng khác nhau
– Trong tiếng Anh chữ E xuất hiện nhiều nhất sau
đó đến các chữ cái: T, R, N, I, O, A, S
– Các chữ ít xuất hiện nhất: Z, J, K, Q, X
– Lập bảng tần số các chữ và các cụm chữ.
36
Bảng tần số
A B C D E F G H I J K L M
7.25 1.25 3.5 4.25 12.75 3 2 3.5 7.75 0.25 0.5 3.75 2.75
N O P Q R S T U V W X Y Z
7.75 7.5 2.75 0.5 8.5 6 9.25 3 1.5 1.5 0.5 2.25 0.25
Single Letter E T R N I O A S
Double Letter TH HE IN ER RE ON AN EN
Triple Letter THE AND TIO ATI FOR THA TER RES
37
Bảng tần số chữ cái tiếng ANH
14
E
12
10
T
R
I
8 O
A
S
6
D
L
4 C H
F U
M P
Y
G
2 V W
B
K N Q X
J Z
0
TẦN SỐ CÁC CHỮ CÁI CỦA TIẾNG ANH
38
Ví dụ
• Ta có thể thám mã Caesar sử dụng việc
phân tích tần số
• VD: thám mã: "JXU WHUQJUIJ TYISELUHO
EV CO WUDUHQJYED YI JXQJ Q XKCQD
RUYDW SQD QBJUH XYI BYVU RO
QBJUHYDW XYI QJJYJKTUI"
• Ta có thể thống kê và biểu diễn các chữ cái
theo biểu đồ sau: (trang sau)
– Có thể thấy 3 đỉnh Q-U-Y ứng với A-E-I, và HIJ
ứng với RST
– Dự đoán: Khóa là Q ( A ÆQ)
39
Biểu đồ tần số các chữ cái của VD
12
J U
10
Q Y
D I
6
H X
W
4
B E O
C K R S T V
2
L
A F G M N P Z
0
TẦN SỐ CÁC CHỮ CÁI CỦA VÍ DỤ
40
TT Thay thế đơn hỗn hợp
(Mixed Monoalphabetic Substitution Cipher)
41
TT Thay thế đơn chung
(General monoalphabetic cipher)
42
TT Thay thế đơn chung (2)
STARW
• VD: Từ khóa “STARWARS”
BCDEF
• Lọc đi các từ lặp lại và viết ra bảng: GHIJK
• Đọc theo cột ta được key: LMNOP
QUVXY
Z
Plain : ABCDE FGHIJ KLMNO PQRST UVWXY Z
Key : SBGLQ ZTCHM UADIN VREJO XWFKP Y
Ciphertext G 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
H 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 G
I 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 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 I
K 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 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 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 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 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
Khóa P 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 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 P
R 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 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 R
T 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 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 T
V 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
W 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 V
X 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 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 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
48
Thuật toán khóa tự động
(Autokey Cipher)
• Ta thấy càng dùng nhiều từ làm khóa thì độ an toàn của
thuật toán càng lớn
• Nhưng lúc đó làm sao mà truyền được 1 khóa dài ?
• Vigenère đề nghị dùng khóa tự động (autokey)
• Sử dụng keyword ghép vào phần đầu của thông điệp
và sử dụng như là khóa cho thông điệp
• Biết keyword có thể khôi phục được các ký tự đầu của
thông điệp và dùng chúng để tìm các ký tự còn lại
• VD: cho keyword "DECEPTIVE" và thông điệp "WE
ARE DISCOVERED SAVE YOURSELF"
Plaintext: WEARED I SCOVE REDSAVEY OURSE LF
Key: DECEP T I VEWEARED I SCOVERE DSAV
Ciphertext: Z I CVTWQNGKZE I IGA SXST S LVVWLA
49
TTMH sử dụng sách
(Book Cipher)
• Có thể tạo khóa bằng cách lấy các ký tự bắt đầu từ 1 vị trí
(trang, dòng) nào đó trong 1 cuốn sách.
• Có thể phá khóa Autokey và Book ciphers bằng cách phân tích
tần số các cặp chữ cái do khóa và plaintext viết trên cùng 1 ngôn
ngữ
• VD: khóa với ký tự 'E' được sử dụng nhiều hơn so với ký tự 'T'
• Do đó 'E' được mã hóa bằng khóa với ký tự 'E' sẽ có xác suất
(0.1275)2 = 0.01663, gấp đôi xác suất 'T' được mã hóa bởi 'T'
• Ta sẽ lập được bảng tần số 26*26
• Với ciphertext đủ lớn (hoặc đủ nhiều) có thể phá được khóa
• Với khóa thực sự ngẫu nhiên có độ dài bằng plaintext, TTMH sẽ
thực sự an toàn
• TTMH với khóa dùng 1 lần được gọi là TT Vernam (Vernam
Cipher) hoặc (One-Time pad)
50
Các TT đổi chỗ
(Transposition Ciphers)
• Các thuật toán mã hóa đổi chỗ thực hiện việc sắp
xếp lại thứ tự của các từ trong plaintext mà không
thay đổi chúng
• Đảo ngược từ (Mirror cipher): Viết các từ theo thứ
tự ngược lại
– TOI AN COM Æ MOC NA IOT
• Hình học (Geometric Figure)
– Viết thông điệp theo 1 mẫu và đọc theo mãu khác
51
Scytale cipher
55
Ví dụ
• Plaintext: NOWISTHETIMEFORALLGOODMEN
• Key (W): L E M O N
2 1 3 5 4
L 2 ON W S I
E 1 H T E I T
M 3 EM F R O
O 5 L A L O G
N 4 DO M N E
57
Ví dụ TT ADFGVX
A D F G V X
A K Z W R 1 F
D 9 B 6 C L 5
F Q 7 J P G X
G E V Y 3 A N
V 8 O D H 0 2
X U 4 I S T M
• Plaintext: PRODUCTCIPHERS
• Thông điệp trung gian:
FG AG VD VF XA DG XV DG XF FG VG GA AG XG
58
Ví dụ TT ADFGVX (2)
Ma trận đổi chỗ theo khóa:
D E U T S C H
2 3 7 6 5 1 4
F G A G V D V
F X A D G X V
D G X F F G V
G G A A G X G
Ciphertext:
DXGX FFDG GXGG VVVG VGFG CDFA AAXA
59
Bài tập
Apple iPods are small devices that copy
save and play music and written material