



















Preview text:
lOMoAR cPSD| 59671932
Đại Học Bách Khoa Hà Nội
Trường Điện - Điện Tử
BÁO CÁO BÀI TẬP LỚN
HỌC PHẦN: THÔNG TIN VÔ TUYẾN
Đề tài : Truyền thông bảo mật AES
Nhóm sinh viên thực hiện: Nguyễn Dương Bình 20210105 ET-LUH K66 Lê Đình Hiếu 20213755 ET-LUH K66 Lê Anh Khôi 20213761 ET-LUH K66 Nguyễn Vũ Hà Linh 20213764 ET-LUH K66
Giảng viên hướng dẫn: GS.TS Nguyễn Văn Đức MỤC LỤC
MỤC LỤC ................................................................................................................................ 2
LỜI NÓI ĐẦU .......................................................................................................................... 4
CHƯƠNG 1: TỔNG QUAN ................................................................................................... 5
1.1 Đặt vấn ề ......................................................................................................................... 5
1.2 Mục tiêu dự án ............................................................................................................... 6
1.2.1 Mục tiêu tổng quát .................................................................................................... 6
1.3 Phương pháp nghiên cứu: ............................................................................................. 8
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT ....................................................................................... 9
2.1 Mã hoá ối xứng ............................................................................................................... 9
2.1.1 Thuật toán AES ....................................................................................................... 11
2.2 Mã hóa bất ối xứng ...................................................................................................... 17
2.2.1 Thuật toán RSA ....................................................................................................... 18
2.3 Hàm băm mật mã (Hashing ) ..................................................................................... 19
2.4 Socket Programming ................................................................................................... 24
2.4.1 TCP/IP Socket ......................................................................................................... 24
2.4.2 Error handling ........................................................................................................ 25
CHƯƠNG 3: THIẾT KẾ HỆ THỐNG ................................................................................ 25
3.1 Kiến trúc tổng thể ........................................................................................................ 26
3.1.1 Mô hình Client-Server ............................................................................................ 26
3.1.2 Cấu trúc chương trình ............................................................................................ 26
3.2 Giao thức bảo mật ....................................................................................................... 27
3.2.1 Giao thức handshake .............................................................................................. 27
3.2.2 Truyền file ............................................................................................................... 27
CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ ............................................ 28
4.1 Kết quả thực nghiệm ................................................................................................... 28
4.1.1 Môi trường thử nghiệm ........................................................................................... 28
4.1.2 Biện pháp chống tấn công ...................................................................................... 29
4.2 Đánh giá hệ thống ........................................................................................................ 31
4.2.1 Ưu iểm .................................................................................................................... 31
4.2.2 Nhược iểm ............................................................................................................... 31
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .................................................... 32
5.1 Kết luận ........................................................................................................................ 32
5.2 Hướng phát triển ......................................................................................................... 33 LỜI NÓI ĐẦU
Trong thời ại số hóa ngày nay, việc truyền tải và chia sẻ thông tin trở nên vô cùng
quan trọng và phổ biến. Tuy nhiên, cùng với ó là những thách thức về bảo mật thông
tin, ặc biệt là trong quá trình truyền tải dữ liệu. Đứng trước thách thức này, việc xây
dựng một hệ thống truyền file an toàn trở thành một nhu cầu thiết yếu.
Đề tài của chúng em tập trung vào việc thiết kế và triển khai một giải pháp bảo
mật cho việc truyền tải file a phương tiện. Hệ thống ược xây dựng dựa trên Python, kết
hợp với các thuật toán mã hóa hiện ại như AES ể ảm bảo tính bảo mật, toàn vẹn và xác thực của dữ liệu.
Báo cáo này trình bày về kiến trúc hệ thống, các giao thức bảo mật ược sử dụng,
cùng với phân tích về ưu nhược iểm của hệ thống. Mục tiêu của ề tài không chỉ dừng
lại ở việc xây dựng một hệ thống truyền file an toàn, mà còn hướng tới việc tạo ra một
nền tảng có thể mở rộng và tích hợp thêm các tính năng bảo mật trong tương lai.
CHƯƠNG 1: TỔNG QUAN
1.1 Đặt vấn ề
Khi khối lượng và sự a dạng của dữ liệu có thể ược thu thập thì việc lưu trữ và
phân tích ã tăng vọt trong hơn một thập kỷ qua. Cùng với ó, những vấn ề về bảo mật
ngày càng trở nên quan trọng, ặc biệt là việc bảo vệ dữ liệu cá nhân của người dùng.
Việc truyền tải file an toàn qua mạng ặt ra nhiều thách thức quan trọng trong bối cảnh
số hóa ngày càng phát triển.
Trước hết, cần ảm bảo tính bí mật của dữ liệu, nhằm ngăn chặn việc rò rỉ thông
tin nhạy cảm như tài liệu cá nhân, thông tin tài chính hoặc dữ liệu doanh nghiệp. Nhiều
báo cáo nghiên cứu về bảo mật cho thấy người dùng ang tiếp tục trở thành nạn nhân của
kỹ nghệ xã hội, các chiến dịch lừa ảo, ánh cắp danh tính và các chiêu thức lừa ảo khác.
Cả Liên minh châu Âu và các tiểu bang ở Hoa Kỳ (bao gồm California, Utah, Colorado
và Virginia) cũng ã ban hành các quy ịnh cụ thể buộc các doanh nghiệp và tổ chức phải
bảo vệ dữ liệu cá nhân cho người dùng của họ. Tuy nhiên, người dùng với tư cách cá
nhân sử dụng và xử lý dữ liệu của bản thân và của người khác thường có ít biện pháp bảo vệ hơn.
Bên cạnh ó, việc xác thực nguồn gốc và người nhận cũng là một yêu cầu thiết
yếu nhằm tránh tình trạng giả mạo danh tính hoặc gửi nhầm dữ liệu. Nếu người dùng
mạng chủ quan và thiếu kiến thức, sự hiểu biết thì những “bẫy lừa ảo” trực tuyến ang
gia tăng gây thiệt hại, hậu quả không lường ến người dùng.
Ngoài ra, kiểm tra tính toàn vẹn của dữ liệu ể ảm bảo dữ liệu không bị sửa ổi
trong quá trình truyền tải cũng là một yêu cầu quan trọng, ặc biệt ối với các ứng dụng y
tế, pháp lý hoặc tài chính. Dịch vụ toàn vẹn dữ liệu cần ược cung cấp kịp thời. Điều này
là do trong các ứng dụng thực tế, người dùng internet thường ã quá muộn ể phát hiện ra
lỗi dữ liệu khi họ thực sự truy xuất dữ liệu. Điều này ặc biệt úng ối với việc lưu trữ lâu
dài một khối lượng lớn dữ liệu, trong ó nhiều phần/khối dữ liệu hiếm khi ược truy cập
trong một khoảng thời gian dài. Khi một số phần dữ liệu bị hỏng khi truy xuất, có thể
không thể khôi phục vì thông tin cần thiết ể khôi phục có thể ã bị mất trong khoảng thời gian dài.
Các cuộc tấn công mạng ang ược diễn ra từng giờ, từng ngày. Số vụ tấn công gia
tăng với tốc ộ áng kinh ngạc. Mỗi năm lại có những phương thức, xu hướng và kỹ thuật
tấn công mạng mới. Các hệ thống cần chống lại nhiều hình thức tấn công, mỗi hình thức
tấn công ều nhắm vào một iểm yếu cụ thể trong quá trình truyền tải, ảnh hưởng trực tiếp
ến tính bảo mật, toàn vẹn, và sẵn sàng của dữ liệu. Nhiều hình thức tấn công phổ biến
như MITM, phishing, ransomware hoặc DDoS, vốn ngày càng tinh vi và phức tạp.
Một thách thức khác là cân bằng giữa bảo mật và hiệu năng, ặc biệt trong các
ứng dụng thời gian thực hoặc hệ thống IoT, nơi yêu cầu ộ trễ thấp và sử dụng tài nguyên
tối ưu. Do ó, việc giải quyết các thách thức này không chỉ yêu cầu công nghệ tiên tiến
mà còn òi hỏi sự kết hợp chặt chẽ giữa thiết kế hệ thống, ào tạo người dùng và xây dựng
hạ tầng bảo mật hiệu quả.
1.2 Mục tiêu dự án
1.2.1 Mục tiêu tổng quát
Kỹ thuật bảo vệ thông tin luôn luôn thay ổi theo trình ộ phát triển của kỹ thuật thông
tin. Ngày nay, sự phát triển nhanh chóng của công nghệ, kéo theo sự a dạng và khó dự
oán của các mối nguy cơ an toàn làm cho bài toán xây dựng hệ thống bảo vệ thông tin
ã trở nên hết sức phức tạp. Mặc dù phần lớn các chuyên gia ều cho rằng một hệ thống
bảo vệ thông tin an toàn tuyệt ối là không hề tồn tại, song trong lĩnh vực này người ta ã
ạt ược những thành tựu to lớn cả trên bình diện lý thuyết cũng như thực tiễn. Bên cạnh
việc thiết kê, sản xuất các thiết bị kỹ thuật phục vụ nhu cầu ảm bảo an toàn cho các
thành phần của hệ thống thông tin, các tổ chức quốc tế và của các quốc gia, các hãng
sản xuất ã ban hành tài liệu hướng dẫn trong lĩnh vực xây dựng và quản lý an toàn thông tin.
Mã hóa dữ liệu là quá trình chuyển dữ liệu từ dạng này sang dạng khác hoặc sang
dạng code mà chỉ có người có quyền truy cập vào key giải mã hoặc có mật khẩu mới có
thể ọc ược dữ liệu ó. Có 2 loại mã hóa ược triển khai phổ biến hiện nay là mã hóa ối xứng và bất ối xứng.
Mã hóa ối xứng: Đây ược cho là kỹ thuật mã hóa ơn giản và ược sử dụng phổ
biến nhất, với một số ặc iểm nổi bật như: Thuật toán mã hóa ối xứng ít phức tạp
và có thể thực thi nhanh, ây là kỹ thuật ược ặc biệt ưa thích trong các hoạt ộng
truyền tải dữ liệu hàng loạt.
Mã hóa bất ối xứng: Đây là loại hình mã hóa ra ời sau mã hóa ối xứng và còn
ược gọi là công nghệ mã hóa public-key.Mã hóa bất ối xứng ược cho là an toàn hơn mã
hóa ối xứng vì nó sử dụng 2 key riêng biệt cho 2 quy trình mã hóa và giải mã.Public
key ược sử dụng ể mã hóa sẽ ược công khai, nhưng private key ể giải mã là hoàn toàn
bí mật. Khi một tin nhắn ược mã hóa bằng public key, nó chỉ có thể ược giải mã bằng
private key. Tuy nhiên, khi một tin nhắn ược mã hóa bằng private key, nó có thể ược
giải mã bằng public key.Các kỹ thuật mã hóa bất ối xứng phổ biến bao gồm RSA, DSA và PKCS.
1.2.2 Mục tiêu cụ thể
- Thiết kế và cài ặt hệ thống client-server cho truyền file: Hệ thống client-server
truyền file ược thiết kế với mục tiêu chính là ảm bảo quá trình truyền tải dữ liệu
giữa hai bên diễn ra an toàn và áng tin cậy. Server óng vai trò trung tâm, chịu
trách nhiệm lưu trữ, quản lý file và xử lý các yêu cầu từ Client, trong khi Client
ảm bảo việc gửi, nhận dữ liệu và tương tác trực tiếp với người dùng. Việc triển
khai sử dụng các giao thức bảo mật và mã hóa hiện ại sẽ giúp chống lại các mối
e dọa mạng trong quá trình truyền tải dữ liệu.
- Tích hợp cơ chế mã hóa hai lớp (RSA + AES): Hệ thống bảo mật sử dụng kết
hợp hai loại mã hóa, RSA và AES, ể tăng cường an toàn dữ liệu. RSA ược sử
dụng trong quá trình trao ổi khóa, ảm bảo khóa bí mật của thuật toán AES ược
truyền tải an toàn qua mạng. Sau khi khóa AES ược trao ổi thành công, thuật
toán AES sẽ thực hiện mã hóa nội dung file với tốc ộ cao, giảm thiểu ộ trễ trong
hệ thống. Cơ chế mã hóa hai lớp này kết hợp ưu iểm của cả hai phương pháp:
RSA ảm bảo tính bảo mật cao trong giao tiếp khóa, trong khi AES tối ưu hóa
hiệu năng cho việc mã hóa dữ liệu lớn. Điều này giúp cân bằng giữa tính bảo
mật và tốc ộ xử lý, phù hợp với các ứng dụng thực tiễn.
- Xây dựng giao thức handshake: Giao thức handshake ược thiết kế ể thiết lập
kênh truyền an toàn giữa Client và Server trước khi dữ liệu ược truyền tải. Quá
trình handshake bao gồm việc trao ổi khóa công khai giữa hai bên, xác thực
danh tính thông qua chứng chỉ số, và thiết lập khóa phiên (session key) ể mã
hóa toàn bộ dữ liệu trao ổi sau ó.
- Triển khai cơ chế chữ ký số: Chữ ký số là một thiết bị ã mã hóa toàn bộ dữ liệu
và thông tin của cá nhân hoặc doanh nghiệp bằng khóa riêng của chủ sở hữu,
dùng ể ký kết các loại văn bản và tài liệu trực tuyến. Điều này ảm bảo người
nhận có thể xác ịnh và xác thực úng nguồn gốc, cũng như ảm bảo tính toàn vẹn
của dữ liệu nhận ược. Bằng cách sử dụng thuật toán RSA, Server tạo chữ ký số
bằng cách băm dữ liệu cần truyền và mã hóa hàm băm này bằng khóa riêng tư.
Khi nhận ược file, Client sẽ giải mã chữ ký số bằng khóa công khai của Server
và ối chiếu giá trị băm ể xác minh rằng dữ liệu không bị sửa ổi. Điều này không
chỉ giúp phát hiện các hành vi giả mạo hoặc tấn công dữ liệu mà còn khẳng ịnh
nguồn gốc dữ liệu, ảm bảo rằng nó ược gửi từ một nguồn tin cậy.
- Tối ưu hiệu năng truyền tải: Để ảm bảo hiệu năng truyền tải cao, hệ thống sử
dụng các kỹ thuật tối ưu hóa trong quá trình mã hóa, truyền dữ liệu và quản lý
tài nguyên. Mã hóa AES ược sử dụng cho dữ liệu lớn nhờ tốc ộ xử lý nhanh và
khả năng thực hiện trên phần cứng như GPU, giúp giảm tải cho hệ thống.
1.3 Phương pháp nghiên cứu:
Phương pháp nghiên cứu bắt ầu bằng việc thu thập và phân tích các lý thuyết liên
quan ến mã hóa và bảo mật thông tin. Các thuật toán mã hóa như AES, RSA, và giao
thức bảo mật như TLS ược nghiên cứu ể hiểu rõ nguyên lý hoạt ộng, ưu iểm, hạn chế,
cũng như cách áp dụng chúng trong truyền tải dữ liệu an toàn. Ngoài ra, các kỹ thuật
kiểm tra tính toàn vẹn dữ liệu như hàm băm (SHA-256) và các cơ chế xác thực như chữ
ký số cũng ược tìm hiểu nhằm cung cấp nền tảng lý thuyết vững chắc cho việc thiết kế hệ thống.
Dựa trên cơ sở lý thuyết, hệ thống ược phân tích và thiết kế ể áp ứng các yêu cầu
bảo mật và hiệu năng. Quá trình này bao gồm việc xác ịnh luồng dữ liệu giữa Client và
Server, thiết kế các cơ chế trao ổi khóa, mã hóa dữ liệu, và xác thực danh tính. Sơ ồ
luồng dữ liệu, mô hình giao thức handshake, cũng như cấu trúc tổng thể của hệ thống
ược xây dựng ể ảm bảo tính an toàn và khả năng mở rộng.
Sau khi hoàn thiện thiết kế, hệ thống ược triển khai bằng cách sử dụng các công
cụ và ngôn ngữ lập trình phù hợp như Python. Giai oạn cài ặt tập trung vào việc tích
hợp các thuật toán mã hóa, cơ chế xác thực, và các giao thức truyền tải dữ liệu. Song
song ó, quá trình kiểm thử ược thực hiện trên các kịch bản thực tế nhằm ánh giá hiệu
năng và mức ộ bảo mật của hệ thống. Các thử nghiệm bao gồm truyền tải dữ liệu với
kích thước khác nhau, kiểm tra tính toàn vẹn dữ liệu sau truyền tải, và kiểm tra khả năng
chống lại các cuộc tấn công phổ biến.
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Mã hoá ối xứng - 5 thành phần chính : •
Plaintext : Dữ liệu ược ưa vào thuật toán ể mã hoá . •
Giải thuật mã hoá ( Encryption Algorithm) : Thuật toán sẽ thực hiện thay
thế hoặc biến ổi trên dữ liệu plaintext •
Khoá bí mật : Được chia sẻ giữa người dùng và người nhận , khoá mang
giá trị K ộc lập với plaintext và thuật toán
= > Các giá trị K khác nhau khi ược thay vào hàm X sẽ nhận ược bản mã khác nhau •
Ciphertext : Thông tin bị thay ổi bởi plaintext input và khoá K thông qua
Giải thuật mã hoá ( Hàm Y ) •
Thuật toán giải mã : Chạy ngược lại so với giải thuật mã hoá với input là
ciphertext và Khoá K ể tạo ra bản mã ban ầu
- Phương thức hoạt ộng: •
File ưa vào plaintext dưới dạng X=[ X1,X2,.....XM] các phần tử là các bit nhị phân •
Khoá K ược tạo từ Key Source : K = [K1,K2,...KJ] •
Khoá K ược phân phối cho người gửi và người nhận thông qua Secure
Channel ể tránh bên thứ 3 tham gia vào quá trình phân phối khoá •
Dữ liệu X ưa vào EA tạo ra Y=[Y1,....YK] là kết quả của quá trình mã hoá •
Y ược ưa vào quá trình giải mã hoá Decrytion sử dụng khoá K ược gửi
qua Secure Channel trở về X •
Đặt giả sử kẻ tấn công ( Cryptanalist) nắm ược Y= E(K,X) cũng giả sử
kẻ tấn công nắm ược thuật toán mã hoá và giải mã nhưng không có khoá K
=> Thông tin nhận ược của kẻ tấn công sẽ sai khác với bản gốc - Ưu iểm •
Quá trình mã hóa và giải mã nhanh chóng và hiệu quả. •
Thuật toán ơn giản và dễ thực hiện. - Nhược iểm •
Vấn ề lớn nhất là việc bảo vệ và truyền tải khóa bí mật. Nếu kẻ tấn công
có ược khóa này, họ có thể giải mã tất cả thông tin ã mã hóa. •
2 cách tấn công phổ biến nhất là Tấn công phân tích mã (Cryptanalysis)
và tấn công vét cạn (Brute-force)
2.1.1 Thuật toán AES
2.1.1.1 Cấu trúc - Các thành phần chính :
- Khối dữ liệu : AES hoạt ộng trên khối 128-bit (16 byte). Mỗi khối 128-bit này
ược chia thành một ma trận 4x4, với mỗi ô chứa 1 byte (8 bit).
- Khóa : Khóa là một chuỗi các bit có ộ dài 128, 192 hoặc 256 bit, ược sử dụng
trong quá trình mã hóa và giải mã.
2.1.1.2 Nguyên lí hoạt ộng
- PLAINTEXT : Bản thông iệp vào là 1 bản rõ với khối dữ liệu 128 bit
- AddRoundKey : Khóa vòng ược chèn , khóa vòng có thể là 128,192 hoặc 256 bit
- Encryption Round : Vòng biến ổi bao gồm 4 phép toán SubBytes,
ShiftRows, MixColumns và AddRoundkey ược thực hiện theo vòng lặp từ 1 ến
Nr-1, trong ó Nr phụ thuộc vào khóa vòng theo bảng sau
- Ở Last Round, chỉ thực hiện 3 phép biển ổi SubBytes, ShiftRows và
AddRoundKey và bỏ qua phép MixColumns ể ảm bảo tính ối xứng cho quá trình giải mã.
- Quá trình giải mã thực hiện các phép biến ổi ngược theo thứ tự ảo ngược của
quá trình mã hóa. Mỗi phép biến ổi nghịch ảo ược thiết kế ể hoàn toàn khôi
phục lại trạng thái trước khi áp dụng phép biến ổi tương ứng trong quá trình mã
hóa. Điều này ảm bảo rằng thông iệp gốc có thể ược khôi phục chính xác khi biết khóa mã hóa.
- Giải thích về các hàm: •
Hàm SubBytes: Thực hiện phép thay thế của byte của mảng trạng thái
bằng cách sử dụng một bảng thế S-Box. •
Khối dữ liệu vào 128 bit ược chia làm 4 hàng , mỗi hàng 4 khối , mỗi khối
chứa 8 bit = 1 byte ược mã hóa theo S-box . Các khối ược biểu diễn dưới dạng số hexa.
VD : 1 khối có giá trị là ‘ 19 ‘ tương ứng với hàng 1 , cột 9 8e
- Hàm ShiftRows : Dịch vòng 3 hàng cuối của mảng trạng thái với số lần dịch (
hoặc số byte bị dịch ) khác nhau
- MixColumns: làm việc trên các cột của mảng trạng thái . Các cột ược coi như
một a thức trong trường GF(28) và nhân với 1 a thức a(x) với a(x) =
3x^3+X^2+x+2 và kết quả ược trả về S’ Mô tả bằng ma trận:
- AddRoundKey : Một khóa vòng ược cộng vào bảng trạng thái bằng 1 thao tác XOR bit
- Key Expand : Quá trình sinh các khóa con gồm 4 bước , Rotword ( quay trái 8
bit ) , SubByte ( như trên ) , Rcon ( Tính giá trị Rcon (i) ) và dịch vòng ( ShiftRow)
• Rotword : Thực hiện hoán vị vòng 1 double word và trả kết quả về 1
doubleword ược tính theo công thức
▪ Rotword(X[31-0]) = [X[7-0], X[31-24], X[23-16], X[15-8]] , bản
chất của Rotword chỉ là thay ổi các vị trí •
Subbyte : Biến ổi 4 byte ầu vào thành 4 byte ầu ra qua S-box
- Rcon : Mảng chứa hằng số trong các vòng lặp
2.1.1.3 Ưu nhược iểm -
Mã hóa giá trị nhiều lần , sử dụng 4 phương pháp thay ổi giúp dữ liệu khó bị dò ,
khóa ược ưa vào ma trận nên gần như không thể bị tấn công bằng phương thức phân tích mã và vét cạn -
Khó hoạt ộng trên các thiết bị có tài nguyên hạn chế ( di ộng ) -
Phải bảo mật khóa cao vì chỉ có 1 key cho cả 2 phương thức
2.1.1.4 Các mode hoạt ộng -
ECB (Electronic Codebook) : Mỗi khối dữ liệu ược mã hóa ộc lập bằng cùng một
khóa. Mỗi khối dữ liệu 128-bit sẽ ược mã hóa thành một khối ciphertext tương ứng. -
CBC (Cipher Block Chaining) : mỗi khối dữ liệu sẽ ược XOR với ciphertext của
khối trước ó trước khi ược mã hóa. Điều này có nghĩa là mỗi khối ciphertext phụ
thuộc vào các khối dữ liệu trước ó, tạo ra sự phụ thuộc và che giấu cấu trúc của dữ
liệu, cần một vector khởi tạo cho khối ầu tiên -
CFB (Cipher Feedback) : phương thức giống ECB như sử dụng khối mã hóa sau
AES ể XOR với dữ liệu gốc -
OFB (Output Feedback) : Giống CFB nhưng lấy luôn ầu ra của AES cho khối tiếp theo -
CTR (Counter) : Sử dụng bộ ếm thay cho ầu ra AES ( feedback ) , bộ ếm sẽ ược
mã hóa và XOR với plaintext -
GCM (Galois/Counter Mode) : AES ược sử dụng trong chế ộ CTR ể mã hóa dữ
liệu, trong khi một hàm GF ược sử dụng ể tạo mã xác thực (authentication tag) cho
dữ liệu. Điều này giúp bảo vệ tính toàn vẹn và ảm bảo rằng dữ liệu không bị thay
ổi trong quá trình truyền.
2.1.1.5 Độ phức tạp và hiệu năng -
AES có ộ phức tạp tính toán tuyến tính (linear complexity) theo số lượng bit của dữ
liệu (128 bit) và số vòng mã hóa (10, 12, hoặc 14 vòng). -
Các phép toán của mỗi vòng khá ơn giản , dễ dàng thực hiện ở phần mềm và cứng
2.2 Mã hóa bất ối xứng - Nguyên lí hoạt ộng
Về cơ bản khá giống với nguyên lí hoạt ộng của mã hóa ối xứng , nhưng sử dụng
1 cặp khóa ( Public Key và Private Key ) Khóa Public ược sử dụng ể mã hóa plaintext
, ược lan truyền rộng rãi Thông tin mã hóa ( Cyphertext ) sẽ ược giải mã dựa vào
khóa Private Key, mỗi người sẽ có 1 Private Key khác nhau . - Ưu nhược iểm •
Không cần phải chia sẻ khóa riêng tư do plaintext ược mã hóa bằng Public Key •
Độ dài của khóa Private Key rất lớn nên khó bị tấn công •
Dễ ối với phó với kiểu tấn công Man-in-the-middle (tấn công trung gian ) - Nhược iểm
Tốc ộ xử lí chậm hơn nhiều so với mã hóa ối xứng •
Đòi hỏi tính toán phức tạp nên không phù hợp với mã hóa dữ liệu lớn
2.2.1 Thuật toán RSA -
Cho n = p*q ( p, q là số nguyên tố lẻ ) -
Một số nguyên b thoả mãn UCLN ( b, (p-1), (q-1) ) = 1 - C = const
Vấn ề cần giải quyết : tìm một số nguyên x sao cho x^b = c ( mod n) -
Cơ chế sinh khoá : Sinh ra 2 khoá Public và Private Key •
Tạo ra 2 số nguyên tố lớn p và q xấp xỉ nhau •
n= p q và φ(n) = (p-1)*(q-1) •
Chọn một số ngẫu nhiên e , 1 < e < φ(n) thoả mãn UCLN ( e, φ(n)) = 1 •
Sử dụng thuật toán Euclid ể tính d ( 1 < d < φ(n) ) , sao cho e*d= 1 (mod φ(n))
=> Public Key sẽ là (n , e) còn Private Key là ( d) ( d là nghịch ảo của e) -
Quá trình mã hoá và giải mã • Mã hoá •
Lấy khoá công khai ( n ,e ) theo thuật toán •
Chọn một bản rõ X trong khoảng [1 , n-1] • Tính y = x^e mod n • Nhận ược bản mã Y • Giải mã •
Sử dụng khoá bí mật d ể giải mã x=y^d mod n
Ta lấy ví dụ RSA với bit nhị phân - Sinh khoá • Chọn p và q là 11 và 13 • n = 11*13=143 • φ(n) = (11-1)* (13-1) = 120 • Chọn e = 37 •
Sử dụng thuật toán UCLN ể tìm d sao cho e*d=1 ± 120 , ta tìm ược d = 13 ( e*d = 481) - Mã hoá •
Để mã hoá một chuỗi bit nhị phân, ta chia thành nhiều oạn có ộ dài là u
bit sao cho 2𝑢 < 142 => u = 7. Mỗi oạn như vậy sẽ biểu diễn một số nằm trong khoảng 0-127 •
Tính mã Y theo công thức trên
Đặt ví dụ ầu vào là X = 00000010 = 2, ta có
E(x) = X^37=12 ± 143 => Y = 00001100 - Giải mã •
Xử lí X = D(Y)=12^13=2 ± 143
Ứng dụng của RSA trong thực tế: Ở ây, chữ kí số ược óng vai trò như một thông
tin ược giải mã qua Private Key, chữ ký số không thể bị giả mạo nếu không biết ược
Private Key của mỗi người. Người nhận sử dụng Public Key ể xác minh chữ kí số
và sẽ nhận c thông tin không bị sai lệch nếu úng Private Key
2.3 Hàm băm mật mã (Hashing ) - Đặc iểm •
Các thông tin ều sẽ ược lưu trữ dưới dạng một hàm gồm một số bit cố ịnh
(ví dụ với SHA-256 thì ầu vào luôn ở dạng 256 kí tự) •
Hàm băm mật mã phải là một hàm một chiều, rất khó (hoặc không thể)
từ giá trị băm tìm lại ược ầu vào ban ầu. Không có cách nào ể giải mã giá
trị băm ể thu lại thông tin gốc •
Chỉ cần thay ổi nhỏ cũng có thể thay ổi hoàn toàn hàm băm •
Mỗi giá trị ể có một hàm băm khác nhau, nên không tồn tại việc 2 giá trị có cùng 1 hash - Cấu trúc - Quy trình băm
Sử dụng bảng mã ASCII ể ổi dữ liệu ầu vào sang dạng nhị phân •
Tiền xử lí: Khâu này ược dùng ể biến ổi dãy nhị phân trở thành một số
chia hết cho 512 , với các dữ liệu k ủ hoặc không phải bội 512 thì sẽ thêm
bit ể ủ. (ví dụ dữ liệu có 460 bit sẽ thêm 52 bit) •
Chia làm N khối, mỗi khối N chứa 512 bit. •
Trong khối chia làm 16 hàng , mỗi hàng chứa 32 bit từ hàng M0 ến hàng M15 •
Thiết giá trị HashValue cho mỗi hàng, với SHA-256 thì mỗi hàng chứa 8
bit và ược mã hoá như sau