Namespaces Class Ý nghĩa CBCCipherModeHelper Lớp cụ thể cung cấp chế độ mã hĩa CBC. CFBCipherModeHelper Lớp cụ thể cung cấp chế độ mã hĩa CFB. CipherModeHelper Lớp cơ sở của các chế độ mã hĩa. CryptographicException Lớp cơ sở của các biệt lệ
(exception) khi mã hĩa. ECBCipherModeHelper Lớp cụ thể cung cấp chế độ
mã hĩa ECB.
ECCParameters Lớp các tham số của ECC. InvalidKeyException Lớp cơ sở cung cấp biệt lệ
khi sai khĩa.
OFBCipherModeHelper Lớp cụ thể cung cấp chế độ
mã hĩa OFB.
PaddingSchemeHelper Lớp cơ sở của các mơ hình mở rộng thơng điệp.
PKCSPaddingSchemeHelper Lớp cụ thể cung cấp mơ hình mở rộng thơng điệp theo PKCS.
RandomNumberGenerator Lớp cụ thể tạo các số ngẫu nhiên.
RSAParameters Cấu trúc tham số của RSA. Utils Lớp cụ thể cung cấp các
cơng cụ để phục vụ chuyển
đổi dữ liệu. spda.cryptolib
ZeroPaddingSchemeHelper Lớp cụ thể cung cấp mơ hình mở rộng thơng điệp theo Zero.
AsymmetricAlgorithm Lớp cơ sở cho các thuật tốn mã hĩa khĩa cơng khai.
spda.cryptolib .cipher
DESStandardProvider Lớp cụ thể cung cấp thuật tốn mã hĩa DES.
KHOA CNTT –
ĐH KHTN
ECCStandardProvider Lớp cụ thể cung cấp thuật tốn mã hĩa ECC.
MARSStandardProvider Lớp cụ thể cung cấp thuật tốn mã hĩa MARS.
RC6StandardProvider Lớp cụ thể cung cấp thuật tốn mã hĩa RC6.
RijndaelStandardProvider Lớp cụ thể cung cấp thuật tốn mã hĩa Rijndael. RSAStandardProvider Lớp cụ thể cung cấp thuật
tốn mã hĩa RSA.
SerpentStandardProvider Lớp cụ thể cung cấp thuật tốn mã hĩa Serpent.
SymmetricAlgorithm Lớp cơ sở cho các thuật tốn mã hĩa quy ước.
TrippleDESStandardProvider Lớp cụ thể cung cấp thuật tốn mã hĩa TrippleDES. TwoFishStandardProvider Lớp cụ thể cung cấp thuật
tốn mã hĩa TwoFish. Hash Lớp cơ sở cho các thuật
tốn hàm băm.
MD5StandardProvider Lớp cụ thể cung cấp thuật tốn hàm băm MD5.
SHA1StandardProvider Lớp cụ thể cung cấp thuật tốn hàm băm SHA1.
SHA224StandardProvider Lớp cụ thể cung cấp thuật tốn hàm băm SHA224. SHA256StandardProvider Lớp cụ thể cung cấp thuật
tốn hàm băm SHA256. SHA384StandardProvider Lớp cụ thể cung cấp thuật
tốn hàm băm SHA384. spda.cryptolib
.hash
SHA512StandardProvider Lớp cụ thể cung cấp thuật tốn hàm băm SHA512. ECDHStandardProvider Lớp cụ thể cung cấp thuật
tốn truyền khĩa ECDH. spda.cryptolib
.keyexchange
KeyExchange Lớp cơ sở cho các thuật tốn truyền khĩa.
KHOA CNTT –
ĐH KHTN
RSAKeyExchangeStandardProvider Lớp cụ thể cung cấp thuật tốn truyền khĩa RSA. DHStandardProvider Lớp cụ thể cung cấp thuật
tốn truyền khĩa Diffie - Hellman
DSAParameters Cấu trúc tham số của DSA. DSASignatureStandardProvider Lớp cụ thể cung cấp thuật
tốn chữ ký điện tử DSA. ECDSAStandardProvider Lớp cụ thể cung cấp thuật
tốn chữ ký điện tử
ECDSA.
RSASignatureStandardProvider Lớp cụ thể cung cấp thuật tốn chữ ký điện tử RSA. spda.cryptolib
.signature
Signature Lớp cơ sở cho các thuật tốn chữ ký điện tử.
KHOA CNTT –
ĐH KHTN
Chương 8. Xây dựng ứng dụng Pocket Secure Data
8.1. Phát biểu bài tốn
Trong thời đại ngày nay, khi máy tính và các thiết bị cầm tay trở nên phổ biến, tính cơ động của các thiết bị di động đem lại rất nhiều lợi ích cho người sử dụng. Thiết bị trợ giúp cá nhân kỹ thuật số (Personal Digital Assistant – PDA) rất được ưa chuộng vì đặc tính nhỏ gọn, cơ động và khả năng lưu trữ thơng tin cá nhân. PDA ngày càng được sử dụng rộng rãi nhưng đồng thời nĩ cũng mang đến những nguy cơ rất lớn cho việc bảo mật các thơng tin nhạy cảm một khi PDA bị mất hay bị lấy cắp.
Trước nguy cơ đĩ, "người dùng" cĩ nhu cầu về một cơng cụ bảo mật để mã hĩa thơng tin lưu giữ trên PDA. Cơng cụ này cần phải hỗ trợ các chuẩn mã hố
đáng tin cậy hiện đang được sử dụng trên thế giới như: DES, 3DES (Triple–DES), Rijndael (mã hố quy ước), hay RSA (mã hĩa khĩa cơng khai)... Thơng tin mà "người dùng" cần mã hĩa được thể hiện dưới dạng các tập tin văn bản hoặc các
đoạn văn bản chứa trong clipboard. Ngồi ra, "người dùng" cịn cĩ nhu cầu sử dụng phương pháp mã hĩa khĩa cơng khai để mã hố khĩa quy ước. Nhằm tăng độ bảo mật, giảm khơng gian lưu trữ và thời gian mã hĩa, nội dung thơng tin sẽđược nén trước khi mã hĩa và giải nén sau khi giải mã. Nội dung thơng tin sẽđược nén bằng các thuật tốn nén hiệu quả và thơng dụng hiện nay như ZIP.
Thương mại điện tử địi hỏi các văn bản số hĩa cần phải được xác thực. Để
làm cơng việc này, mỗi "người dùng" cần sở hữu các chữ ký điện tửđược xác nhận. Chương trình cần cĩ khả năng tạo và xác nhận chữ ký điện tử trên một thơng điệp bất kỳ bằng các thuật tốn DSS, RSA, ECC, …. Thơng điệp để tạo chữ ký được "người dùng" cung cấp dưới dạng nội dung một tập tin hoặc nội dung văn bản trong clipboard. Các thuật tốn thơng dụng như: SHA-1, SHA-256, SHA-512, AES- HASH...sẽđược sử dụng để tạo thơng điệp rút gọn (băm) trong quá trình tạo chữ ký
KHOA CNTT –
ĐH KHTN
Với nhu cầu trao đổi thơng tin một cách an tồn và tiện lợi hơn, "người dùng" cũng cần một cơng cụđể tạo và quản lý khĩa.
Cơng cụ này giúp người dùng tạo ra các khĩa bí mật tương ứng với các thuật tốn sử dụng trong quá trình mã hĩa thơng tin. Ngồi ra cơng cụ này cũng sẽ cung cấp cho "người dùng" các bộ khĩa cơng khai – bí mật được phát sinh theo các phương pháp RSA và ECC . Những khĩa cơng khai này chỉ cĩ hiệu lực trong một khoảng thời gian nhất định, "người dùng" sẽ thiết lập thời gian hết hạn cho khĩa của mình.
Khi trao đổi thơng tin mã hĩa, "người dùng" cần phải nắm giữ khĩa quy ước cũng như cơng khai của rất nhiều đối tượng khác nhau. Việc ghi nhớ, sắp xếp và tìm kiếm danh sách khĩa sẽ tốn rất nhiều thời gian. "Người dùng" cần một ứng dụng hỗ
trợ việc quản lý các khĩa quy ước, các cặp khĩa cơng khai – bí mật của mình và các khĩa cơng khai của người khác. "Người dùng" sẽ nhập khĩa cơng khai của người khác dưới dạng tập tin văn bản vào cơ sở dữ liệu để quản lý và xuất khĩa cơng khai của mình ra tập tin văn bản để trao đổi.
Các thơng tin contact và thơng tin khĩa tương ứng cho từng contact được quản lý tập trung nhằm làm giảm khối lượng lưu trữ trên thiết bị PDA.
8.2. Phân tích yêu cầu
8.2.1. Bảng chú giải
· Người dùng: người sử dụng chương trình để thực hiện các cơng việc bảo mật.
· Quản trị: người quản trị hệ thống, đảm bảo hoạt động của hệ thống.
· Server: máy chủ lưu trữ dữ liệu, cĩ thể là máy tính để bàn cĩ cấu hình cao, bộ nhớ lớn.
· Client: máy trạm thực thi chương trình và giao tiếp trực tiếp với ngưịi dùng.
KHOA CNTT –
ĐH KHTN
· Encrypt: mã hĩa dữ liệu.
· Decrypt: giải mã dữ liệu.
· Symmetric Cipher: mã hĩa đối xứng. Đây là loại mã hĩa sử dụng cùng một khĩa quy ước cho việc mã hĩa và giải mã dữ liệu.
· Asymmetric Cipher: mã hĩa bất đối xứng. Đây là loại mã hĩa sử dụng cặp khĩa cơng khai – bí mật để mã hĩa và giải mã dữ liệu. Sử dụng khĩa cơng khai để giải mã dữ liệu đã được mã hĩa bằng khĩa bí mật và ngược lại.
· Contact: cá nhân hoặc tổ chức(nhĩm cá nhân) mà người dùng cĩ nhu cầu lưu giữ thơng tin để liên lạc.
· Partner: cá nhân mà "người dùng" cĩ nhu cầu lưu giữ thơng tin để liên lạc.
· Group: nhĩm cá nhân / tổ chức mà "người dùng" cĩ nhu cầu lưu trữ thơng tin
để liên lạc.
· Key - Khĩa: dãy bit sử dụng trong quá trình mã hĩa để thực hiện mã hĩa hoặc giải mã dữ liệu.
8.2.2. Các yêu cầu chức năng
8.2.2.1. Yêu cầu lưu trữ
- Thơng tin tài khoản người dùng. - Thơng tin liên lạc của người dùng. - Thơng tin khĩa của các liên lạc.
8.2.2.2. Yêu cầu xử lý
- Mã hĩa và giải mã dữ liệu bằng các thuật tốn đối xứng (DES, Triple-DES, Rijndael, Mars, Twofish, Serpent, RC6) và bất đối xứng (RSA).
KHOA CNTT –
ĐH KHTN
- Tạo khĩa cho các thuật tốn mã hĩa (DES, Triple-DES, Rijndael, Mars, Twofish, Serpent, RC6, RSA, ECC, DSA).
- Trao đổi khĩa bằng các thuật tốn trao đổi khĩa (RSA, Diffie-Hellman, ECDH).
8.2.2.3. Yêu cần tra cứu
- Thơng tin tài khoản người dùng. - Thơng tin liên lạc của người dùng. - Thơng tin khĩa của các liên lạc.
8.2.3. Các yêu cầu phi chức năng
- Hệ thống được phát triển theo mơ hình Client – Server. Trong đĩ, Server chạy trên Desktop thực hiện các yêu cầu sau:
o Quản lý tài khoản người dùng.
o Quản lý các liên lạc của người dùng.
o Quản lý khĩa của các liên lạc.
o Tạo khĩa.
o Trao đổi khĩa.
Client chạy trên PDA thực hiện các yêu cầu sau:
o Mã hĩa và giải mã dữ liệu.
o Ký và xác nhận dữ liệu.
- Cho phép người dùng đăng nhập vào hệ thống và đổi mật khẩu đăng nhập. - Phát triển hệ thống trên mơi trường Microsoft Visual Studio.NET 2003, sử
dụng chương trình giả lập Microsoft Pocket PC 2003 Emulator.
- Sử dụng hệ quản trị cơ sở dữ liệu Microsoft SQL Server 2000 để quản lý dữ
liệu.
- Sử dụng Rational Rose 2000 để hỗ trợ quá trình phân tích thiết kế hệ thống. - Giao diện đẹp, tiện dụng.
KHOA CNTT –
ĐH KHTN
8.3. Sơ đồ Usecase
Sign and Verify
Manage Contact Manage User
Login Change Password
Admin Generate Key Exchange Key Manage Key <<include>> <<include>> User Symmetric Cipher Asymmetric Cipher Cipher <<include>> <<include>>
Hình 8-1: Usecase diagram của ứng dụng Pocket Secure Data.
8.3.1. Một số đặc tả Usecase chính
STT Usecase Ý nghĩa
1 Cipher Thực hiện mã hĩa và giải mã dữ liệu.
2 SymmetricCipher Thực hiện mã hĩa và giải mã dữ liệu bằng các thuật tốn mã hĩa quy ước.
3 AsymmetricCipher Thực hiện mã hĩa và giải mã dữ liệu bằng các thuật tốn mã hĩa khĩa cơng khai.
4 Generate Key Tạo bộ khĩa mới cho người sử dụng. 5 Sign and Verify Ký và xác nhận chữ ký điện tử.
6 Exchange Key Thực hiện trao đổi khĩa hoặc xuất khĩa. 7 Manage Key Quản lý khĩa của người sử dụng.
8 Manage Contact Quản lý các liên lạc.
9 Manage User Quản lý các tài khoản người dùng trên phân hệ
server.
10 Login Chức năng đăng nhập vào chương trình. 11 Change Password Đổi mật khẩu đăng nhập vào chương trình.
KHOA CNTT –
ĐH KHTN
8.3.1.1. Cipher
8.3.1.1.1. Tĩm tắt
"Người dùng" sử dụng chức năng này để mã hĩa và giải mã dữ liệu theo các loại mã hĩa khác nhau như: mã hĩa quy ước, mã hĩa khĩa cơng khai. "Người dùng" sẽ cung cấp các thơng tin như thuật tốn mã hĩa, khĩa, nội dung dữ liệu. Hệ thống sẽ thực hiện mã hĩa / giải mã dữ liệu sau khi đã nén / giải nén dữ liệu.
8.3.1.1.2. Dịng sự kiện
· Dịng sự kiện chính
Chức năng này bắt đầu khi "người dùng" cĩ yêu cầu mã hĩa / giải mã dữ liệu. "Người dùng" chọn loại mã hĩa cần thực hiện
Tùy theo loại mã hĩa, các luồng sự kiện phụ sau được thực hiện:
- Nếu "người dùng" chọn "Symmetric Cipher", chức năng "Symmetric Cipher"
được thực hiện.
- Nếu "người dùng"chọn "Asymmetric Cipher", chức năng "Asymmetric Cipher" được thực hiện. · Dịng sự kiện khác Khơng cĩ 8.3.1.1.3. Yêu cầu đặc biệt Khơng cĩ 8.3.1.1.4. Điều kiện tiên quyết
"Người dùng" phải đăng nhập thành cơng vào hệ thống thơng qua chức năng Login.
8.3.1.1.5. Điều kiện hậu quyết
Khơng cĩ
8.3.1.1.6. Điểm mở rộng.
KHOA CNTT –
ĐH KHTN
8.3.1.2. SymmetricCipher
8.3.1.2.1. Tĩm tắt
"Người dùng" sử dụng chức năng này khi cĩ yêu cầu mã hĩa hoặc giải mã thơng tin theo mã hĩa quy ước.
8.3.1.2.2. Dịng sự kiện
· Dịng sự kiện chính
Chức năng này bắt đầu khi "người dùng" cĩ yêu cầu mã hĩa hoặc giải mã thơng tin theo mã hĩa quy ước.
- "Người dùng" chọn chức năng cần thực hiện (Mã hĩa thơng tin, Giải mã thơng tin).
- Nếu "người dùng" chọn chức năng "Symmetric Encrypt" để mã hĩa thơng tin, luồng sự kiện phụ "Symmetric Encrypt" được thực hiện.
- Nếu "người dùng" chọn chức năng "Symmetric Decrypt" để giải mã thơng tin, luồng sự kiện phụ "Symmetric Decrypt" được thực hiện.
o Symmetric Encrypt
- "Người dùng" lựa chọn phương pháp mã hĩa (DES, 3DES hoặc AES). - "Người dùng"lựa chọn dạng dữ liệu (File hay Clipboard).
- "Người dùng" xác định nguồn dữ liệu.
- "Người dùng"chọn đối tượng liên lạc(contact) giao dịch. - "Người dùng" chọn khĩa quy ước của đối tượng liên lạc. - Hệ thống nén dữ liệu.
- Hệ thống mã hĩa dữ liệu theo phương pháp và khĩa đã chọn. - Hệ thống sẽ trả về dữ liệu đã mã hĩa theo dạng đã chọn.
KHOA CNTT –
ĐH KHTN
o Symmetric Decrypt
- "Người dùng"chọn lựa phương pháp giải mã (DES, 3DES hoặc AES). - "Người dùng" lựa chọn dạng dữ liệu(File hay Clipboard).
- "Người dùng" xác định nguồn dữ liệu.
- "Người dùng" chọn đối tượng liên lạc(contact) giao dịch. - "Người dùng" chọn khĩa quy ước của đối tượng liên lạc. - Hệ thống giải mã dữ liệu theo phương pháp và khĩa đã chọn. - Hệ thống giải nén dữ liệu. - Hệ thống sẽ trả về dữ liệu đã giải mã theo dạng đã chọn. · Dịng sự kiện khác Khơng cĩ 8.3.1.2.3. Yêu cầu đặc biệt Khơng cĩ 8.3.1.2.4. Điều kiện tiên quyết
"Người dùng" phải đăng nhập thành cơng vào hệ thống thơng qua chức năng Login.
8.3.1.2.5. Điều kiện hậu quyết
Khơng cĩ
8.3.1.2.6. Điểm mở rộng.
KHOA CNTT –
ĐH KHTN
8.3.1.3. AsymmetricCipher
8.3.1.3.1. Tĩm tắt
"Người dùng" sử dụng chức năng này để mã hĩa và giải mã dữ liệu theo mã hĩa khĩa cơng khai.
8.3.1.3.2. Dịng sự kiện
· Dịng sự kiện chính
"Người dùng" chọn chức năng cần thực hiện (Mã hĩa thơng tin, Giải mã thơng tin). - Nếu "người dùng"chọn chức năng "Asymmetric Encrypt" để mã hĩa thơng
tin, luồng sự kiện phụ "Asymmetric Encrypt" được thực hiện.
- Nếu "người dùng"chọn chức năng "Asymmetric Decrypt" để giải mã thơng tin, luồng sự kiện phụ "Asymmetric Decrypt" được thực hiện.
o Asymmetric Encrypt
- "Người dùng" lựa chọn phương pháp mã hĩa (RSA). - "Người dùng" lựa chọn dạng dữ liệu (File hay Clipboard). - "Người dùng" xác định nguồn dữ liệu.
- "Người dùng" chọn đối tượng liên lạc(contact) giao dịch.
- "Người dùng" chọn khĩa cơng khai – bí mật của đối tượng liên lạc. - Hệ thống nén dữ liệu.
- Hệ thống mã hĩa dữ liệu theo phương pháp và khĩa đã chọn. - Hệ thống sẽ trả về dữ liệu đã mã hĩa theo dạng đã chọn.
o Asymmetric Decrypt
- "Người dùng" chọn lựa phương pháp giải mã (RSA). - "Người dùng" lựa chọn dạng dữ liệu(File hay Clipboard). - "Người dùng" xác định nguồn dữ liệu.
KHOA CNTT –
ĐH KHTN
- "Người dùng" chọn đối tượng liên lạc(contact) giao dịch.
- "Người dùng" chọn khĩa cơng khai – bí mật của đối tượng liên lạc. - Hệ thống giải mã dữ liệu theo phương pháp và khĩa đã chọn
- Hệ thống giải nén dữ liệu. - Hệ thống sẽ trả về dữ liệu đã giải mã theo dạng đã chọn. · Dịng sự kiện khác Khơng cĩ 8.3.1.3.3. Yêu cầu đặc biệt Khơng cĩ 8.3.1.3.4. Điều kiện tiên quyết
"Người dùng" phải đăng nhập thành cơng vào hệ thống thơng qua chức năng Login.
8.3.1.3.5. Điều kiện hậu quyết Khơng cĩ 8.3.1.3.6. Điểm mở rộng. Khơng cĩ 8.3.1.4. Generate Key 8.3.1.4.1. Tĩm tắt
"Người dùng" sử dụng chức năng này để tạo khĩa quy ước, khĩa cơng khai – bí mật cho việc mã hĩa / giải mã.
KHOA CNTT –
ĐH KHTN
8.3.1.4.2. Dịng sự kiện
· Dịng sự kiện chính
Chức năng này bắt đầu khi "người dùng" cĩ yêu cầu tạo khĩa quy ước, khĩa cơng