Bài giảng Nhập môn An toàn thông tin - Chương 2: Mã hóa - Phần 1: Mã hóa đối xứng

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

pdf166 trang | Chia sẻ: candy98 | Lượt xem: 1596 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Bài giảng Nhập môn An toàn thông tin - Chương 2: Mã hóa - Phần 1: Mã hóa đối xứng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
2Mã hóa đối xứng SYMMETRIC CIPHERS (Cryptography) NỘ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 1-2Trần Thị Kim Chi Giới thiệu 1-3Trần Thị Kim Chi Giới thiệu 1-4Trần Thị Kim Chi Vấ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 đó. 1-5Trần Thị Kim Chi Mậ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ồm cá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ức mật mã. • Thám mã: Nghiên cứu các phương pháp phá mã hoặc tạo mã giả gồm các phương pháp thám mã , các phươ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ã 1-6Trần Thị Kim Chi Mậ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 1-7Trần Thị Kim Chi Mậ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” 1-8Trần Thị Kim Chi Mộ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 biết. 1-9Trần Thị Kim Chi Nhữ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ã 1-10Trần Thị Kim Chi Nhữ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” 1-11Trần Thị Kim Chi Hệ thống mã hóa 1-12Trần Thị Kim Chi Phân loại mã hóa • Hệ thống mã hóa đối xứng (Symmetric 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óa cô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) 1-13Trần Thị Kim Chi Phân loại mã hóa 1-14Trần Thị Kim Chi Phân loại các thuật toán mật mã 1-15 • 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). Trần Thị Kim Chi Mã 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 Mã hoá Giải mã output : văn bản thuần tuý DE S DE S • 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 Mã hoá bất đối xứng “An intro to PKI and few deploy hints” “Py75c%bn&*)9|f De^bDzjF@g5=& nmdFgegMs” “An intro to PKI and few deploy hints” Hai khoá khác nhau Mã hoá Giải mã input : văn bản thuần tuý Văn bản mật mã output : văn bản thuần tuý RSA RSA • Các khoá dùng cho mã hoá và giải mã khác nhau nhưng cù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 đã được xá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 1978) Mã hoá bất đối xứng • 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 Tạo ra chữ ký số 3kJfgf*£$&Py75c%bn This is the document created by Gianni Thông báo hoặc File Chữ ký sốThông báo sau khi luật hoá Signatory's private key priv Phát sinh hàm băm SHA, MD5 Mã hoá bất đối xứng RSA Signed Document (Typically 128 bits) • 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 • 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 • Sử dụng Hardware Token • Sử dụng SSL/TLS Certificate Based Client Authentication: sử dụng SSL/TLS để mã hoá, xác thực trong VPN, Web • Sử dụng X.509 Public Key • Sử dụng PGP Public Key • Sử dụng SPKI Public Key • Sử dụng XKMS Public Key. • Sử dụng XML Digital Signature Xác thực quyền Tiê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ờ. • 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êu chí khi lựa chọn hệ mật mã. Tiêu chuẩn đánh giá hệ mật mã Mộ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à: • Securing Email • Authentication System • Secure E-commerce • Virtual Private Network • Wireless Encryption SYMMETRIC CIPHERS (Mã hóa đối xứng) Nộ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) 1-28Trần Thị Kim Chi Mã 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 1-29Trần Thị Kim Chi Khá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ải mã 1-30Trần Thị Kim Chi Khá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) • Bản mã C (ciphertext) • Thuật toán giải mã D (decrypt algorithm) • Trong đó: C = E (P, K) P = D (C, K) • 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mô hình trên được gọi là phương pháp mã hóa đối xứng. 1-31Trần Thị Kim Chi Khá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ào thuậ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 vào khóa (key) 1-32Trần Thị Kim Chi Khá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à secret key. 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ật toá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ấy ciphertext và secret key để tạo ra plaintext gốc. • Người gửi/Người nhận (Sender/recipient): Người gửi/Người nhận dữ liệu 1-33Trần Thị Kim Chi Mô hình mã đối đối xứng 1-34Trần Thị Kim Chi Mô hình mã đối đối xứng 1-35Trần Thị Kim Chi • Chọn một hoán vị p: Z26  Z26 làm khoá. • VD: • Mã hoá ep(a)=X • Giải mã dp(A)=d “nguyenthanhnhut”  “SOUDHSMGXSGSGUM” Đặ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ười nhậ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àn khi 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. 1-36Trần Thị Kim Chi Đặ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. Ngoài ra một khóa còn có thể áp dụng để truyề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í. 1-37Trần Thị Kim Chi Kỹ 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). 1-38Trần Thị Kim Chi Kỹ 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 conventional encryption) • 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, or public-key encryption) 1-39Trần Thị Kim Chi Kỹ 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ành từng khối có kích thước xác định và áp dụng thuật toá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. 1-40Trần Thị Kim Chi Kỹ 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 1-41 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. Trần Thị Kim Chi Phá 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ài cặp mậu bản rõ – bản mã. Kiểu tấn công này khai thá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ông tìm cách thử mọi khóa có thể trên bản mã cho đến khi nhận được bản rõ. Trung bình cần thử một nữa số khóa. 1-42Trần Thị Kim Chi Phâ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ìm khóa. • „Chọn bản rõ và nhận được bản mã, biết thuật toán  tìm khóa. • „Chọn bản mã và có được bản rõ tương ứng, biết thuật toán  tìm khóa 1-43Trần Thị Kim Chi Vé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õ. 1-44Trần Thị Kim Chi Vé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. 45Trần Thị Kim Chi Mộ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ị 1-46Trần Thị Kim Chi Caesar Cipher • Thế kỷ thứ 3 trước công nguyên, Julius Ceasar đưa ra phươ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: 1-47Trần Thị Kim Chi Caesar Cipher • Ví dụ: 1-48Trần Thị Kim Chi Caesar 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. 1-49Trần Thị Kim Chi Caesar Cipher • Giả sử có bản tin gốc (bản rõ): meet me after the toga party • Mã hóa bản gốc trên? • Giả sử bạn có được bản mã PHHW PH DIWHU WKH WRJD SDUWB và biết được phương pháp mã hóa và giải mã là phép cộng trừ modulo 26Bạn có suy ra được bản gốc không? 1-50Trần Thị Kim Chi Caesar Cipher 1-51 • Trong 25 trường hợp trên, chỉ có trƣờng hợp k=3 thì bản giải mã tương ứng là có ý nghĩa. • Do đó đối thủ có thể chắc chắn rằng “meet me after the toga party” là bản rõ ban đầu. Trần Thị Kim Chi Caesar Cipher 1-52 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ới mỗ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 Trần Thị Kim Chi Caesar Cipher Code Java private String encryptMessage(String msg, int k) { String result = ""; for (int i = 0; i < msg.length(); i++) result += encryptChar(msg.charAt(i), k); return result; } private char encryptChar(char c, int k) { if (Character.isLetter(c)) return (char) ('A' + (c - 'A' + k) % 26); //'A'=65 else return c; } • Nếu giải mã: encryptMessage(msg,26-k); 1-53Trần Thị Kim Chi Caesar Cipher 1-54Trần Thị Kim Chi Caesar Cipher 1. Giải mã bản mã sau, giả sử mã hóa Ceasar được sử dụng để mã hóa với k=3: IRXUVFRUHDQGVHYHQBHDUVDJR 2. Khóa • Plain(a): abcdefghijklmnopqrstuvwxyz • Cipher(b): DKVQFIBJWPESCXHTMYAUOLRGZN Mã hóa: • Plaintext: ifwewishtoreplaceletters • Ciphertext: WIRFRWAJUHYFTSDVFSFUUFYA 1-55Trần Thị Kim Chi Mã hóa đơn bảng (Monoalphabetic Substitution Cipher) • Phương pháp đơn bảng tổng quát hóa phương pháp Ceasar 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 hoán vị của 26 chữ cái này. Lúc này mỗi hoán vị được xem như là một khóa. • Việc mã hóa được tiến hành bằng cách thay thế một chữ 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 thay thế. Plain: abcdefghijklmnopqrstuvwxyz Cipher: DKVQFIBJWPESCXHTMYAUOLRGZN Plaintext: ifwewishtoreplaceletters Ciphertext: WIRFRWAJUHYFTSDVFSFUUFYA 1-56Trần Thị Kim Chi Monoalphabetic Ciphers • Số lượng hoán vị của 26 chữ cái là 26! (tương đương với số khóa). • Vì 26! là một con số khá lớn  tấn công phá mã vét cạ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. • Ví dụ: • Chữ ban đầu: 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 • Khóa : Z P B Y J R S K F L X Q N W V D H M G U T O I A E C • Như vậy bản rõ meet me after the toga party • được mã hóa thành: NJJU NJ ZRUJM UKJ UVSZ DZMUE 1-57Trần Thị Kim Chi Monoalphabetic Ciphers • Tuy nhiên vào thế kỷ thứ 9, một nhà hiền triết người Ả Rập tên là Al-Kindi đã phát hiện ra một phương pháp phá mã khả thi khác. Phương pháp phá mã này dựa trên nhận xét sau: • Trong ngôn ngữ tiếng Anh, tần suất sử dụng của các chữ cái không đều nhau, chữ E được sử dụng nhiều nhất, còn các chữ ít được sử dụng thường là Z, Q, J. Tương tự như vậy, đối với cụm 2 chữ cái (digram), cụm chữ TH được sử dụng nhiều nhất. • Nếu chữ E được thay bằng chữ K thì tần suất xuất hiện của chữ K trong bản mã là 13.05%. Đây chính là cơ sở để thực hiện phá mã. 1-58Trần Thị Kim Chi Monoalphabetic Ciphers Tần suất của chữ