Tải bản đầy đủ (.pdf) (169 trang)

Luận văn:Nghiên cứu và xây dựng ứng dụng bảo mật trên PDA docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.86 MB, 169 trang )




Luận văn
Nghiên cứu và xây dựng ứng
dụng bảo mật trên PDA




KHOA CNTT – ĐH KHTN






i
Lời cảm ơn

Chúng em cảm ơn khoa Công nghệ Thông tin, trường Đại học Khoa học Tự
nhiên Thành phố Hồ Chí Minh đã tạo điều kiện cho chúng em thực hiện đề tài.
Chúng con gởi tất cả lòng biết ơn và sự kính trọng của chúng con đến cha mẹ
cùng toàn thể gia đình, những người đã sinh thành, dưỡng dục và là chỗ dựa vững
chắc cho chúng con vượt qua mọi khó khăn.
Chúng em trân trọng biết ơn thầy Dương Anh Đức, thầy Trần Minh Triết đã
tận tình hướng dẫn, chỉ bảo chúng em để chúng em thực hiện tốt đề tài luận văn tốt
nghiệp.
Chúng em cảm ơn quý thầy cô đã giảng dạy, trang bị những kiến thức quý
báu cho chúng em trong những năm học vừa qua.
Xin chân thành cảm ơn các anh chị, bạn bè đã nhiệt tình giúp đỡ, động viên


chúng tôi trong thời gian học tập và nghiên cứu.
Mặc dù chúng em đã nỗ lực hoàn thành luận văn trong phạm vi và khả năng
cho phép nhưng chắc chắn luận văn vẫn còn nhiều thiếu sót. Chúng em rất mong
nhận được sự thông cảm, góp ý và tận tình chỉ bảo của quý thầy cô và các bạn.

Tp. Hồ Chí Minh, 07/2004
Nhóm sinh viên thực hiện
Văn Đức Phương Hồng – Nguyễn Minh Huy




KHOA CNTT – ĐH KHTN






ii
Lời mở đầu
Ngày nay, công nghệ thông tin và các sản phẩm công nghệ thông tin đã góp
phần giúp cuộc sống của con người thoải mái hơn. Liên lạc giữa các cá nhân và tổ
chức trở nên thuận tiện, từ đó lượng thông tin, dữ liệu giao dịch tăng nhanh về số
lượng lẫn chất lượng.
Trước sự bùng nổ thông tin, việc bảo mật các dữ liệu nhạy cảm giữ vai trò rất
quan trọng. Với sự ra đời của các thiết bị di động cầm tay và các thiết bị hỗ trợ cá
nhân kỹ thuật số, thông tin có thể được quản lý dễ dàng ở mọi lúc mọi nơi. Sự cơ
động của các thiết bị đem lại nhiều tiện lợi cho người sử dụng nhưng đồng thời
cũng mang lại những rủi ro cao khi dữ liệu trong các thiết bị bị mất hoặc bị lấy cắp.

Do đó nhu cầu về ứng dụng mã hóa và bảo mật trên các thiết bị là cần thiết.
Trên thực tế, việc bảo mật trên thiết bị di động chưa được quan tâm rộng rãi.
Các hệ thống bảo mật trên thiết bị di động chỉ giới hạn ở các chức năng bảo mật
được cung cấp tích hợp trong phần cứng thiết bị. Một số ít ứng dụng phần mềm mã
hóa bảo mật trên thiết bị di động có giá thành cao nhưng độ bảo mật ở mức trung
bình.
Với lý do trên, chúng em đã thực hiện đề tài "Nghiên cứu và xây dựng ứng
dụng bảo mật trên PDA" nhằm nghiên cứu, thử nghiệm về các phương pháp, thuật
toán mã hóa bảo mật đồng thời cũng nghiên cứu khả năng đưa chức năng mã hóa
vào ứng dụng trên thiết bị hỗ trợ cá nhân kỹ thuật số. Dựa trên cơ sở lý thuyết đã
nghiên cứu, chúng em thực hiện xây dựng bộ thư viện SPDA Cryptolib với các
thuật toán được xem là mới và hiệu quả hiện nay. Bộ thư viện là công cụ giúp các
lập trình viên có thể thực hiện mã hóa bảo mật trên thiết bị. Sử dụng thư viện đã xây
dựng, chúng em thực hiện ứng dụng Pocket Secure Data với các chức năng giúp
người dùng có thể thực hiện mã hóa, giải mã thông tin, tạo và xác nhận chữ ký điện
tử một cách nhanh chóng và thuận tiện.




KHOA CNTT – ĐH KHTN






iii
Nội dung luận văn được trình bày trong 10 chương; trong đó, 6 chương đầu
trình bày các vấn đề về lý thuyết mã hóa và giới thiệu về thiết bị trợ giúp cá nhân kỹ

