Đồ án mật mã học 1. mã hóa cổ điển(classical) 2. mã hóa hiện đại(morden) 3. mã hóa khóa đối xứng 4. mã hóa công khai 5. chứng dữ dữ liệu 6. các giao thức bảo mật mạng. Với các kiến thức căn bản về mã hóa như hill, playfair, AES, RSA... và chứng thực dữ liệu đảm bảo dữ liệu toàn vẹn, các giao thức mạng cơ bản
Trang 1BÁO CÁO ĐỒ ÁN MẬT MÃ HỌC
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA MẠNG MÁY TÍNH & TRUYỀN THÔNG - -
Trang 2Mục Lục
Bài 2: MÃ HOÁ CỔ ĐIỂN
Bài 3: MÃ HÓA ĐỐI XỨNG
Bài 4: MÃ HOÁ KHOÁ CÔNG KHAI Bài 5: CHỨNG THỰC DỮ LIỆU
Bài 6: CÁC GIAO THỨC BẢO MẬT
Trang 3BÀI 2 : MÃ HÓA CỔ ĐIỂN
1. Cơ chế hoạt động của mã hóa Playfair và Hill
Ma trận khoá Playfair Cho trước một từ làm khoá, với điều kiện trong từ khoá đó không có chữ cái nào bị lặp Ta lập ma trận Playfair là ma trận cỡ 5
x 5 dựa trên từ khoá đã cho và gồm các chữ trên bảng chữ cái, được sắp xếp theo thứ tự như sau:
- Trước hết viết các chữ của từ khoá vào các hàng của ma trận bắt từ hàng thứ nhất
- Nếu ma trận còn trống, viết các chữ khác trên bảng chữ cái chưa được sử dụng vào các ô còn lại Có thể viết theo một trình tự qui ước trước, chẳng hạn từ đầu bảng chữ cái cho đến cuối
- Vì có 26 chữ cái tiếng Anh, nên thiếu một ô Thông thuờng ta dồn hai chữ nào đó vào một ô chung, chẳng hạn I và J
- Giả sử sử dụng từ khoá MORNACHY Lập ma trận khoá Playfair tương ứng như sau:
Trước khi mã “balloon” biến đổi thành “ba lx lo on”
- Nếu cả hai chữ trong cặp đều rơi vào cùng một hàng, thì mã mỗi chữ bằng chữ ở phía bên phải nó trong cùng hàng của ma trận khóa (cuộn vòng quanh từ cuối về đầu), chẳng hạn “ar” biến đổi thành “RM”
- Nếu cả hai chữ trong cặp đều rơi vào cùng một cột, thì mã mỗi chữ bằng chữ ở phía bên dưới nó trong cùng cột của ma trận khóa (cuộn vòng quanh từ cuối
về đầu), chẳng hạn “mu” biến đổi thành “CM”
- Trong các trường hợp khác, mỗi chữ trong cặp được mã bởi chữ cùng hàng với nó và cùng cột với chữ cùng cặp với nó trong ma trận khóa Chẳng hạn,
“hs” mã thành “BP”, và “ea” mã thành “IM” hoặc “JM” (tuỳ theo sở thích)
2 Mã hóa Hill
Sử dụng m ký tự liên tiếp của plaintext và thay thế bằng m ký tự trong
ciphertext với một phương trình tuyến tính trên các ký tự được gán
Trang 4giá trị lần lượt là A=01, B=02, …, Z=26.
Chọn ma trận vuông Hill (ma trận H) làm khoá
Mã hoá từng chuỗi n ký tự trên plaintext (vector P) với n là kích
thước ma trận vuông Hill
• C = HP mod 26
• P = H-1 Cmod 26
BÀI 3: MÃ HÓA ĐỐI XỨNG
Câu 1: Cài đặt ứng dụng Advanced Encryption Package Nêu cách sử dụng công
cụ này
- Cài đặt:
Trang 5Cách sử dụng:
Trang 6Tại phần giao diện chính, lựa chọn thư mục, file tại vùng chính Sau đó tại cột bên phải, thiết lập mật khẩu và chế độ mã hóa dữ liệu
- Có các định dạng mã hóa zip, sfx, và email
- Để bảo mật tốt hơn nên vào mục ba chấm bên chỗ password
- Tiếp theo bấn encrypt now ở dưới để bắt đầu mã hóa
Câu 2 : Thực hiện mã hoá và giải mã dữ liệu với công cụ EFS (Encrypt File
System)
Trang 7- Encrypt :
Chọn thư mục muốn mã hóa, kích chuột phải chọn Properties và chọn Advanced
Trang 8Bảng Advanced Attibutes hiện ra Tích chọn ô Encrypt contents to secure data và nhấn OK Tiếp tục nhấn OK như hình trên
Như trong hình đã được mã hóa
- Máy em bị lỗi đoạn này nên không có hình em chỉ nểu các bước
- Ngay lập tức, thông báo mới xuất hiện góc phải dưới màn hình như hình Kích vào mũi tên để truy cập vào cửa sổ Encrypting File System
- Chọn Back up now, cửa số mới hiện ra sau đó nhấn Next như hình để tiếp tục
- Tích chọn vào ô Include all và Export all rồi nhấn Next
- Tích chọn ô Password, nhập mật khẩu cho file mã hõa và nhấn Next
- Chọn Browser để mở nơi cất chứa file
Trang 9- Nhấn Finish và OK để hoàn thành quá trình mã hóa.
Decrypt:
Trang 10Bỏ tích phần encrypt contents to secure data là xong.
Trang 11Câu 3: Cho một số ví dụ về vấn đề khoá DES yếu : \
Vì DES có điểm yếu là có tính bù Khóa yếu : 01 01 01 01 01 01 01 01
Trang 12Ta mã hóa 2 lần liên tiếp nó sẽ quay lại plaintext lúc đầu.
Ví dụ khóa yếu 2 : FE FE FE FE FE FE FE FE
Cũng như khóa trên Encrypt 2 lần sẽ ra plaintext
Trang 13Và có 2 khóa yếu nữa là : E0 E0 E0 E0 F1 F1 F1 F1 và 1F 1F 1F 1F 0E 0E 0E 0E
Câu 4 : Mô tả các hàm trong mã hoá AES Cho ví dụ.
1. Mô tả các hàm trong mã hóa AES
Ta có quá trình mã hóa với 4 hàm AddRoundKey, ShiftRows, MixColumns, SubBytes
- SubBytes:
Các byte được thế thông qua bảng tra S-box Đây chính là quá trình phi tuyến của thuật toán
Trong bước SubBytes, mỗi byte được thay thế bằng một byte theo bảng
tra, S; bij = S(aij).
- ShiftRows:
Trong AES, hàng đầu được giữ nguyên Mỗi byte của hàng thứ 2 được dịch vòng trái một vị trí Tương tự, các hàng thứ 3 và 4 được dịch vòng 2 và 3 vị trí Do vậy, mỗi cột khối đầu ra của bước này sẽ bao gồm các byte ở đủ 4 cột khối đầu vào
Trang 14- MixColumns:
Bốn byte trong từng cột được kết hợp lại theo một phép biến đổi tuyến tính khả nghịch Mỗi khối 4 byte đầu vào sẽ cho một khối 4 byte ở đầu ra với tính chất là mỗi byte ở đầu vào đều ảnh hưởng tới cả 4 byte đầu ra Mỗi cột được xem như một đa thức c(x) = 3x^2 + x^2 + x(modulo x^4 + 1) trong trường hữu hạn và được nhân với đa thức Vì thế, bước này có thể được xem
là phép nhân ma trận trong trường hữu hạn
Trang 15Trong bước MixColumns, mỗi cột được nhân với một hệ số cố định c(x).
- AddRoundKey:
khóa con được kết hợp với các khối Khóa con trong mỗi chu trình được tạo
ra từ khóa chính với quá trình tạo khóa con Rijndael; mỗi khóa con có độ dài giống như các khối Quá trình kết hợp được thực hiện bằng cách XOR từng bít của khóa con với khối dữ liệu
Trang 16Trong bước AddRoundKey, mỗi byte được kết hợp với một byte trong khóa con của chu trình sử dụng phép toán XOR (⊕).
BÀI 4 : MÃ HÓA KHÓA CÔNG KHAI
Câu 1 : Hacker có thể lợi dụng điểm yếu trong giao thức trao đổi khoá
Diffie-Hellman để thực hiện một cuộc tấn công Man-in-the-Middle là một cuộc tấn công
Trang 17mà kẻ tấn công bí mật chuyển tiếp và có thể thay đổi giao tiếp giữa hai bên tin rằng
họ đang trực tiếp giao tiếp với nhau
1. Mô tả cuộc tấn công
Ví dụ : Alice hỏi Bob về khóa công khai của mình Nếu Bob gửi chìa khóa công khai cho Alice, Nhưng Hacker có thể ngăn chặn nó Hacker gửi một thông điệp giả mạo Bob đó là khóa công khai của Hacker và Alice không biết rang đó là khóa của Hacker và tin đó là của Bob và Alice mã hóa
plaintext bằng khóa của Hacker và gửi cho Bob Hacker lại chặn lại và giải
mã bằng khóa riêng của Alice và thay đổi nó và mã hóa lại bằng khóa của Bob gửi cho alice lúc đầu Bob nhận được và tin đó là của Alice
2. Vẽ hình minh họa
Câu 2 : Cho p = 13
a. Chứng minh rằng a = 2 là một primitive root modulo p Sử dụng hai tham số này để xây dựng một hệ thống trao đổi khoá Diffie-Hellman
Trang 18- Để chứng minh a là một primitive root modulo p thì ta chứng mình
a p-1 -1 chia hết cho p còn tất cả các số a-1, a 2 -1,a 3 -1, …, a p-2 -1 không chia hết cho p
Vậy a = 2 là một primitive root modulo p
- Sử dụng hai tham số này để xây dựng một hệ thống trao đổi khoá Hellman
Alice K = B^a mod p = 6^6 mod 13 = 12
Bob K = A^b mod p = 12^5 mod 13 = 12
b. Nếu public key của Alice là YA = 7, giá trị private key XA của cô ấy là bao nhiêu?
Nếu public key của Alice là YA = 7 thì XA cuar cô ấy =
YA = 2^x mod 13 = 7 => x = 11(với các số nhỏ hơn 20)
Trang 19c Nếu public key của Bob là YB = 11, giá trị private key XB của anh ấy?
YB = 2^x mod 13 = 11 = > x = 7 và 19 ( với các số nhỏ hơn 20)
Câu 3 : Viết ứng dụng mô phỏng giao thức trao đổi khoá Diffie – Hellman
Trang 20Ta có công thức : C = M^e mod n = 88^7 mod 187 = 11 => C = 11
Câu 5 : Alice sử dụng phương pháp dưới đây để mã hoá văn bản rõ (plaintext
messages) tiếng Anh với toàn các ký tự viết hoa:
a Ánh xạ mỗi ký tự viết hoa đến các số từ 100 đến 125; cụ thể là, ánh xạ A thành
100, B thành 101, , và Z thành 125
b Sau đó cô ấy mã hoá các số nguyên này sử dụng các giá trị lớn của n và e
c Phương pháp này có an toàn? Giải thích
Bài làm : Phương pháp này không an toàn Vì ánh xạ 26 ký tự từ 100 đến 125 cho các chữ từ A,B…Z với các cặp sô n và e không phù hợp làm cho Hacker dễ tìm kiếm plaintext và hacker có thể tìm plaintext qua so sách C = M^e mod n với 26 ký
tự
Câu 6 : Viết ứng dụng mô phỏng giải thuật mã hoá RSA.
Câu 7 : Mô tả và cho ví dụ về các hình thức tấn công trên mã hoá RSA:
a. Attack on Stereotyped Messages
Giả sử plaintext m bao gồm hai phần: một mảnh được biết đến B = 2kb, và một phần không rõ x Nếu mã này được mã hóa RSA với số mũ là 3, c ciphertext c được cho bởi c = m^3 = (B + x) ^3 (mod N) Nếu chúng ta biết B, c và N chúng ta
có thể áp dụng các kết quả trước đó với đa thức p (x) = (B + x)^ 3 - c, và phục hồi x0 thỏa mãn p (x0) = (B + x0)^ 3 - c ≡ 0 (Mod N), miễn là một x0 tồn tại với | x0 |
Trang 21<N^(1 / 3) Các cuộc tấn công hoạt động tốt như nhau nếu không rõ x0 nằm trong các bit quan trọng nhất của tin nhắn m chứ không phải là các bit ít quan trọng nhất.
b. Attack on Small Secret Exponents
Nó được biết rằng có một phương pháp hiệu quả để giải mã / ký kết với RSA khi số mũ bí mật d nhỏ modulo p-1 và q-1 Chúng ta gọi một số lũy thừa d một
số nguyên CRT nhỏ Đây là một trong những vấn đề chính mở trong cuộc tấn công RSA cho dù có cuộc tấn công thời gian đa thức cho các số mũ CRT nhỏ, tức là kết quả có thể được coi là tương đương với Wiener và Boneh-Durfee ràng buộc cho nhỏ d Tại Crypto 2002, tháng 5 có thể trình bày một giải pháp riêng trong trường hợp môđun RSA N = pq với các yếu tố không cân bằng p và q Dựa trên phương pháp của Coppersmith, ông đã chỉ ra rằng có một cuộc tấn công thời gian đa thức miễn là q <N0.382 Chúng ta sẽ cải thiện điều này với q
<N0.468 Do đó, kết quả của chúng tôi đến gần với trường hợp RSA bình
thường mong muốn với các yếu tố cân bằng nguyên tố Chúng ta cũng trình bày kết quả thứ hai cho số nguyên tố RSA cân bằng trong trường hợp số mũ công cộng e nhỏ hơn đáng kể so với N Nói chính xác hơn, chúng ta chỉ ra rằng có một cuộc tấn công thời gian đa thức nếu dp, dq≤min ((N / e) 25, N14} dp,
dq≤min {(N / e) 25, N14} Phương pháp này có thể được sử dụng để tấn công hai biến thể RSA nhanh được đề xuất gần đây bởi Galbraith, Heneghan,
McKee, và bởi Sun, Wu
BÀI 5 : CHỨNG THỰC DỮ LIỆU
Câu 1: Tìm hai câu tiếng Anh có ý nghĩa khác nhau nhưng có cùng giá trị băm với
16-bit XOR-hash function H⊕
1. “He likes you but I hate you”
2. “He hates you but I like you”
Câu 2 : Nêu tên một số ứng dụng có sử dụng chữ ký số nhằm đảm bảo an toàn
thông tin
Trang 22Câu 3 : Tìm 3 phần mềm có kèm theo mã băm, kiểm tra mã băm (dùng phần mềm
hoặc website) để suy ra độ tin cậy của các phần mềm này
Trang 232. Phần mền MSSQL 2016
Mã MD5 là : 9d9353f15dddd00acdfb334212af4049
Trang 24Câu 4 : Tìm 3 chứng chỉ số đính kèm theo trên các trang web có yêu cầu bảo mật
cao
1. Google.com
2. https://www.microsoft.com/vi-vn/
Trang 253. https://www.facebook.com/
Trang 26Câu 5 : Sử dụng Cryptool, thực hiện một số ví dụ:
1. Tạo chữ ký số
Trang 272. Ký vào văn bản
3. Kiểm tra chữ ký số
4. Dữ liệu giả mạo khi sử dụng chứng thực với giải thuật băm
Trang 28BÀI 6 : CÁC GIAO THỨC BẢO MẬT
Câu 1 : Sử dụng ví dụ để trình bày chi tiết cơ chế hoạt động của SSL.
1 : Xác thực sever : người dùng muốn kết nối tới sever Lúc này, phía
browser sử dụng các kỹ thuật mã hoá công khai để chắc chắn rằng certificate
và public ID của server là có giá trị và được cấp phát bởi một CA (certificate authority) trong danh sách các CA đáng tin cậy của client Điều này rất quan trọng đối với người dung
2 : Xác thức client cho phép phía server xác thực được người sử dụng muốn kết nối Phía server cũng sử dụng các kỹ thuật mã hoá công khai để kiểm tra xem certificate và public ID của server có giá trị hay không và được cấp phát bởi một CA (certificate authority) trong danh sách các CA đáng tin cậy của server không Điều này rất quan trọng đối với các nhà cung cấp
Khóa của sever được mã hóa
3 : Chứng thực khóa của sever và gửi lại khóa của mình cho sever
Client và server chia sẻ thành công các thông tin sinh khóa và sử dụng các thông tin này để tạo khóa chính Khóa chính được sử dụng để trao đổi các khóa phiên
Trang 29Câu 2 : Cài đặt VPN dựa trên IPSec
Sau khi cài đặt xong VPN/IPSEC
Trang 30Câu 3 : Nêu các yêu cầu cần thiết khi triển khai Kerberos.
Kerberos được thiết kế dựa trên giao thức Needham-Schroeder Kerberos sử dụng một bên thứ ba tham gia vào quá trình nhận thực gọi là "trung tâm phân phối khóa" (tiếng Anh: key distribution center - KDC) KDC bao gồm hai chức năng: "máy
chủ xác thực" (authentication server - AS) và "máy chủ cung cấp vé" (ticket
granting server - TGS) "Vé" trong hệ thống Kerberos chính là các chứng thực
chứng minh tính hợp lệ của người sử dụng
Mỗi người sử dụng (cả máy chủ và máy khách) trong hệ thống chia sẻ một khóa chung với máy chủ Kerberos Việc sở hữu thông tin về khóa chính là bằng chứng
để chứng minh tính hợp lệ của một người sử dụng Trong mỗi giao dịch giữa hai người sử dụng trong hệ thống, máy chủ Kerberos sẽ tạo ra một khóa phiên dùng cho phiên giao dịch đó
Giao thức được xây dựng dựa trên mật mã hóa khóa đối xứng và cần
đến một bên thứ ba mà cả hai phía tham gia giao dịch tin tưởng
Câu 4 : Xây dựng hệ thống PKI trên hệ điều hành Windows.
Trang 31Câu 5 : Xây dựng một bảng tổng hợp về vai trò, công dụng, đặc điểm… của các
giao thức nêu trong bài
Vai trò Công dụng Đặc điểm IPSec Là một giao thức
bảo mật chính tại lớp Mạng
(Network Layer – OSI) hoặc lớp Internet
(Internet Layer – TCP/IP)
-Cho phép xác thực hai
chiều,trước và trong quá trình truyền tải dữ liệu-Mã hóa đường truyền giữa 2 máy khi được gửi qua 1 mạng
-Bảo vệ gói dữ liệu IP và phòng ngự các cuộc tấn công mạng không bào mật
-Bào vệ các lưu lượng bằng việc
sử dụng mã hóa và đánh dấu dữ liệu-Chính sách IPSEC cho phép định nghĩa ra các loại lưu lượng mà IPSec kiểm tra vàcác lưu lượng đó
sẽ được bảo mật
và mã hóa như thế nào?
IPsec là yếu tố quan trọng để xây dựng mạng
riêng ảo (VPN – Virtual Private Networks)
SSL/TLS Giao thức SSL
(Secure Socket Layer Protocol) và giao thức TLS(Transport Layer Security Protocol)
là những giao thức bảo mật tại
lớp vận chuyển
-Đóng gói các giao thức ví dụ như HTTP, FTP, SMTP, NNTP và XMPP
-Cho phép trao đổi riêng tư trên mạng-Cho phép các ứng dụng client-server
-Các bên giao tiếp (nghĩa là client và server) có thể xác thực nhau bằng cách sử dụng mật
mã khóa chung.-Sự bí mật của lưu lượng dữ liệu được bảo vệ vì nối
Trang 32được dùng chủ yếu trong thực tế.
giao tiếp với nhau
an toàn
kết được mã hóa trong suốt sau khi một sự thiết lập quan hệ ban đầu
và sự thương lượng khóa session đã xảy ra.-Tính xác thực và tính toàn vẹn của lưu lượng dữ liệu cũng được bảo vệ
vì các thông báo được xác thực và được kiểm tra tính toàn vẹn một cách trong suốt bằng cách sử dụng MAC
PGP và
S/MIME
-Bảo mật email là một ứng dụng cổ điển của các giải thuật mã
hoá
-Là một chuẩn Internet về định dạng cho email
Hầu nhưmọi email trên Internet được truyền qua giao thức
SMTP theo định dạng MIME
-PGP có thể được
sử dụng để chứng thực một thông điệp,
mã hoá thông điệp, hoặc cả chứng thực lẫn mã hoá
-PGP cho phép những định dạng tổng quát như chứng
thực, nén ZIP, mã hoá
-S/MIME mã hóa email và chứng thực
S/MIME tạo ra chữ ký số
- mã hóa mail gửi
đi ngăn chặn bất
cứ ai xem và sửa
- xác minh chứ ký mail
- tự động giải mã một mail gửi đến
để người nhận đọc
- trao đổi chữ ký mail với người dung khác
- PGP
Kerberos Kerberos là một
giao thức mã hoá dùng để xác thực
- có khả năng chống lại việc nghe lén hay gửi
- Giao thức được xây dựng dựa trên mật mã hóa khóa
Trang 33trong các mạngmáy tính hoạt động trên những đường truyền không an toàn
lạicác gói tin cũ và đảm bảo tính toàn vẹn của dữ liệu
- đảmbảo chứng thực cho cả hai chiều
đối xứng và cầnđến một bên thứ
ba mà cả hai phía tham gia giao dịch tin tưởng
mạng dùng để thiết lập kết nối mạng một cách bảo mật SSH hoạt động ở lớp trên trong mô hình phân lớp TCP/IP
- cung cấp cho người dùng cách thức để thiết lập kết nối mạng được
mã hoá để tạo một kênh kết nối riêng tư
- cho phép chuyển tải các giao vận theo các giao thức khác
- ngăn chặn các hiện tượng nghe trộm, đánh cắp thông tin trên đường truyền
-SSH làm việc thông qua 3 bước đơn giản:
-Định danh host - xác định định danh của hệ thống tham gia phiên làm việc SSH.-Mã hoá - thiết lập kênh làm việc mã hoá
-Chứng thực - xác thực người sử dụng có quyền đăng nhập hệ thống