Bài giảng Nhập môn an toàn thông tin - Chương 2: Mã hóa (Mã hóa đối xứng) cung cấp cho người học các kiến thức về: Giới thiệu, những khái niệm cơ bản về mã hóa, hàm cửa lật một chiều và mã công khai, một số mã công khai thông dụng, nguyên lý thiết kế mã đối xứng, một số mã đối xứng thông dụng.
Trang 1Mã hóa đối xứng
SYMMETRIC CIPHERS
(Cryptography)
Trang 2NỘI DUNG
1 Giới thiệu
2 Những khái niệm cơ bản về mã hóa
3 Hàm cửa lật một chiều và mã công khai
4 Một số mã công khai thông dụng
5 Nguyên lý thiết kế mã đối xứng
6 Một số mã đối xứng thông dụng
Trang 3Giới thiệu
Trang 4Giới thiệu
Trang 5Vấn Đề đặt ra
• Tại sao chúng ta cần mã hóa?
• Mã hóa là một phương pháp hỗ trợ rất tốt cho trong việc chống lại những truy cập bất hợp pháp tới dữ liệu được truyền đi qua các kênh truyền thông.
• Mã hoá sẽ khiến cho nội dung thông tin được truyền đi dưới dạng mờ và không thể đọc được đối với bất kỳ ai cố tình muốn lấy thông tin đó.
Trang 6Mật mã học là gì?
• Mật mã học bao gồm hai lĩnh vực : mã hóa(cryptography) và thám mã (cryptanalysis codebreaking)trong đó:
• Mã hóa: nghiên cứu các thuật toán và phương thức đểđảm bảo những bí mật và xác thực của thông tin gồmcác hệ mã mật, các hàm băm, các hệ chư ký điện số,các cơ chế phân phối, quản lý khóa và các giao thứcmật mã
• Thám mã: Nghiên cứu các phương pháp phá mã hoặctạo mã giả gồm các phương pháp thám mã , cácphương pháp giả mạo chư ký, các phương pháp tấn
• công ,các hàm băm và các giao thức mật mã
Trang 7Mật Mã là gì?
• Mật mã (Cryptography) là ngành khoa học nghiên cứu các kỹ thuật toán học nhằm cung cấp các dịch vụ bảo vệ thông tin.
• W Stallings (2003), Cryptography and Network
Security: Principles and Practice, Third Edition,
Prentice Hall
Trang 8Mật Mã là gì?
• Cách hiểu truyền thống: giữ bí mật nội dung trao đổi
GỬI và NHẬN trao đổi với nhau trong khi TRUNG GIAN tìm cách “nghe lén”
Trang 9Một số vấn đề trong bảo vệ
thông tin
• Bảo mật thông tin (Secrecy): đảm bảo thông tin được giữ
bí mật.
• Toàn vẹn thông tin (Integrity): bảo đảm tính toàn vẹn thông
tin trong liên lạc hoặc giúp phát hiện rằng thông tin đã bị sửa đổi.
• Xác thực (Authentication): xác thực các đối tác trong liên
lạc và xác thực nội dung thông tin trong liên lạc.
• Chống lại sự thoái thác trách nhiệm (Non-repudiation):
đảm bảo một đối tác bất kỳ trong hệ thống không thể từ chối trách nhiệm về hành động mà mình đã thực hiện
• Chống lặp lại: Không cho phép bên thứ ba copy lại văn bản
và gửi nhiều lần đến người nhận mà người gửi không hề hay
Trang 10Những khái niệm cơ bản về
mã hóa
• Văn bản gốc (plaintext) là văn bản ban đầu có nội dung
có thể đọc được và cần được bảo vệ
• Văn bản mã hóa (ciphertext) là văn bản sau khi mã
hóa, nội dung không thể đọc được
• Mã hóa (encryption) là quá trình chuyển văn bản rõ
thành văn bản mã hóa Giải mã (decryption) là quá
trình đưa văn bản mã hóa về lại văn bản gốc ban đầu
• Hệ thống mã hóa (cryptosystem)
• Cryptosystem = encryption + decryption algorithms
• Khóa (key) được sử dụng trong quá trình mã hóa và
giải mã
Trang 11Những khái niệm cơ bản về
mã hóa
• Ví dụ:
SKC với nguyên tắc dời vị trí
Nội dung gốc : “Hello everybody”
Mã hóa : dời nội dung sang phải – Keycode =1
“Lfmmp fxfsacpea”
Giải mã : dời nội dung sang trái – Keycode =1
“Hello everybody”
Trang 12Hệ thống
mã hóa
Trang 13Phân loại mã hóa
cryptosystem) là hệ thống mã hóa sử dụng một khóa bímật chia sẻ (shared-secret-key) cho cả hai quá trình mãhóa và giải mã
• Hệ thống mã hóa bất đối xứng (Asymmetric
cryptosystem) là hệ thống mã hóa sử dụng một khóacông khai (public key) và một khóa bí mật (private key)cho quá trình mã hóa và giải mã
• Hệ thống mã hóa bất đối xứng còn được gọi là hệ thống
mã hóa khóa công khai (public-key cryptosystem)
Trang 14Phân loại mã hóa
Trang 15Phân loại các thuật toán mật mã
• Các thuật toán mã hóa khóa bí mật (hệ mã mật khóa
bí mật hay khóa đối xứng SKC (Symmetric Key Cryptosytems), ví dụ : Caesar, DES, AES …
• Các thuật toán mã hóa khóa công khai (các hệ mã khóa công khai PKC )(Public Key Cryptosystems) Còn gọi là các hệ mã khóa bất đối xứng (Asymmetric Key Cryptosytems) Khóa sử dụng cho các thuật toán này là 2 khóa : Public Key và Private key
• Các thuật toán tạo chữ ký số (Digital Signature Algorithms) : RSA, ElGammma…
• Các hàm băm (Hash functions).
Trang 16Mã hoá đối xứng
“An intro to PKI and few deploy hints”
“AxCvGsmWe#4^,s dgfMwir3:dkJeTsY8 R\s@!q3%”
“An intro to
PKI and few
deploy hints”
input : văn bản thuần tuý Văn bản mật mã
Hai khoá giống nhau
output : văn bản thuần tuý
DE S
DE S
Trang 17• Các khoá giống nhau được sử dụng cho việc mã hoá và giải mã
• Thuật toán mã hoá sử dụng khoá đối xứng thường được biết đến là DES (Data Encryption Standard)
• Các thuật toán mã hoá đối xứng khác được biết đến
như:
-Triple DES, DESX, GDES, RDES - 168 bit key-RC2, RC4, RC5 - variable length up to 2048 bits -IDEA - basis of PGP - 128 bit key
Mã hoá đối xứng
Trang 18Mã hoá bất đối xứng
“An intro to PKI and few deploy hints”
“Py75c%bn&*)9|f De^bDzjF@g5=&
Trang 19• Các khoá dùng cho mã hoá và giải mã khác nhau nhưngcùng một mẫu và là cặp đôi duy nhất(khoá private/public)
• Khoá private chỉ được biết đến bởi người gửi
• Khoá public được biết đến bởi nhiều người hơn nó được
sử dụng bởi những nhóm người đáng tin cậy đã đượcxác thực
• Thuật toán mã hoá sử dụng khoá bất đối xứng thườngđược biết đến là RSA (Rivest,Shamir and Adleman
Mã hoá bất đối xứng
Trang 20• Một hàm băm H nhận được một thông báo m với một
độ dài bất kỳ từ đầu vào và đưa ra một xâu bít h có độ
dài cố định ở đầu ra h = H(m).
• Hàm băm là một hàm một chiều, điều đó có nghĩa là
ta không thể tính toán được đầu vào m nếu biết đầu
ra h.
• Thuật toán sử dụng hàm băm thường được biết đến
là MD5
Hàm băm
Trang 21Tạo ra chữ ký số
3kJfgf*£$& Py75c%bn
Phát sinh hàm băm
SHA, MD5
Mã hoá bất đối xứng
Trang 22• Xác minh quyền hạn của các thành viên tham gia truyền thông
• Phương pháp phổ biến:
• Sử dụng Password : để xác thực người sử dụng
Xác thực quyền
Trang 23• Sử dụng Kerberos: phương thức mã hoá và xác thực trong
AD của công nghệ Window
• Sử dụng Secure Remote Password (SRP): là một giao thức
để xác thực đối với các truy cập từ xa
Trang 24Tiêu chuẩn đánh giá hệ mật mã
• Độ an toàn: Một hệ mật được đưa vào sử dụng điều đầu
tiên phải có độ an toàn cao.
• Chúng phải có phương pháp bảo vệ mà chỉ dựa trên sự
bí mật của các khoá, còn thuật toán thì công khai Tại
một thời điểm, độ an toàn của một thuật toán phụ thuộc:
Nếu chi phí hay phí tổn cần thiết để phá vỡ một thuật toán
lớn hơn giá trị của thông tin đã mã hóa thuật toán thì thuật
toán đó tạm thời được coi là an toàn.
Nếu thời gian cần thiết dùng để phá vỡ một thuật toán là quá
lâu thì thuật toán đó tạm thời được coi là an toàn.
Nếu lượng dữ liệu cần thiết để phá vỡ một thuật toán quá
lơn so với lượng dữ liệu đã được mã hoá thì thuật toán đó
tạm thời được coi là an toàn
• Bản mã C không được có các đặc điểm gây chú ý, nghi
ngờ.
Trang 25• Tốc độ mã và giải mã: Khi đánh giá hệ mật mã chúng
ta phải chú ý đến tốc độ mã và giải mã Hệ mật tốt thìthời gian mã và giải mã nhanh
• Phân phối khóa: Một hệ mật mã phụ thuộc vào khóa,khóa này được truyền công khai hay truyền khóa bí mật.Phân phối khóa bí mật thì chi phí sẽ cao hơn so với các
hệ mật có khóa công khai Vì vậy đây cũng là một tiêuchí khi lựa chọn hệ mật mã
Tiêu chuẩn đánh giá hệ mật mã
Trang 26Một số ứng dụng của mã hóa trong security
Một số ứng dụng của mã hoá trong đời sống hằng ngày nói chung và trong lĩnh vực bảo mật nói riêng Đó là:
Trang 27SYMMETRIC CIPHERS
(Mã hóa đối xứng)
Trang 28Nội Dung
1 Mã cổ điển (Classical Encryption)
2 Mã dòng (Stream Ciphers) và Mã khối (Block
Ciphers)
3 Mã DES (Data Encryption Standard)
4 Mã hiện đại AES (Advanced Encryption Standard)
5 Các mô hình ứng dụng mã khối
( Cryptography and Network Security: Principles and
Practices (3rd Ed.) – Chapter 2, 3, 5, 6)
Trang 29Mã cổ điển (Classical Encryption)
1.Khái niệm về Mã đối xứng
(Symmetric Cipher)
2 Một số mã đối xứng nổi tiếng
Trang 30Khái niệm về Mã đối xứng
Symmetric Ciper
• Là hệ thống mã hóa sử dụng một khóa bí mật chia sẻ(shared-secret-key) cho cả hai quá trình mã hóa và giảimã
Trang 31Khái niệm về Mã đối xứng
Symmetric Ciper
Mô hình trên gồm 5 yếu tố:
• Bản rõ P (plaintext)
• Thuật toán mã hóa E (encrypt algorithm)
• Khóa bí mật K (secret key)
Trang 32Khái niệm mã đối xứng
• Bản rõ X (Plaintext): được gọi là bản tin gốc Đây là dữliệu ban đầu ở dạng rõ Bản rõ có thể được chia nhỏ cókích thước phù hợp
˗ Thuật toán mã hóa (Encryption algorithm): là thuật toán được sử dụng để mã hóa (thay thế hoặc biến đổi) bản rõ
• Khóa bí mật (Secret key): Khóa bí mật được đưa vàothuật toán mã hóa Khóa này là giá trị độc lập với bản rõ
và thuật toán mã hóa Thuật toán sẽ tạo ra đầu ra (input)khác nhau tùy thuộc vào khóa đặc biệt được dùng tại thờiđiểm đó Các kỹ thuật thay thế (substitution) và hoán vị(transformation) được thực hiện bởi thuật toán tùy thuộc
Trang 33Khái niệm mã đối xứng
• Bản mã (Ciphertext): Thông tin, dữ liệu đã được mãhoá ở dạng mờ Nó tùy thuộc vào plain text và secretkey Cho trước một thông điệp, 2 khóa khác nhau thì sẽtạo ra được hai bản mã khác nhau Bản mã là một dòng
dữ liệu ngẫu nhiên và nó bền vững và khó hiểu
• Thuật tóan giải mã (Decryption algorithm): Thuậttoán giải mã (Decryption algorithm): đây là thực chất làthuật toán mã hóa chạy theo chiều ngược lại Nó lấyciphertext và secret key để tạo ra plaintext gốc
• Người gửi/Người nhận (Sender/recipient) : Ngườigửi/Người nhận dữ liệu
Trang 34Mô hình mã đối đối xứng
Trang 35Mô hình mã đối đối xứng
Trang 36Đặc tính của mã đối xứng
• Thuật toán mã hóa và giải mã sử dụng chung một khóa, thuật toán giải mã là phép toán ngược của thuật toán mã hóa Vì vậy mô hình trên được gọi là phương pháp mã hóa đối xứng.
• Đặc tính của mã đối xứng:
• Khóa phải được giữ bí mật giữa người gởi và ngườinhận, khóa phải được chuyển một cách an toàn từngười gởi đến người nhận
• Một hệ mã hóa đối xứng phải có tính an toàn An toànkhi và chỉ khi nó không thể bị phá mã (điều kiện lýtưởng) hoặc thời gian phá mã là bất khả thi
Trang 37Đặc tính của mã đối xứng
Câu hỏi:
1.Nếu đã có một kênh an toàn để chuyển khóa
như vậy thì tại sao không dùng kênh đó để chuyển bản tin, tại sao cần đến chuyện mã hóa?
Câu trả lời là nội dung bản tin thì có thể rất dài,
còn khóa thì thường là ngắn
tin nhiều lần Do đó nếu chỉ chuyển khóa trên kênh
an toàn thì đỡ tốn kém chi phí.
Trang 38Kỹ thuật mã hóa (Cryptography)
Hệ thống mã hóa được đặc trưng bởi:
• Kỹ thuật được sử dụng để chuyển đổi bản rõ thành bản
mã Tất cả các thuật toán được dựa vào 2 kỹ thuật cơbản:
(a) Phép thế (substitution): dùng từng ký tự (hay từng nhóm ký tự) trong bản rõ được thay thế bằng một ký tự (hay một nhóm
ký tự) khác để tạo ra bản mã Bên nhận chỉ cần đảo ngược trình tự thay thế trên bản mã để có được bản rõ ban đầu.
(b) Hoán vị (transposition): Các ký tự trong bản rõ được giữ nguyên, chúng chỉ được sắp xếp lại vị trí để tạo ra bản mã Yêu cầu cơ bản là không có thông tn nào bị mất (có nghĩa là tất cả các thao thác có thể đảo ngược).
Trang 39Kỹ thuật mã hóa (Cryptography)
• Số khóa được người gửi và người nhận dùng khi mã hóa.
• Một khóa duy nhất: Mã đối xứng/ Mã khóa đơn/
Mã khóa bí mật khóa/ Mã hóa thông thường(symmetric, single-key, secret-key, or conventionalencryption)
• Hai khóa: Mã hóa bất đối xứng/ mã hóa hai khóa/
Mã hóa khóa công khai (asymmetric, two-key, orpublic-key encryption)
Trang 40Kỹ thuật mã hóa (Cryptography)
• Cách mà bản rõ được xử lý:
• Khối (block cipher): dữ liệu được chia thànhtừng khối có kích thước xác định và áp dụng thuậttoán mã hóa với tham số cho từng khối
• Dòng (stream cipher): từng phần tử ở đầu vàođược xử lý liên tục tạo phần tử đầu ra tương ứng
Trang 41Kỹ thuật mã hóa (Cryptography)
Ví dụ: Bảng sau đây biểu diễn một thuật toán
mã hóa theo khối
Theo bảng này, dữ liệu plaintext 010100110111 sẽ đươc
mã hóa thành:
010 100 110 111 111 011 000 101 theo key=1
010 100 110 111 100 011 011 111 theo key=4
Ở đây số lượng khóa là 5, do 22< 5 < 23 nên cần 3 bit
để biểu diễn và lưu giữ khóa, tức là kich thước khóa là
3 Đồng thời kích thước khối cũng là 3
Trang 42Phá mã (Cryptanalysis)
• Hai cách tiếp cận tấn công mã đối xứng:
• Phân tích mật mã (cryptanalysis attack) hay còn
gọi “tấn công dùng thuật toán”: dựa trên thuật
thoán và một số đặc trưng chung về bản rõ hoặc vàicặp mậu bản rõ – bản mã Kiểu tấn công này khaithác các đặc trưng của thuật toán để tìm bản rõ cụthể hoặc tìm kiếm khóa
• Tấn công vén cạn (Brute-force attack): Kẻ tấn côngtìm cách thử mọi khóa có thể trên bản mã cho đến khinhận được bản rõ Trung bình cần thử một nữa sốkhóa
Trang 43Phân tích mật mã
(Cryptanalysis)
• Các kiểu tấn công phân tích mật mã
• Biết thuật toán và bản mã xác định bản rõ
• Biết thuật toán, biết được bản mã/bản rõ tìmkhóa
• Chọn bản rõ và nhận được bản mã, biết thuậttoán tìm khóa
• Chọn bản mã và có được bản rõ tương ứng, biếtthuật toán tìm khóa
Trang 44Vét cạn (Brute-force)
• Về mặt lý thuyết phương pháp này luôn thực hiện được, do có thể tiến hành thử từng khóa, mà số khóa là hữu hạn.
• Phần lớn công sức của các tấn công đều tỷ lệ thuận với kích thước khoá Khóa càng dài thời gian tìm kiếm càng lâu và thường tăng theo hàm mũ.
• „Ta có thể giả thiết là kẻ thám mã có thể dựa vào đặc trưng về ngữ cảnh để nhận biết được bản rõ.
Trang 45Vét cạn (Brute-force)
• Trong phương pháp Ceasar, lý do mà phương pháp này kém an toàn là ở chỗ
khóa k chỉ có 25 giá trị, do đó kẻ phá mã có thể thử được hết tất cả các trường hợp của khóa rất nhanh chóng Phương pháp tấn công này được gọi là phương pháp vét cạn khóa (bruteforce attack).
• Chỉ cần nới rộng miền giá trị của khóa thì có thể tăng thời gian phá mã đến một mức độ được coi là bất khả thi Bảng dưới đây liệt kê một số ví dụ về thời gian phá mã trung bình tương ứng với kích thước của khóa.
Trang 46Một số mã đối xứng nổi tiếng
• Một số mã áp dụng phép thay thế:
• Mã Caesar (Caesar Cipher)
• Mã hóa đơn bản (Monoalphabetic Ciphers)
• Mã Playfair (Playfair Cipher)
• Mã One-Time Pad (OTP)
• Một số mã áp dụng phép hoán vị
Trang 47Caesar Cipher
• Thế kỷ thứ 3 trước công nguyên, Julius Ceasar đưa raphương pháp mã hóa này
• Thay thế mỗi ký tự trong bản rõ bằng ký tự đứng sau
nó k vị trí trong bảng chữ cái Giả sử chọn k=3, ta có
bảng chuyển đổi:
Trang 48Caesar Cipher
• Ví dụ:
Trang 49Caesar Cipher
• Gán cho mỗi chữ cái một con số nguyên từ 0 đến 25:
• Với mỗi ký tự trong P thay bằng chữ mã hóa C, trong
đó:
C = (P + k) mod 26 (mod: phép chia lấy số dư)
• Và quá trình giải mã đơn giản là:
P = (C – k) mod 26
• k được gọi là khóa
• Hiện nay, mã Ceasar không được xem là an toàn
Trang 50và biết được phương pháp mã hóa và giải mã là phép
cộng trừ modulo 26Bạn có suy ra được bản gốc
không?
Trang 52Caesar Cipher
Với bản chữ cái Tiếng Việt (29 ký tự) với khóa là 3:
• Gán cho mỗi chữ cái một con số nguyên từ 0 đến 28:
• Phương pháp Ceasar biểu diễn tiếng Việt nhƣ sau: vớimỗi chữ cái p thay bằng chữ mã hóa C, trong đó:
C = (p + k) mod 29
• Và quá trình giải mã đơn giản là:
p = (C – k) mod 29
Trang 54Caesar Cipher
Trang 56Mã hóa đơn bảng
( Monoalphabetic Substitution Cipher )
• Phương pháp đơn bảng tổng quát hóa phương phápCeasar bằng cách dòng mã hóa không phải là một dịch
chuyển k vị trí của các chữ cái A, B, C, … nữa mà là một
xem như là một khóa
• Việc mã hóa được tiến hành bằng cách thay thế mộtchữ cái trong bản rõ thành một chữ cái trong bản mã,nên phương pháp này được gọi là phương pháp thaythế
Plain: abcdefghijklmnopqrstuvwxyz
Cipher: DKVQFIBJWPESCXHTMYAUOLRGZN
Plaintext: ifwewishtoreplaceletters
Trang 57Monoalphabetic Ciphers
• Số lượng hoán vị của 26 chữ cái là 26! (tương đươngvới số khóa)
• Vì 26! là một con số khá lớn tấn công phá mã vétcạn khóa là bất khả thi (6400 thiên niên kỷ với tốc độthử khóa là 109 khóa/giây)
• phương pháp này được xem là một phương pháp
mã hóa an toàn trong suốt 1000 năm sau công nguyên