thuật số; 4 chương cuối tập trung vào bộ thư viện SPDA Cryptolib và ứng dụng
Pocket Secure Data.
· Chương 1. Tổng quan: Giới thiệu về mã hóa và xác định mục tiêu đề tài.
· Chương 2. Mã hóa quy ước: Giới thiệu tóm tắt một số phương pháp mã hóa
quy ước.
· Chương 3. Mã hóa khóa công khai.: Trình bày một số phương pháp mã
hóa khóa công khai.
· Chương 4. Các thuật toán hàm băm và chữ ký điện tử: Trình bày các
thuật toán trong chuẩn hàm băm an toàn và giới thiệu về chữ ký điện tử
· Chương 5. Tổng quan về PDA và môi trường phát triển .NET Compact
Framework: Giới thiệu về thiết bị PDA và trình bày về môi trường phát
triển .NET Compact Framework.
· Chương 6. Xây dựng ứng dụng bảo mật trên PDA - vấn đề và giải
pháp: Trình bày các vấn đề gặp phải khi xây dựng ứng dụng bảo mật trên
PDA và các giải pháp đề nghị.
· Chương 7. Xây dựng bộ thư viện SPDA Cryptolib: Giới thiệu bộ thư viện
SPDA Cryptolib .
· Chương 8. Xây dựng ứng dụng Pocket Secure Data: Giới thiệu ứng dụng
Pocket Secure Data.
· Chương 9. Cài đặt và triển khai ứng dụng
· Chương 10. Tổng kết: Tóm tắt vấn đề đã nghiên cứu thực hiện và hướng
phát triển trong tương lai.




KHOA CNTT – ĐH KHTN







iv
Mục lục
Trang
Lời cảm ơn i
Lời mở đầu ii
Mục lục iv
Danh sách hình vii
Danh sách bảng ix
Một số khái niệm và thuật ngữ x
Chương 1. Tổng quan 2
1.1. Giới thiệu 2
1.1.1. Khái niệm mật mã học 2
1.1.2. Các định nghĩa 2
1.1.3. Các loại mã hóa 3
1.2. Mục tiêu của đề tài 3
Chương 2. Mã hóa quy ước 3
2.1. Giới thiệu mã hóa quy ước 3
2.1.1. Hệ thống mã hóa quy ước 3
2.1.2. Các thuật toán mã hóa quy ước 3
2.2. Các thuật toán ứng viên AES và Rijndael 3
2.2.1. Các thuật toán ứng viên AES 3
2.2.2. Thuật toán Rijndael 3
2.3. Đánh giá các phương pháp mã hóa quy ước 3
Chương 3. Mã hóa khóa công khai 3
3.1. Giới thiệu mã hóa khóa công khai 3
3.2. Phương pháp RSA 3
3.2.1. Mô hình mã hóa dữ liệu với RSA 3

3.2.2. Mô hình trao đổi khóa theo RSA 3
3.3. Phương pháp ECC (Elliptic Curve Cryptography) 3
3.3.1. Lý thuyết Elliptic Curve 3
3.3.2. Áp dụng lý thuyết Elliptic Curve vào mã hóa 3
3.4. Đánh giá các phương pháp mã hóa khóa công khai 3
3.4.1. Ứng dụng của mã hóa khóa công khai 3
3.4.2. So sánh giữa các phương pháp mã hóa khóa công khai 3
Chương 4. Các thuật toán hàm băm và chữ ký điện tử 3
4.1. Các thuật toán hàm băm 3
4.1.1. Giới thiệu hàm băm 3
4.1.2. Giới thiệu các chuẩn thuật toán hàm băm Secure Hash Standard(SHS)
trong FIPS180-2 (02/2004) 3
4.1.3. Giới thiệu đề xuất hàm băm mới AES–HASH của Bram Cohen 3
4.2. Chữ ký điện tử 3
4.2.1. Mô hình chữ ký điện tử theo RSA 3




KHOA CNTT – ĐH KHTN






v
4.2.2. Thuật toán chữ ký điện tử DSA 3
4.2.3. Thuật toán chữ ký điện tử trên Elliptic Curve (ECDSA) 3
Chương 5. Tổng quan về PDA và môi trường phát triển .NET Compact

Framework 3
5.1. Tìm hiểu thiết bị PDA 3
5.1.1. Đặc điểm của PDA 3
5.1.2. Các hạn chế của PDA 3
5.2. Tổng quan về WindowCE và Pocket PC 3
5.2.1. Giới thiệu hệ điều hành Windows CE 3
5.2.2. Giới thiệu Pocket PC 3
5.3. Giới thiệu .NET Compact Framework 3
Chương 6. Xây dựng ứng dụng bảo mật trên PDA - vấn đề và giải pháp 3
6.1. Các vấn đề khi xây dựng ứng dụng bảo mật trên PDA 3
6.1.1. Khả năng tính toán 3
6.1.2. Khả năng lưu trữ 3
6.1.3. Khả năng tương tác giữa người sử dụng và thiết bị 3
6.1.4. Mức độ hỗ trợ của các thư viện lập trình 3
6.2. Các giải pháp cụ thể 3
6.2.1. CryptoAPI 3
6.2.2. Xây dựng bộ thư viện SPDA Cryptolib 3
Chương 7. Xây dựng bộ thư viện SPDA Cryptolib 3
7.1. Phát biểu bài toán 3
7.2. Kiến trúc bộ thư viện 3
7.2.1. Sơ đồ kiến trúc bộ thư viện 3
7.2.2. Danh sách các lớp trong thư viện 3
Chương 8. Xây dựng ứng dụng Pocket Secure Data 3
8.1. Phát biểu bài toán 3
8.2. Phân tích yêu cầu 3
8.2.1. Bảng chú giải 3
8.2.2. Các yêu cầu chức năng 3
8.2.3. Các yêu cầu phi chức năng 3
8.3. Sơ đồ Usecase 3
8.3.1. Một số đặc tả Usecase chính 3

8.3.2. Một số sơ đồ tuần tự chính 3
8.4. Sơ đồ lớp 3
8.4.1. Phân hệ client 3
8.4.2. Phân hệ server 3
8.5. Thiết kế dữ liệu 3
8.5.1. Sơ đồ dữ liệu 3
8.5.2. Mô tả dữ liệu 3
8.5.3. Ràng buộc toàn vẹn 3
8.6. Thiết kế giao diện 3
8.6.1. Sơ đồ màn hình 3




KHOA CNTT – ĐH KHTN






vi
8.6.2. Màn hình phân hệ server 3
8.6.3. Màn hình phân hệ client 3
Chương 9. Cài đặt và triển khai ứng dụng 3
9.1. Môi trường cài đặt 3
9.2. Mô hình cài đặt 3
9.3. Kết quả thử nghiệm 3
Chương 10. Tổng kết 3
10.1. Kết luận 3

10.2. Hướng phát triển 3
Phụ lục 3
Tài liệu tham khảo 3





KHOA CNTT – ĐH KHTN






vii
Danh sách hình
Hình 2-1: Mô hình hệ thống mã hóa quy ước 3
Hình 2-2: Sơ đồ quá trình mã hóa dữ liệu bằng phương pháp DES 3
Hình 3-1: Mô hình hệ thống mã hóa khóa công khai 3
Hình 3-2: Một ví dụ về elliptic curve 3
Hình 3-3: Điểm ở vô cực 3
Hình 3-4: Phép cộng trên elliptic curve 3
Hình 3-5: Phép nhân đôi trên elliptic curve 3
Hình 3-6: Mô hình CA tập trung 3
Hình 3-7: Mô hình CA phân cấp 3
Hình 3-8: Mô hình CA Web of Trust 3
Hình 3-9: So sánh mức độ bảo mật giữa ECC, RSA / DSA 3
Hình 7-1: Class diagram của thư viện SPDA Cryptolib 3
Hình 8-1: Usecase diagram của ứng dụng Pocket Secure Data 3

Hình 8-2: Class diagram trên phân hệ client 3
Hình 8-3: Class diagram trên phân hệ server 3
Hình 8-4: Sơ đồ thiết kế dữ liệu của Pocket Secure Data 3
Hình 8-5: Sơ đồ màn hình phân hệ server 3
Hình 8-6: Sơ đồ màn hình phân hệ client 3
Hình 8-7: Màn hình chính Server 3
Hình 8-8: Màn hình User Registration 3
Hình 8-9: Màn hình User Management 3
Hình 8-10: Màn hình Server Settings 3
Hình 8-11: Màn hình chính Client 3
Hình 8-12: Màn hình Cipher 3
Hình 8-13: Màn hình KeyExchange 3
Hình 8-14:Màn hình Signature 3
Hình 8-15: Màn hình Key Generator 3




KHOA CNTT – ĐH KHTN






viii
Hình 8-16: Màn hình Group Management 3
Hình 8-17: Màn hình Find Contact 3
Hình 9-1:Mô hình cài đặt thư viện và ứng dụng 3






KHOA CNTT – ĐH KHTN






ix
Danh sách bảng
Bảng 2-1: Các hàm và ký hiệu sử dụng trong phương pháp Rijndael 3
Bảng 3-1: So sánh các phép toán trên elliptic trên tọa độ Affine và tọa độ chiếu 3
Bảng 3-2: So sánh kích thước khóa giữa mã hóa quy ước và mã hóa khóa công khai
với cùng mức độ bảo mật 3
Bảng 3-3: So sánh kích thước khóa RSA và ECC với cùng độ bảo mật 3
Bảng 4-1:Các tính chất của các thuật toán băm an toàn 3
Bảng 7-1: Danh sách các lớp trong thư viện SPDA Cryptolib 3
Bảng 8-1: Danh sách các Usecase 3
Bảng 8-2: Chi tiết các màn hình ở phân hệ client 3
Bảng 9-1: Kết quả mã hóa thử nghiệm trên Desktop và PDA 3
Bảng 9-2: Kết quả thử nghiệm tạo khóa RSA và ECC 3





KHOA CNTT – ĐH KHTN







x
Một số khái niệm và thuật ngữ
PDA Thiết bị trợ giúp cá nhân kỹ thuật số - Personal Digital
Assistant.
NIST Viện Tiêu chuẩn và Công nghệ Hoa Kỳ - National
Institute of Standard and Technology.
FIPS Federal Information Processing Standard Publications
NSA National Security Agency.
DES Chuẩn mã hóa dữ liệu – Data Encryption Standard.
AES Chuẩn mã hóa nâng cao – Advanced Encryption
Standard.
SHA Thuật toán băm an toàn – Secure Hash Algorithm.
SHS Chuẩn băm an toàn – Secure Hash Standard.
ECC Phương pháp mã hóa theo đưòng cong elip - Elliptic
Curve Cryptography
ECDH Elliptic Curve Diffie – Hellman.
DSA Thuật toán chữ ký điện tử - Digital Signature Algorithm.
ECDSA Elliptic Curve Digital Signature Algorithm.
SSL Giao thức kết nối an toàn - Socket Secure Layer.
Khóa công khai Public key – khóa được công bố rộng rãi cho mọi người,
sử dụng trong mã hóa khóa công khai.
Khóa riêng Private key – khóa của một cá nhân được giữ bí mật, có
quan hệ với khóa công khai, sử dụng trong mã hóa khóa
công khai.

Khóa bí mật Secret key – khóa quy ước sử dụng trong mã hóa quy
ước.
Mã hóa quy ước Conventional cryptography - Còn gọi là mã hóa đối xứng
(symmetric cryptography), hệ thống mã hóa sử dụng cùng
một khóa cho mã hóa và giải mã.
Mã hóa khóa công khai Public key cryptography – còn gọi là mã hóa bất đối xứng
(asymmetric cryptography), hệ thống mã hóa sử dụng một
cặp khóa để mã hoá và giải mã.
Trao đổi khóa Key exchange – phương pháp để trao đổi các thông tin
khóa bí mật giữa các đối tác.




KHOA CNTT – ĐH KHTN






xi
Chữ ký điện tử Digital Signature - dãy bit phát sinh từ dữ liệu và khóa
gởi kèm với dữ liệu khi trao đổi nhằm để xác nhận nguồn
gốc dữ liệu, xác nhận tính toàn vẹn của dữ liệu.
ECDLP Bài toán logarit rời rạc trên Elliptic curve - Elliptic Curve
Discrete Logarithm Problem.
CryptoAPI Bộ thư viện các hàm mã hóa ứng dụng trên Windows CE
- Cryptographic Application Programming Interface.
.NET CF .NET Compact Framework.

SPDA Security on Personal Digital Assistant.





KHOA CNTT – ĐH KHTN






1


Phần 1:
Mở đầu





KHOA CNTT – ĐH KHTN




Chương 1 Tổng quan



2

Chương 1. Tổng quan
1.1. Giới thiệu
1.1.1. Khái niệm mật mã học
Mật mã học là ngành khoa học ứng dụng toán học vào việc đảm bảo an toàn
thông tin. Mật mã học giữ vai trò quan trọng và có nhiều ứng dụng trong đời sống
xã hội từ lĩnh vực an ninh quân sự , đến các lĩnh vực dân sự như kinh tế, ngân hàng,
thương mại
Đối tượng nghiên cứu của mật mã học là các kỹ thuật để mã hóa và bảo mật
thông tin.
1.1.2. Các định nghĩa
Định nghĩa 1.1: Một hệ thống mã hóa (cryptosystem) [8] là một bộ-năm (P, C, K,
E, D) thỏa mãn các điều kiện sau:
1. Tập nguồn P là tập hợp hữu hạn tất cả các mẩu tin nguồn cần mã hóa có thể

2. Tập đích C là tập hợp hữu hạn tất cả các mẩu tin có thể có sau khi mã hóa
3. Tập khóa K là tập hợp hữu hạn các khóa có thể được sử dụng
4. Với mỗi khóa kÎK, tồn tại luật mã hóa e
k
ÎE và luật giải mã d
k
ÎD tương
ứng. Luật mã hóa e
k
: P ® C và luật giải mã e
k
: C ® P là hai ánh xạ thỏa
mãn


(
)
(
)
,
kk
dexxxP
="Î

( 1.1)
Tính chất 4 là tính chất chính và quan trọng của một hệ thống mã hóa. Tính chất này
bảo đảm việc mã hóa một mẩu tin xÎP bằng luật mã hóa e
k
ÎE có thể được giải mã
chính xác bằng luật d
k
ÎD.




KHOA CNTT – ĐH KHTN




Chương 1 Tổng quan



3

Định nghĩa 1.2: Z
m
được định nghĩa là tập hợp {0, 1, , m-1}, được trang bị phép
cộng (ký hiệu +) và phép nhân (ký hiệu là ´). Phép cộng và phép nhân trong Z
m
được thực hiện tương tự như trong Z, ngoại trừ kết quả tính theo modulo m.
1.1.3. Các loại mã hóa
1.1.3.1. Mã hóa quy ước
Mã hóa quy ước (hay còn gọi mã hóa đối xứng ) là hệ thống mã hóa sử dụng
cùng một khóa gọi là khóa bí mật (secret key / symmetric key) để thực hiện mã hóa
hay giải mã thông tin. Việc bảo mật thông tin tùy thuộc vào việc bảo mật khóa bí
mật.
Phương pháp mã hóa quy ước DES được đưa vào sử dụng từ năm 1977 đã
không còn được xem là an toàn khi tốc độ xử lý tính toán của các bộ vi xử lý ngày
càng tăng nhanh chóng. Tháng 10/2000, Viện Tiêu chuẩn và Công nghệ Hoa Kỳ
NIST đã công bố chuẩn mã hóa mở rộng AES và quyết định chọn thuật toán
Rijndael làm phương pháp mã hóa quy ước đại diện cho AES.
1.1.3.2. Mã hóa khóa công khai
Mã hoá khóa công khai (hay còn gọi mã hóa bất đối xứng) là hệ thống mã hóa
sử dụng một cặp khóa để mã hóa và giải mã thông tin. Một khóa được công bố rộng
rãi (khóa công khai) để mã hóa thông tin, khóa tương ứng còn lại được giữ bí mật
(khóa riêng ) để giải mã thông tin.
Lợi ích lớn nhất của mã hóa khóa công khai chính là giúp người sử dụng
tránh các rủi ro khi trao đổi khóa. Một số hệ thống mã hóa khóa công khai bao gồm:
Diffie-Hellman (Whitfield Diffie - Martin Hellman ), RSA (Rivest – Shamir –
Adleman), Elgamal (Tahel Elgamal), DSA (David Kravitz) và ECC (Neal Koblitz -
Victor Miller). Trong số đó, RSA được sử dụng rộng rãi nhất và những năm gần
đây, ECC đang thu hút được sự quan tâm nghiên cứu của các nhà khoa học trên thế

giới.




KHOA CNTT – ĐH KHTN




Chương 1 Tổng quan


4

Mã hóa khóa công khai là nền tảng của nhiều ứng dụng bảo mật có ý nghĩa
quan trọng trong đời sống xã hội như: chữ ký điện tử, chứng nhận điện tử, an toàn
trong truyền dữ liệu trên mạng (SSL).
1.2. Mục tiêu của đề tài
Ngày nay, các thiết bị trợ giúp cá nhân kỹ thuật số đang dần trở nên quen
thuộc và được người sử dụng ưa chuộng. Tuy nhiên, mức độ bảo mật của các thiết
bị phụ thuộc rất nhiều vào nhà cung cấp phần cứng. Dữ liệu của người sử dụng chưa
được đảm bảo an toàn. Những giải pháp phầm mềm cho công việc bảo mật trên
PDA hiện tại trên thế giới có chi phí rất cao cùng với độ bảo mật chỉ ở mức trung
bình.
Đề tài "Nghiên cứu và xây dựng ứng dụng bảo mật trên PDA" được thực
hiện với mục đích tìm hiểu, nghiên cứu và thử nghiệm các phương pháp mã hóa quy
ước và mã hóa khóa công khai cùng với các phương pháp ký và xác nhận chữ ký
điện tử. Đồng thời, chúng em cũng tìm hiểu các thuật toán mã hóa quy ước là ứng
viên của chuẩn mã hóa nâng cao AES, thuật toán mã hóa khóa công khai ECC và

các thuật toán hàm băm mới SHA-224, AES-Hash đang nhận được sự quan tâm của
các nhà khoa học trong thời gian gần đây.
Trên cơ sở lý thuyết nghiên cứu được, chúng em thực hiện xây dựng một bộ
thư viện mã hóa SPDA Cryptolib trên thiết bị PDA. Bộ thư viện SPDA Cryptolib sẽ
cung cấp các thuật toán mã hóa thông dụng và mới nhất hiện nay bên cạnh khả năng
hỗ trợ lập trình trên thiết bị PDA. Sử dụng thư viện mã hóa SPDA Cryptolib, chúng
em đã thực hiện ứng dụng Pocket Secure Data cung cấp các chức năng về mã hóa,
chữ ký điện tử và quản lý khóa cho người sử dụng PDA. Ứng dụng sẽ hoạt động
trên hai phân hệ: máy tính cá nhân để bàn và máy PDA.





KHOA CNTT – ĐH KHTN







5


Phần 2:
Lý thuyết
mã hoá





KHOA CNTT – ĐH KHTN




Chương 2 Mã hóa quy ước


6

Chương 2. Mã hóa quy ước
Dẫn nhập: Chương 1 chúng ta đã tìm hiểu tổng quan về mật mã học, nội dung
chương 2 sẽ giới thiệu chi tiết hơn về hệ thống mã hóa quy ước với các thuật toán
mã hóa quy ước. Đặc biệt chương 2 sẽ đề cập cụ thể hơn về chuẩn mã hóa quy ước
mở rộng AES và các thuật toán ứng viên của AES. Chương 2 cũng sẽ trình bày
đánh giá về các phương pháp mã hóa quy ước.
2.1. Giới thiệu mã hóa quy ước
2.1.1. H ệ thống mã hóa quy ước
Hệ thống mã hóa quy ước là hệ thống mã hóa trong đó quy trình mã hóa và
giải mã đều sử dụng chung một khóa gọi là khóa bí mật. Việc bảo mật thông tin phụ
thuộc vào việc bảo mật khóa.
Xét mô hình hệ thống mã hóa quy ước sau:

Hình 2-1: Mô hình hệ thống mã hóa quy ước.






KHOA CNTT – ĐH KHTN




Chương 2 Mã hóa quy ước


7

Dữ liệu nguồn x được người gởi A mã hóa bằng thuật toán mã hóa quy ước
với khóa bí mật k được thống nhất trước giữa người gởi A và người nhận B. Dữ liệu
sau khi mã hóa y sẽ đuợc truyền cho người nhận B. Người nhận B sử dụng khóa bí
mật k để giải mã y để có được thông điệp nguồn x ban đầu.
Nếu một người C có được khóa bí mật k thì C sẽ có khả năng giải mã tất cả
dữ liệu A mã hóa bằng khóa k và gởi cho B. Do đó vấn đề an toàn bảo mật thông tin
được mã hóa phụ thuộc vào việc giữ bí mật nội dung mã khóa k.
2.1.2. Các thuật toán mã hóa quy ước
Các thuật toán mã hóa quy ước được phân thành 2 loại: mã hóa theo ký tự và
mã hóa theo khối.
2.1.2.1. Mã hóa theo ký tự
Mã hóa theo ký tự là phương pháp mã hóa bằng cách thay thế từng ký tự
trong thông điệp nguồn thành một ký tự khác trong tập ký tự mã hóa.
Dạng mã hóa quy ước theo ký tự đã xuất hiện từ thời đế chế La mã dưới sự
chỉ huy của Caesar. Một số phương pháp mã hóa theo ký tự được biết đến bao
gồm[8]:
· Shift Cipher: Thông điệp được mã hóa bằng cách dịch chuyển (xoay vòng)
từng ký tự đi k vị trí trong Z
n

. Trong trường hợp đặc biệt k = 3, phương pháp
Shift Cipher được gọi là phương pháp mã hóa Caesar.
· Substitution Cipher: Khóa k Î K là tập hợp hoán vị các phần tử trong tập
nguồn P. Hàm mã hóa thực hiện ánh xạ một ký tự trong thông điệp nguồn
vào khóa k. Hàm giải mã là ánh xạ ngược của hàm mã hóa.
· Affine Cipher: Khoá k là một bộ (a, b) sao cho ax + b = y (mod n) có
nghiệm duy nhất. Trong đó a và n nguyên tố cùng nhau. Gọi
f
(n) là số phần
tử trong Z
n
, nguyên tố cùng nhau với n, ta có n khả năng xác định b,
f
(n) khả
năng xác định a nên không gian khóa K có n ´
f
(n) phần tử.




KHOA CNTT H KHTN




Chng 2 Mó húa quy c


8


Giỏ tr y = ax + b chớnh l d liu sau khi mó húa ca x tng ng. gii
mó, cn tỡm giỏ tr a
-1
ẻ Z s dng thut toỏn Euclid m rng. Do ú:
x = (a
-1
(y b)) mod n. ( 2.1)
ã Multiplicative Cipher: Cho P = C = Z
n
, K = {k ẻ Z
n
: gcd(k, n) = 1}.
Vi mi khúa kẻZ
n
, nh ngha:
e
k
(x) = kx mod n v d
k
(y) = k
1
y mod n vi x, y ẻ Z
n
( 2.2)
Cỏc phng phỏp mó húa quy c theo ký t n gin, cú khụng gian khúa tng
i nh v cỏc ký t trựng nhau rt d b phỏt hin . Do ú cỏc phng phỏp ny
khụng cũn c an ton trong iu kin tc x lý ca mỏy tớnh tng nhanh nh
hin nay.
2.1.2.2. Mó húa theo khi

Mó húa theo khi l phng phỏp chia thụng ip cn mó húa thnh nhng khi
thụng ip cú di c nh. Mt hm mó húa s thao tỏc trờn tng khi thụng ip
tr v thụng ip ó mó húa.
ã Vigenere Cipher: S dng t khoỏ k l mt dóy cú m phn t. Phng phỏp
Vigenere Cipher chớnh l ỏp dng m phộp Shift Cipher luõn phiờn nhau theo
chu k.
ã Hill Cipher: Mi phn t xẻP l mt b m thnh phn, tp ngun P = Z
n

Z
n
. Khúa k gm m t hp tuyn tớnh ca m thnh phn trong mi phn t x.
Nh vy khụng gian khúa K chớnh l tp hp cỏc ma trn m m kh nghch.
Thao tỏc mó húa l thc hin phộp nhõn ma trn:

()()















==
mmmm
m
m
mk
kkk
kk
kkk
xxxxkxe
,2,1,
,21,2
,12,11,1
21
, ,,





( 2.3)

vi x=(x
1
, x
2
, , x
m
) ẻ P





KHOA CNTT – ĐH KHTN




Chương 2 Mã hóa quy ước


9

Để giải mã cần tìm ma trận nghịch đảo k
-1
của khóa k và thực hiện phép tính
toán sau: d
k
(y) = yk
–1
. Lưu ý là tất cả các phép toán số học đều được thực hiện trên
Z
n
.
· Permutation Cipher: Mỗi phần tử xÎP là một bộ m thành phần, tập nguồn
P = Z
n
´ Z
n.
Khóa k Î K là tập hợp hoán vị m thành phần trong phần tử x.
Hàm mã hóa thực hiện ánh xạ một ký tự trong thông điệp nguồn vào khóa k.

Hàm giải mã là ánh xạ ngược của hàm mã hóa.
· Data Encryption Standard (DES):
Khoảng những năm 1970, tiến sĩ Horst Feistel đã đặt nền móng đầu tiên cho
chuẩn mã hóa dữ liệu DES với phương pháp mã hóa Feistel Cipher. Vào năm 1976
cơ quan bảo mật quốc gia Hoa Kỳ (NSA) đã công nhận DES dựa trên Feistel Cipher
là chuẩn mã hóa dữ liệu. DES được công bố trong tài liệu FIPS của NIST[20]. Kích
thước khóa của DES ban đầu là 128 bit nhưng tại bản công bố FIPS kích thước
khóa được rút xuống còn 56 bit.[6]
DES có kích thước khối 64 bit. DES thực hiện mã hóa dữ liệu qua 16 vòng lặp
mã hóa, mỗi vòng sử dụng một khóa chu kỳ 48 bit thu được từ khóa 56 bit ban đầu.
DES sử dụng 8 bảng hằng số Sbox để thao tác. Quá trình mã hóa của DES có thể
được tóm tắt như sau:
Biểu diễn thông điệp nguồn xÎP bằng dãy 64bit. Khóa k có 56bit. Thực hiện mã
hóa theo 3 giai đoạn:
- Tạo dãy 64 bit bằng cách hoán vị x theo hoán vị IP.
- Thực hiện 16 vòng lặp từ 64 bit thu được và 56 bit của khoá k (chỉ sử dụng
48 bit của khoá k trong mỗi vòng lặp). 64 bit kết quả thu được qua mỗi vòng
lặp sẽ là đầu vào cho vòng lặp sau.
- Sau 16 vòng lặp, áp dụng hoán vị ngược IP
-1
cho 64bit thu được. Kết quả
cuối cùng chính là khối dữ liệu đã mã hóa y.




KHOA CNTT – ĐH KHTN





Chương 2 Mã hóa quy ước


10


Hình 2-2: Sơ đồ quá trình mã hóa dữ liệu bằng phương pháp DES.
Quá trình giải mã chính là thực hiện theo thứ tự đảo ngược các thao tác của quá
trình mã hóa.
Do tốc độ tính toán của máy tính ngày càng tăng cao và DES đã được sự quan
tâm chú ý của các nhà khoa học lẫn những người phá mã (cryptanalyst) nên DES
nhanh chóng trở nên không an toàn. Năm 1997, một dự án đã tiến hành bẻ khóa
DES chưa đến 3 ngày với chi phí thấp hơn 250.000 dollars. Và vào năm 1999, một
mạng máy tính gồm 100.000 máy có thể giải mã một thư tín mã hóa DES chưa đầy
24 giờ.[6]




KHOA CNTT – ĐH KHTN




Chương 2 Mã hóa quy ước


11


Trong quá trình tìm kiếm các thuật toán mới an toàn hơn DES, Tripple DES ra
đời như một biến thể của DES. Tripple DES thực hiện 3 lần thuật toán DES với 3
khoá khác nhau và với trình tự khác nhau. Trình tự thực hiện phổ biến là EDE
(Encrypt – Decrypt – Encrypt), thực hiện xen kẽ mã hóa với giải mã (lưu ý là khóa
trong từng giai đoạn thực hiện khác nhau).
· Advanced Encryption Standard (AES):
Để tìm kiếm một phương pháp mã hóa quy ước mới với độ an toàn cao hơn DES,
NIST đã công bố một chuẩn mã hóa mới, thay thế cho chuẩn DES. Thuật toán đại
diện cho chuẩn mã hóa nâng cao AES (Advanced Encryption Standard) sẽ là thuật
toán mã hóa quy ước, sử dụng miễn phí trên toàn thế giới. Chuẩn AES bao gồm các
yêu cầu sau[8]:
· Thuật toán mã hóa theo khối 128 bit.
· Chiều dài khóa 128 bit, 192 bit và 256 bit.
· Không có khóa yếu.
· Hiệu quả trên hệ thống Intel Pentium Pro và trên các nền phần cứng và phần
mềm khác.
· Thiết kế dễ dàng (hỗ trợ chiều dài khóa linh hoạt, có thể triển khai ứng dụng
rộng rãi trên các nền và các ứng dụng khác nhau).
· Thiết kế đơn giản: phân tích đánh giá và cài đặt dễ dàng.
· Chấp nhận bất kỳ chiều dài khóa lên đến 256 bit.
· Mã hóa dữ liệu thấp hơn 500 chu kỳ đồng hồ cho mỗi khối trên Intel
Pentium, Pentium Pro và Pentium II đối với phiên bản tối ưu của thuật toán.
· Có khả năng thiết lập khóa 128 bit (cho tốc độ mã hóa tối ưu) nhỏ hơn thời
gian đòi hỏi để mã hóa các khối 32 bit trên Pentium, Pentium Pro và Pentium
II.




KHOA CNTT – ĐH KHTN





Chương 2 Mã hóa quy ước


12

· Không chứa bất kỳ phép toán nào làm nó giảm khả năng trên các bộ vi xử lý
8 bit, 16 bit, 32 bit và 64 bit.
· Không bao hàm bất kỳ phần tử nào làm nó giảm khả năng của phần cứng.
· Thời gian mã hóa dữ liệu rất thấp dưới 10/1000 giây trên bộ vi xử lý 8 bit.
· Có thể thực hiện trên bộ vi xử lý 8 bit với 64 byte bộ nhớ RAM.
Sau khi thực hiện 2 lần tuyển chọn, có 5 thuật toán được vào vòng chung kết,
gồm có: MARS, RC6, SERPENT, TWOFISH và RIJNDAEL. Các thuật toán này
đều đạt các yêu cầu của AES nên được gọi chung là các thuật toán ứng viên AES.
Các thuật toán ứng viên AES có độ an toàn cao, chi phí thực hiện thấp.
2.2. Các thuật toán ứng viên AES và Rijndael
2.2.1. Các thuật toán ứng viên AES
2.2.1.1. MARS
Thuật toán Mars được đề xuất bởi đơn vị Tổ chức máy tính thương mại quốc
tế (International Business Machines Corporation) .[11]
MARS là thuật toán mã hóa khóa đối xứng hỗ trợ kích thước khối dữ liệu 128bit và
cho phép sử dụng mã khóa có kích thước thay đổi được. Dữ liệu đầu vào và kết quả
trả về của MARS là 4 từ 32bit. Khóa của MARS có kích thước 128bit. Tất cả các
thao tác tính toán số học trong MARS đều được thực hiện trên các từ 32bit.
Quá trình mã hóa của MARS bao gồm các công việc:
- Cộng khóa: cộng các từ của khóa với các từ của khối dữ liệu.
- 8 chu kỳ trộn tới không khóa.

- 8 chu kỳ trộn tới có khóa.
- 8 chu kỳ trộn lùi có khóa.
- 8 chu kỳ trộn lùi không khóa.
- Trừ khóa: trừ các từ của khóa với các từ của khối dữ liệu sau khi đã
thực hiện trộn
Quá trình giải mã của MARS là nghịch đảo của quá trình mã hóa.




KHOA CNTT – ĐH KHTN




Chương 2 Mã hóa quy ước


13

2.2.1.2. SERPENT
Thuật toán SERPENT được đề xuất bởi đơn vị Private, của các tác giả Ross
Anderson, Eli Biham and Lars Knudsen.[11]
SERPENT là một hệ thống 32 chu kỳ thực hiện trên 4 từ 32 bit, do đó kích
thước khối của SERPENT là 128 bit. Các giá trị dùng trong việc mã hóa được xem
như các dòng bit. Ứng với mỗi từ 32-bit, chỉ số bit được đánh từ 0 đến 31, các khối
128-bit có chỉ số từ 0 đến 127 và các khóa 256-bit có chỉ số từ 0 đến 255.
SERPENT mã hóa một văn bản ban đầu P 128 bit thành một văn bản mã hóa
C 128 bit qua 32 chu kỳ với sự điều khiển của 33 khóa chu kỳ 128 bit. Quy trình mã
hóa SERPENT được thực hiện như sau:

· Khởi tạo và phân bố khóa ban đầu thành 33 khóa chu kỳ.
· Thực hiện phép hoán vị đầu
· Thực hiện 32 chu kỳ, mỗi chu kỳ bao gồm một phép trộn khóa, một lần áp
dụng các S–box và một phép biến đổi tuyến tính (cho tất cả các chu kỳ trừ
chu kỳ cuối). Ở chu kỳ cuối cùng, phép biến đổi tuyến tính này được thay thế
bằng một phép trộn khóa
· Thực hiện phép hoán vị cuối.
Quá trình giải mã SERPENT sử dụng các Sbox nghịch đảo, thực hiện các phép
biến đổi tuyến tính nghịch đảo và các khóa chu kỳ được sử dụng cũng theo thứ tự
ngược lại.
2.2.1.3. RC6
Thuật toán RC6 được đề xuất bởi Phòng thí nghiệm RSA (RSA
Laboratories), của các tác giả Ronald L. Rivest, Matt Robshaw, Ray Sidney, Yiqun
Lisa Yin.[11]
RC6 sử dụng các tham số hệ thống w bit từ, r chu kỳ mã hóa và kích thước
khóa b (tính theo đơn vị byte). Tuy nhiên để phù hợp với các tiêu chuẩn của AES,
RC6 chọn giá trị các tham số là w = 32, r = 20 và b = 16 / 24 / 32 bytes.

×