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

Luận văn  
Nghiên cu và xây dng ng  
dng bo mt trên PDA  
Li cm ơn  
Chúng em cm ơn khoa Công nghThông tin, trường Đại hc Khoa hc Tự  
nhiên Thành phHChí Minh đã to điu kin cho chúng em thc hin đề tài.  
Chúng con gi tt clòng biết ơn và skính trng ca chúng con đến cha mẹ  
cùng toàn thgia đình, nhng người đã sinh thành, dưỡng dc và là chda vng  
chc cho chúng con vượt qua mi khó khăn.  
Chúng em trân trng biết ơn thy Dương Anh Đức, thy Trn Minh Triết đã  
tn tình hướng dn, chbo chúng em để chúng em thc hin tt đề tài lun văn tt  
nghip.  
Chúng em cm ơn quý thy cô đã ging dy, trang bnhng kiến thc quý  
báu cho chúng em trong nhng năm hc va qua.  
Xin chân thành cm ơn các anh ch, bn bè đã nhit tình giúp đỡ, động viên  
chúng tôi trong thi gian hc tp và nghiên cu.  
Mc dù chúng em đã nlc hoàn thành lun văn trong phm vi và khnăng  
cho phép nhưng chc chn lun văn vn còn nhiu thiếu sót. Chúng em rt mong  
nhn được sthông cm, góp ý và tn tình chbo ca quý thy cô và các bn.  
Tp. HChí Minh, 07/2004  
Nhóm sinh viên thc hin  
Văn Đức Phương Hng – Nguyn Minh Huy  
i
Li mở đầu  
Ngày nay, công nghthông tin và các sn phm công nghthông tin đã góp  
phn giúp cuc sng ca con người thoi mái hơn. Liên lc gia các cá nhân và tổ  
chc trnên thun tin, từ đó lượng thông tin, dliu giao dch tăng nhanh vsố  
lượng ln cht lượng.  
Trước sbùng nthông tin, vic bo mt các dliu nhy cm givai trò rt  
quan trng. Vi sra đời ca các thiết bdi động cm tay và các thiết bhtrcá  
nhân kthut s, thông tin có thể được qun lý ddàng mi lúc mi nơi. Scơ  
động ca các thiết bị đem li nhiu tin li cho người sdng nhưng đồng thi  
cũng mang li nhng ri ro cao khi dliu trong các thiết bbmt hoc bly cp.  
Do đó nhu cu về ứng dng mã hóa và bo mt trên các thiết blà cn thiết.  
Trên thc tế, vic bo mt trên thiết bdi động chưa được quan tâm rng rãi.  
Các hthng bo mt trên thiết bdi động chgii hn các chc năng bo mt  
được cung cp tích hp trong phn cng thiết b. Mt sít ng dng phn mm mã  
hóa bo mt trên thiết bdi động có giá thành cao nhưng độ bo mt mc trung  
bình.  
Vi lý do trên, chúng em đã thc hin đề tài "Nghiên cu và xây dng ng  
dng bo mt trên PDA" nhm nghiên cu, thnghim vcác phương pháp, thut  
toán mã hóa bo mt đồng thi cũng nghiên cu khnăng đưa chc năng mã hóa  
vào ng dng trên thiết bhtrcá nhân kthut s. Da trên cơ slý thuyết đã  
nghiên cu, chúng em thc hin xây dng bthư vin SPDA Cryptolib vi các  
thut toán được xem là mi và hiu quhin nay. Bthư vin là công cgiúp các  
lp trình viên có ththc hin mã hóa bo mt trên thiết b. Sdng thư vin đã xây  
dng, chúng em thc hin ng dng Pocket Secure Data vi các chc năng giúp  
người dùng có ththc hin mã hóa, gii mã thông tin, to và xác nhn chđin  
tmt cách nhanh chóng và thun tin.  
ii  
Ni dung lun văn được trình bày trong 10 chương; trong đó, 6 chương đầu  
trình bày các vn đề vlý thuyết mã hóa và gii thiu vthiết btrgiúp cá nhân kỹ  
thut s; 4 chương cui tp trung vào bthư vin SPDA Cryptolib ng dng  
Pocket Secure Data.  
Chương 1. Tng quan: Gii thiu vmã hóa và xác định mc tiêu đề tài.  
Chương 2. Mã hóa quy ước: Gii thiu tóm tt mt sphương pháp mã hóa  
quy ước.  
Chương 3. Mã hóa khóa công khai.: Trình bày mt sphương pháp mã  
hóa khóa công khai.  
Chương 4. Các thut toán hàm băm và chđin t: Trình bày các  
thut toán trong chun hàm băm an toàn và gii thiu vchđin tử  
Chương 5. Tng quan vPDA và môi trường phát trin .NET Compact  
Framework: Gii thiu vthiết bPDA và trình bày vmôi trường phát  
trin .NET Compact Framework.  
Chương 6. Xây dng ng dng bo mt trên PDA - vn đề và gii  
pháp: Trình bày các vn đề gp phi khi xây dng ng dng bo mt trên  
PDA và các gii pháp đề ngh.  
Chương 7. Xây dng bthư vin SPDA Cryptolib: Gii thiu bthư vin  
SPDA Cryptolib .  
Chương 8. Xây dng ng dng Pocket Secure Data: Gii thiu ng dng  
Pocket Secure Data.  
Chương 9. Cài đặt và trin khai ng dng  
Chương 10. Tng kết: Tóm tt vn đề đã nghiên cu thc hin và hướng  
phát trin trong tương lai.  
iii  
Mc lc  
Trang  
Li cm ơn ............................................................................................................... i  
Li mở đầu ..............................................................................................................ii  
Mc lc  
............................................................................................................. iv  
Danh sách hình........................................................................................................vii  
Danh sách bng........................................................................................................ ix  
Mt skhái nim và thut ng................................................................................ x  
Chương 1. Tng quan............................................................................................ 2  
1.1. Gii thiu .....................................................................................................2  
1.1.1. Khái nim mt mã hc..........................................................................2  
1.1.2. Các định nghĩa......................................................................................2  
1.1.3. Các loi mã hóa ....................................................................................3  
1.2. Mc tiêu ca đề i.......................................................................................3  
Chương 2. Mã hóa quy ước .................................................................................. 3  
2.1. Gii thiu mã hóa quy ước...........................................................................3  
2.1.1. Hthng mã hóa quy ước.....................................................................3  
2.1.2. Các thut toán mã hóa quy ước ............................................................3  
2.2. Các thut toán ng viên AES và Rijndael ...................................................3  
2.2.1. Các thut toán ng viên AES ...............................................................3  
2.2.2. Thut 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. Gii thiu 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 dliu vi 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 dng 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 dng ca mã hóa khóa công khai .................................................3  
3.4.2. So sánh gia các phương pháp mã hóa khóa công khai.......................3  
Chương 4. Các thut toán hàm băm và chđin t..................................... 3  
4.1. Các thut toán hàm băm...............................................................................3  
4.1.1. Gii thiu hàm băm ..............................................................................3  
4.1.2. Gii thiu các chun thut toán hàm băm Secure Hash Standard(SHS)  
trong FIPS180-2 (02/2004) .................................................................................3  
4.1.3. Gii thiu đề xut hàm băm mi AES–HASH ca Bram Cohen.........3  
4.2. Chđin t..............................................................................................3  
4.2.1. Mô hình chđin ttheo RSA........................................................3  
iv  
4.2.2. Thut toán chđin tDSA...........................................................3  
4.2.3. Thut toán chđin ttrên Elliptic Curve (ECDSA) .....................3  
Chương 5. Tng quan vPDA và môi trường phát trin .NET Compact  
Framework .............................................................................................................. 3  
5.1. Tìm hiu thiết bPDA..................................................................................3  
5.1.1. Đặc đim ca PDA ...............................................................................3  
5.1.2. Các hn chế ca PDA...........................................................................3  
5.2. Tng quan vWindowCE và Pocket PC.....................................................3  
5.2.1. Gii thiu hệ điu hành Windows CE..................................................3  
5.2.2. Gii thiu Pocket PC ............................................................................3  
5.3. Gii thiu .NET Compact Framework.........................................................3  
Chương 6. Xây dng ng dng bo mt trên PDA - vn đề và gii pháp .... 3  
6.1. Các vn đề khi xây dng ng dng bo mt trên PDA ...............................3  
6.1.1. Khnăng tính toán................................................................................3  
6.1.2. Khnăng lưu tr...................................................................................3  
6.1.3. Khnăng tương tác gia người sdng và thiết b.............................3  
6.1.4. Mc độ htrca các thư vin lp trình .............................................3  
6.2. Các gii pháp cth.....................................................................................3  
6.2.1. CryptoAPI.............................................................................................3  
6.2.2. Xây dng bthư vin SPDA Cryptolib ...............................................3  
Chương 7. Xây dng bthư vin SPDA Cryptolib............................................ 3  
7.1. Phát biu bài toán.........................................................................................3  
7.2. Kiến trúc bthư vin ...................................................................................3  
7.2.1. Sơ đồ kiến trúc bthư vin ..................................................................3  
7.2.2. Danh sách các lp trong thư vin .........................................................3  
Chương 8. Xây dng ng dng Pocket Secure Data.......................................... 3  
8.1. Phát biu bài toán.........................................................................................3  
8.2. Phân tích yêu cu .........................................................................................3  
8.2.1. Bng chú gii........................................................................................3  
8.2.2. Các yêu cu chc năng........................................................................3  
8.2.3. Các yêu cu phi chc năng...................................................................3  
8.3. Sơ đồ Usecase ..............................................................................................3  
8.3.1. Mt số đặc tUsecase chính ................................................................3  
8.3.2. Mt ssơ đồ tun tchính ...................................................................3  
8.4. Sơ đồ lp......................................................................................................3  
8.4.1. Phân hclient .......................................................................................3  
8.4.2. Phân hserver.......................................................................................3  
8.5. Thiết kế dliu ............................................................................................3  
8.5.1. Sơ đồ dliu.........................................................................................3  
8.5.2. Mô tdliu.........................................................................................3  
8.5.3. Ràng buc toàn vn ..............................................................................3  
8.6. Thiết kế giao din.........................................................................................3  
8.6.1. Sơ đồ màn hình.....................................................................................3  
v
8.6.2. Màn hình phân hserver ......................................................................3  
8.6.3. Màn hình phân hclient .......................................................................3  
Chương 9. Cài đặt và trin khai ng dng ......................................................... 3  
9.1. Môi trường cài đặt........................................................................................3  
9.2. Mô hình cài đặt ............................................................................................3  
9.3. Kết quthnghim......................................................................................3  
Chương 10. Tng kết............................................................................................... 3  
10.1.  
10.2.  
Phlc  
Kết lun ....................................................................................................3  
Hướng phát trin ......................................................................................3  
.............................................................................................................. 3  
Tài liu tham kho.................................................................................................... 3  
vi  
Danh sách hình  
Hình 2-1: Mô hình hthng mã hóa quy ước. ...........................................................3  
Hình 2-2: Sơ đồ quá trình mã hóa dliu bng phương pháp DES...........................3  
Hình 3-1: Mô hình hthng mã hóa khóa công khai.................................................3  
Hình 3-2: Mt ví dvelliptic curve. ........................................................................3  
Hình 3-3: Đim cc. ...........................................................................................3  
Hình 3-4: Phép cng 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 tp trung. ...............................................................................3  
Hình 3-7: Mô hình CA phân cp. ...............................................................................3  
Hình 3-8: Mô hình CA Web of Trust. .......................................................................3  
Hình 3-9: So sánh mc độ bo mt gia ECC, RSA / DSA.......................................3  
Hình 7-1: Class diagram ca thư vin SPDA Cryptolib ............................................3  
Hình 8-1: Usecase diagram ca ng dng Pocket Secure Data. ................................3  
Hình 8-2: Class diagram trên phân hclient ..............................................................3  
Hình 8-3: Class diagram trên phân hserver. ...........................................................3  
Hình 8-4: Sơ đồ thiết kế dliu ca Pocket Secure Data. .........................................3  
Hình 8-5: Sơ đồ màn hình phân hserver. .................................................................3  
Hình 8-6: Sơ đồ màn hình phân hclient...................................................................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  
vii  
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ư vin và ng dng. .......................................................3  
viii  
Danh sách bng  
Bng 2-1: Các hàm và ký hiu sdng trong phương pháp Rijndael........................3  
Bng 3-1: So sánh các phép toán trên elliptic trên ta độ Affine và ta độ chiếu . ...3  
Bng 3-2: So sánh kích thước khóa gia mã hóa quy ước và mã hóa khóa công khai  
vi cùng mc độ bo mt....................................................................................3  
Bng 3-3: So sánh kích thước khóa RSA và ECC vi cùng độ bo mt....................3  
Bng 4-1:Các tính cht ca các thut toán băm an toàn.............................................3  
Bng 7-1: Danh sách các lp trong thư vin SPDA Cryptolib ..................................3  
Bng 8-1: Danh sách các Usecase. .............................................................................3  
Bng 8-2: Chi tiết các màn hình phân hclient.......................................................3  
Bng 9-1: Kết qumã hóa thnghim trên Desktop và PDA. ..................................3  
Bng 9-2: Kết quthnghim to khóa RSA và ECC ..............................................3  
ix  
Mt skhái nim và thut ngữ  
PDA  
Thiết btrgiúp cá nhân kthut s- Personal Digital  
Assistant.  
NIST  
Vin Tiêu chun và Công nghHoa K- National  
Institute of Standard and Technology.  
FIPS  
NSA  
DES  
AES  
Federal Information Processing Standard Publications  
National Security Agency.  
Chun mã hóa dliu – Data Encryption Standard.  
Chun mã hóa nâng cao – Advanced Encryption  
Standard.  
SHA  
SHS  
ECC  
Thut toán băm an toàn – Secure Hash Algorithm.  
Chun băm an toàn – Secure Hash Standard.  
Phương pháp mã hóa theo đưòng cong elip - Elliptic  
Curve Cryptography  
ECDH  
DSA  
Elliptic Curve Diffie – Hellman.  
Thut toán chđin t- Digital Signature Algorithm.  
Elliptic Curve Digital Signature Algorithm.  
Giao thc kết ni an toàn - Socket Secure Layer.  
ECDSA  
SSL  
Khóa công khai  
Public key – khóa được công brng rãi cho mi người,  
sdng trong mã hóa khóa công khai.  
Khóa riêng  
Private key – khóa ca mt cá nhân được gibí mt, có  
quan hvi khóa công khai, sdng trong mã hóa khóa  
công khai.  
Khóa bí mt  
Secret key – khóa quy ước sdng trong mã hóa quy  
ước.  
Mã hóa quy ước  
Conventional cryptography - Còn gi là mã hóa đối xng  
(symmetric cryptography), hthng mã hóa sdng cùng  
mt khóa cho mã hóa và gii mã.  
Mã hóa khóa công khai Public key cryptography – còn gi là mã hóa bt đối xng  
(asymmetric cryptography), hthng mã hóa sdng mt  
cp khóa để mã hoá và gii mã.  
Trao đổi khóa  
Key exchange – phương pháp để trao đổi các thông tin  
khóa bí mt gia các đối tác.  
x
Chđin tử  
Digital Signature - dãy bit phát sinh tdliu và khóa  
gi kèm vi dliu khi trao đổi nhm để xác nhn ngun  
gc dliu, xác nhn tính toàn vn ca dliu.  
ECDLP  
Bài toán logarit ri rc trên Elliptic curve - Elliptic Curve  
Discrete Logarithm Problem.  
CryptoAPI  
Bthư vin các hàm mã hóa ng dng trên Windows CE  
- Cryptographic Application Programming Interface.  
.NET CF  
SPDA  
.NET Compact Framework.  
Security on Personal Digital Assistant.  
xi  
Phn 1:  
Mở đầu  
1
Chương 1 Tng quan  
1.1. Gii thiu  
Chương 1.  
Tng quan  
1.1.1.Khái nim mt mã hc  
Mt mã hc là ngành khoa hc ng dng toán hc vào vic đảm bo an toàn  
thông tin. Mt mã hc givai trò quan trng và có nhiu ng dng trong đời sng  
xã hi tlĩnh vc an ninh quân s, đến các lĩnh vc dân snhư kinh tế, ngân hàng,  
thương mi....  
Đối tượng nghiên cu ca mt mã hc là các kthut để mã hóa và bo mt  
thông tin.  
1.1.2.Các định nghĩa  
Định nghĩa 1.1: Mt hthng mã hóa (cryptosystem) [8] là mt b-năm (P, C, K,  
E, D) tha mãn các điu kin sau:  
1. Tp ngun P là tp hp hu hn tt ccác mu tin ngun cn mã hóa có thể  
có  
2. Tp đích C là tp hp hu hn tt ccác mu tin có thcó sau khi mã hóa  
3. Tp khóa K là tp hp hu hn các khóa có thể được sdng  
4. Vi mi khóa kK, tn ti lut mã hóa ekE và lut gii mã dkD tương  
ng. Lut mã hóa ek: P C và lut gii mã ek: C P là hai ánh xtha  
mãn  
d e x = x,xP  
( )  
( 1.1)  
(
)
k
k
Tính cht 4 là tính cht chính và quan trng ca mt hthng mã hóa. Tính cht này  
bo đảm vic mã hóa mt mu tin xP bng lut mã hóa ekE có thể được gii mã  
chính xác bng lut dkD.  
2
Chương 1 Tng quan  
Định nghĩa 1.2: Zm được định nghĩa là tp hp {0, 1, ..., m-1}, được trang bphép  
cng (ký hiu +) và phép nhân (ký hiu là ×). Phép cng và phép nhân trong Zm  
được thc hin tương tnhư trong Z, ngoi trkết qutính theo modulo m.  
1.1.3.Các loi mã hóa  
1.1.3.1.  
Mã hóa quy ước  
Mã hóa quy ước (hay còn gi mã hóa đối xng ) là hthng mã hóa sdng  
cùng mt khóa gi là khóa bí mt (secret key / symmetric key) để thc hin mã hóa  
hay gii mã thông tin. Vic bo mt thông tin tùy thuc vào vic bo mt khóa bí  
mt.  
Phương pháp mã hóa quy ước DES được đưa vào sdng tnăm 1977 đã  
không còn được xem là an toàn khi tc độ xlý tính toán ca các bvi xlý ngày  
càng tăng nhanh chóng. Tháng 10/2000, Vin Tiêu chun và Công nghHoa Kỳ  
NIST đã công bchun mã hóa mrng AES và quyết định chn thut toán  
Rijndael làm phương pháp mã hóa quy ước đại din cho AES.  
1.1.3.2.  
Mã hóa khóa công khai  
Mã hoá khóa công khai (hay còn gi mã hóa bt đối xng) là hthng mã hóa  
sdng mt cp khóa để mã hóa và gii mã thông tin. Mt khóa được công brng  
rãi (khóa công khai) để mã hóa thông tin, khóa tương ng còn li được gibí mt  
(khóa riêng ) để gii mã thông tin.  
Li ích ln nht ca mã hóa khóa công khai chính là giúp người sdng  
tránh các ri ro khi trao đổi khóa. Mt shthng mã hóa khóa công khai bao gm:  
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 sdng rng rãi nht và nhng năm gn  
đây, ECC đang thu hút được squan tâm nghiên cu ca các nhà khoa hc trên thế  
gii.  
3
Chương 1 Tng quan  
Mã hóa khóa công khai là nn tng ca nhiu ng dng bo mt có ý nghĩa  
quan trng trong đời sng xã hi như: chđin t, chng nhn đin t, an toàn  
trong truyn dliu trên mng (SSL).  
1.2. Mc tiêu ca đề tài  
Ngày nay, các thiết btrgiúp cá nhân kthut số đang dn trnên quen  
thuc và được người sdng ưa chung. Tuy nhiên, mc độ bo mt ca các thiết  
bphthuc rt nhiu vào nhà cung cp phn cng. Dliu ca người sdng chưa  
được đảm bo an toàn. Nhng gii pháp phm mm cho công vic bo mt trên  
PDA hin ti trên thế gii có chi phí rt cao cùng vi độ bo mt chỉ ở mc trung  
bình.  
Đề tài "Nghiên cu và xây dng ng dng bo mt trên PDA" được thc  
hin vi mc đích tìm hiu, nghiên cu và thnghim các phương pháp mã hóa quy  
ước và mã hóa khóa công khai cùng vi các phương pháp ký và xác nhn chký  
đin t. Đồng thi, chúng em cũng tìm hiu các thut toán mã hóa quy ước là ng  
viên ca chun mã hóa nâng cao AES, thut toán mã hóa khóa công khai ECC và  
các thut toán hàm băm mi SHA-224, AES-Hash đang nhn được squan tâm ca  
các nhà khoa hc trong thi gian gn đây.  
Trên cơ slý thuyết nghiên cu được, chúng em thc hin xây dng mt bộ  
thư vin mã hóa SPDA Cryptolib trên thiết bPDA. Bthư vin SPDA Cryptolib sẽ  
cung cp các thut toán mã hóa thông dng và mi nht hin nay bên cnh khnăng  
htrlp trình trên thiết bPDA. Sdng thư vin mã hóa SPDA Cryptolib, chúng  
em đã thc hin ng dng Pocket Secure Data cung cp các chc năng vmã hóa,  
chđin tvà qun lý khóa cho người sdng PDA. ng dng shot động  
trên hai phân h: máy tính cá nhân để bàn và máy PDA.  
4
Phn 2:  
Lý thuyết  
mã hoá  
5
Chương 2 Mã hóa quy ước  
Chương 2.  
Mã hóa quy ước  
Dn nhp: Chương 1 chúng ta đã tìm hiu tng quan vmt mã hc, ni dung  
chương 2 sgii thiu chi tiết hơn vhthng mã hóa quy ước vi các thut toán  
mã hóa quy ước. Đặc bit chương 2 sẽ đề cp cthhơn vchun mã hóa quy ước  
mrng AES và các thut toán ng viên ca AES. Chương 2 cũng strình bày  
đánh giá vcác phương pháp mã hóa quy ước.  
2.1. Gii thiu mã hóa quy ước  
2.1.1.H thng mã hóa quy ước  
Hthng mã hóa quy ước là hthng mã hóa trong đó quy trình mã hóa và  
gii mã đều sdng chung mt khóa gi là khóa bí mt. Vic bo mt thông tin phụ  
thuc vào vic bo mt khóa.  
Xét mô hình hthng mã hóa quy ước sau:  
Hình 2-1: Mô hình hthng mã hóa quy ước.  
6
Chương 2 Mã hóa quy ước  
Dliu ngun x được người gi A mã hóa bng thut toán mã hóa quy ước  
vi khóa bí mt k được thng nht trước gia người gi A và người nhn B. Dliu  
sau khi mã hóa y sẽ đuc truyn cho người nhn B. Người nhn B sdng khóa bí  
mt k để gii mã y để được thông đip ngun x ban đầu.  
Nếu mt người C có được khóa bí mt k thì C scó khnăng gii mã tt cả  
dliu A mã hóa bng khóa k và gi cho B. Do đó vn đề an toàn bo mt thông tin  
được mã hóa phthuc vào vic gibí mt ni dung mã khóa k.  
2.1.2.Các thut toán mã hóa quy ước  
Các thut toán mã hóa quy ước được phân thành 2 loi: mã hóa theo ký tvà  
mã hóa theo khi.  
2.1.2.1.  
Mã hóa theo ký tự  
Mã hóa theo ký tlà phương pháp mã hóa bng cách thay thế tng ký tự  
trong thông đip ngun thành mt ký tkhác trong tp ký tmã hóa.  
Dng mã hóa quy ước theo ký tự đã xut hin tthi đế chế La mã dưới sự  
chhuy ca Caesar. Mt sphương pháp mã hóa theo ký tự được biết đến bao  
gm[8]:  
Shift Cipher: Thông đip được mã hóa bng cách dch chuyn (xoay vòng)  
tng ký tự đi k vtrí trong Zn. Trong trường hp đặc bit k = 3, phương pháp  
Shift Cipher được gi là phương pháp mã hóa Caesar.  
Substitution Cipher: Khóa k K là tp hp hoán vcác phn ttrong tp  
ngun P. Hàm mã hóa thc hin ánh xmt ký ttrong thông đip ngun  
vào khóa k. Hàm gii mã là ánh xngược ca hàm mã hóa.  
Affine Cipher: Khoá k là mt b(a, b) sao cho ax + b = y (mod n) có  
nghim duy nht. Trong đó a n nguyên tcùng nhau. Gi φ(n) là sphn  
ttrong Zn, nguyên tcùng nhau vi n, ta có n khnăng xác định b, φ(n) khả  
năng xác định a nên không gian khóa K có n × φ(n) phn t.  
7
Chương 2 Mã hóa quy ước  
Giá try = ax + b chính là dliu sau khi mã hóa ca x tương ng. Để gii  
mã, cn tìm giá tra-1 Z sdng thut toán Euclid mrng. Do đó:  
x = (a-1(y b)) mod n.  
( 2.1)  
Multiplicative Cipher: Cho P = C = Zn, K = {k Zn: gcd(k, n) = 1}.  
Vi mi khóa kZn, định nghĩa:  
ek(x) = kx mod n dk(y) = k–1y mod n vi x, y Zn  
( 2.2)  
Các phương pháp mã hóa quy ước theo ký tự đơn gin, có không gian khóa tương  
đối nhvà các ký ttrùng nhau rt dbphát hin . Do đó các phương pháp này  
không còn được an toàn trong điu kin tc độ xlý ca máy tính tăng nhanh như  
hin nay.  
2.1.2.2.  
Mã hóa theo khi  
Mã hóa theo khi là phương pháp chia thông đip cn mã hóa thành nhng khi  
thông đip có độ dài cố định. Mt hàm mã hóa sthao tác trên tng khi thông đip  
để trvthông đip đã mã hóa.  
Vigenere Cipher: Sdng tkhoá k là mt dãy có m phn t. Phương 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 txP là mt bm thành phn, tp ngun P = Zn ×  
Zn. Khóa k gm m thp tuyến tính ca m thành phn trong mi phn tx.  
Như vy không gian khóa K chính là tp hp các ma trn m × m khnghch.  
Thao tác mã hóa là thc hin phép nhân ma trn:  
k
k
k1,2 k1,m  
1,1  
k  
2,m   
2,1  
ek  
(
x
)
= xk =  
(
x1, x2 ,..., xm  
)
( 2.3)  
km,1 km,2 km,m  
vi x=(x1, x2, ..., xm) P  
8
Chương 2 Mã hóa quy ước  
Để gii mã cn tìm ma trn nghch đảo k-1 ca khóa k và thc hin phép tính  
toán sau: dk(y) = yk–1. Lưu ý là tt ccác phép toán shc đều được thc hin trên  
Zn.  
Permutation Cipher: Mi phn txP là mt bm thành phn, tp ngun  
P = Zn × Zn. Khóa k K là tp hp hoán vm thành phn trong phn tx.  
Hàm mã hóa thc hin ánh xmt ký ttrong thông đip ngun vào khóa k.  
Hàm gii mã là ánh xngược ca hàm mã hóa.  
Data Encryption Standard (DES):  
Khong nhng năm 1970, tiến sĩ Horst Feistel đã đặt nn móng đầu tiên cho  
chun mã hóa dliu DES vi phương pháp mã hóa Feistel Cipher. Vào năm 1976  
cơ quan bo mt quc gia Hoa K(NSA) đã công nhn DES da trên Feistel Cipher  
là chun mã hóa dliu. DES được công btrong tài liu FIPS ca NIST[20]. Kích  
thước khóa ca DES ban đầu là 128 bit nhưng ti bn công bFIPS kích thước  
khóa được rút xung còn 56 bit.[6]  
DES có kích thước khi 64 bit. DES thc hin mã hóa dliu qua 16 vòng lp  
mã hóa, mi vòng sdng mt khóa chu k48 bit thu được tkhóa 56 bit ban đầu.  
DES sdng 8 bng hng sSbox để thao tác. Quá trình mã hóa ca DES có thể  
được tóm tt như sau:  
Biu din thông đip ngun xP bng dãy 64bit. Khóa k có 56bit. Thc hin mã  
hóa theo 3 giai đon:  
- To dãy 64 bit bng cách hoán vx theo hoán vIP.  
- Thc hin 16 vòng lp t64 bit thu được và 56 bit ca khoá k (chsdng  
48 bit ca khoá k trong mi vòng lp). 64 bit kết quthu được qua mi vòng  
lp sđầu vào cho vòng lp sau.  
- Sau 16 vòng lp, áp dng hoán vngược IP-1 cho 64bit thu được. Kết quả  
cui cùng chính là khi dliu đã mã hóa y.  
9
Chương 2 Mã hóa quy ước  
Hình 2-2: Sơ đồ quá trình mã hóa dliu bng phương pháp DES.  
Quá trình gii mã chính là thc hin theo thtự đảo ngược các thao tác ca quá  
trình mã hóa.  
Do tc độ tính toán ca máy tính ngày càng tăng cao và DES đã được squan  
tâm chú ý ca các nhà khoa hc ln nhng người phá mã (cryptanalyst) nên DES  
nhanh chóng trnên không an toàn. Năm 1997, mt dán đã tiến hành bkhóa  
DES chưa đến 3 ngày vi chi phí thp hơn 250.000 dollars. Và vào năm 1999, mt  
mng máy tính gm 100.000 máy có thgii mã mt thư tín mã hóa DES chưa đầy  
24 gi.[6]  
10  
Chương 2 Mã hóa quy ước  
Trong quá trình tìm kiếm các thut toán mi an toàn hơn DES, Tripple DES ra  
đời như mt biến thca DES. Tripple DES thc hin 3 ln thut toán DES vi 3  
khoá khác nhau và vi trình tkhác nhau. Trình tthc hin phbiến là EDE  
(Encrypt – Decrypt – Encrypt), thc hin xen kmã hóa vi gii mã (lưu ý là khóa  
trong tng giai đon thc hin khác nhau).  
Advanced Encryption Standard (AES):  
Để tìm kiếm mt phương pháp mã hóa quy ước mi vi độ an toàn cao hơn DES,  
NIST đã công bmt chun mã hóa mi, thay thế cho chun DES. Thut toán đại  
din cho chun mã hóa nâng cao AES (Advanced Encryption Standard) slà thut  
toán mã hóa quy ước, sdng min phí trên toàn thế gii. Chun AES bao gm các  
yêu cu sau[8]:  
Thut toán mã hóa theo khi 128 bit.  
Chiu dài khóa 128 bit, 192 bit và 256 bit.  
Không có khóa yếu.  
Hiu qutrên hthng Intel Pentium Pro và trên các nn phn cng và phn  
mm khác.  
Thiết kế ddàng (htrchiu dài khóa linh hot, có thtrin khai ng dng  
rng rãi trên các nn và các ng dng khác nhau).  
Thiết kế đơn gin: phân tích đánh giá và cài đặt ddàng.  
Chp nhn bt kchiu dài khóa lên đến 256 bit.  
Mã hóa dliu thp hơn 500 chu kỳ đồng hcho mi khi trên Intel  
Pentium, Pentium Pro và Pentium II đối vi phiên bn ti ưu ca thut toán.  
Có khnăng thiết lp khóa 128 bit (cho tc độ mã hóa ti ưu) nhhơn thi  
gian đòi hi để mã hóa các khi 32 bit trên Pentium, Pentium Pro và Pentium  
II.  
11  
Chương 2 Mã hóa quy ước  
Không cha bt kphép toán nào làm nó gim khnăng trên các bvi xlý  
8 bit, 16 bit, 32 bit và 64 bit.  
Không bao hàm bt kphn tnào làm nó gim khnăng ca phn cng.  
Thi gian mã hóa dliu rt thp dưới 10/1000 giây trên bvi xlý 8 bit.  
Có ththc hin trên bvi xlý 8 bit vi 64 byte bnhRAM.  
Sau khi thc hin 2 ln tuyn chn, có 5 thut toán được vào vòng chung kết,  
gm có: MARS, RC6, SERPENT, TWOFISH và RIJNDAEL. Các thut toán này  
đều đạt các yêu cu ca AES nên được gi chung là các thut toán ng viên AES.  
Các thut toán ng viên AES có độ an toàn cao, chi phí thc hin thp.  
2.2. Các thut toán ng viên AES và Rijndael  
2.2.1.Các thut toán ng viên AES  
2.2.1.1.  
MARS  
Thut toán Mars được đề xut bi đơn vTchc máy tính thương mi quc  
tế (International Business Machines Corporation) .[11]  
MARS là thut toán mã hóa khóa đối xng htrkích thước khi dliu 128bit và  
cho phép sdng mã khóa có kích thước thay đổi được. Dliu đầu vào và kết quả  
trvca MARS là 4 t32bit. Khóa ca MARS có kích thước 128bit. Tt ccác  
thao tác tính toán shc trong MARS đều được thc hin trên các t32bit.  
Quá trình mã hóa ca MARS bao gm các công vic:  
- Cng khóa: cng các tca khóa vi các tca khi dliu.  
- 8 chu ktrn ti không khóa.  
- 8 chu ktrn ti có khóa.  
- 8 chu ktrn lùi có khóa.  
- 8 chu ktrn lùi không khóa.  
- Trkhóa: trcác tca khóa vi các tca khi dliu sau khi đã  
thc hin trn..  
Quá trình gii mã ca MARS là nghch đảo ca quá trình mã hóa.  
12  
Chương 2 Mã hóa quy ước  
2.2.1.2.  
SERPENT  
Thut toán SERPENT được đề xut bi đơn vPrivate, ca các tác giRoss  
Anderson, Eli Biham and Lars Knudsen.[11]  
SERPENT là mt hthng 32 chu kthc hin trên 4 t32 bit, do đó kích  
thước khi ca SERPENT là 128 bit. Các giá trdùng trong vic mã hóa được xem  
như các dòng bit. ng vi mi t32-bit, chsbit được đánh t0 đến 31, các khi  
128-bit có chst0 đến 127 và các khóa 256-bit có chst0 đến 255.  
SERPENT mã hóa mt văn bn ban đầu P 128 bit thành mt văn bn mã hóa  
C 128 bit qua 32 chu kvi sự điu khin ca 33 khóa chu k128 bit. Quy trình mã  
hóa SERPENT được thc hin như sau:  
Khi to và phân bkhóa ban đầu thành 33 khóa chu k.  
Thc hin phép hoán vị đầu  
Thc hin 32 chu k, mi chu kbao gm mt phép trn khóa, mt ln áp  
dng các S–box và mt phép biến đổi tuyến tính (cho tt ccác chu ktrừ  
chu kcui). chu kcui cùng, phép biến đổi tuyến tính này được thay thế  
bng mt phép trn khóa  
Thc hin phép hoán vcui.  
Quá trình gii mã SERPENT sdng các Sbox nghch đảo, thc hin các phép  
biến đổi tuyến tính nghch đảo và các khóa chu kỳ được sdng cũng theo thtự  
ngược li.  
2.2.1.3.  
RC6  
Thut toán RC6 được đề xut bi Phòng thí nghim RSA (RSA  
Laboratories), ca các tác giRonald L. Rivest, Matt Robshaw, Ray Sidney, Yiqun  
Lisa Yin.[11]  
RC6 sdng các tham shthng w bit t, r chu kmã hóa và kích thước  
khóa b (tính theo đơn vbyte). Tuy nhiên để phù hp vi các tiêu chun ca AES,  
RC6 chn giá trcác tham sw = 32, r = 20 và b = 16 / 24 / 32 bytes.  
13  
Chương 2 Mã hóa quy ước  
RC6 chia khi mã hóa thành 4 tw-bit A, B, C, D và mã hóa văn bn qua các  
giai đon:  
Khi to và phân bkhóa chính thành 2r + 4 khóa chu kỳ được gili trong  
S[i] (0 i 2r + 4).  
Cng khóa chu kS[0] và S[1] vào các tB, C.  
Thc hin 20 chu kmã hóa gm các phép toán quay trái, phép cng, nhân  
và xor giá trt.  
Cng khóa chu kS[2r + 2] và S[2r + 3] vào các tA, D.  
Quy trình gii mã ca RC6 là nghch đảo ca quy trình mã hóa.  
2.2.1.4.  
TWOFISH  
Thut toán TWOFISH được đề xut bi Counterpane Systems, ca các tác  
giBruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall and  
Niels Ferguson.[11]  
TWOFISH được thiết kế để tha mãn các tiêu chun ca AES. TWOFISH hỗ  
trkích thước khóa ti đa 256 bit.  
Tóm tt quy trình mã hóa TWOFISH:  
Khi to và phân bkhóa: to 40 khóa chu kvà 4 Sbox, các Sbox phụ  
thuc khóa.  
Input Whitening: Khi dliu ban đầu đựợc chia thành 4 t32 bit A,B,C,D.  
Thc hin XOR 4 khóa chu kỳ đầu tiên vi A, B, C, D.  
Thc hin 16 vòng lp, trong mi vòng lp thc hin các thao tác XOR, quay  
trái, quay phi dliu đồng thi sdng các Sbox phthuc khóa.  
Output Whitening: XOR các tdliu vi 4 khóa chu kmrng.  
Quy trình mã hóa và gii mã ca thut toán TWOFISH tương tnhư nhau. Tuy  
nhiên, quy trình gii mã đòi hi áp dng các khóa chu ktheo thtự đảo ngược.  
14  
Chương 2 Mã hóa quy ước  
2.2.2.Thut toán Rijndael  
Tháng 11/2001, NIST công btài liu FIPS-197, công nhn Rijndael là thut  
toán đại din cho chun mã hóa mrng AES.[17] Rijndael đã vượt qua 4 thut  
toán ng viên còn li (RC6, MARS, SERPENT, TWOFISH) để trthành chun mã  
hóa quy ước mi nht hin nay. Thut toán Rijndael do hai nhà khoa hc Vincent  
Rijmen và Joan Daeman cung cp.  
Phương pháp Rijndael mã hóa theo khi. Kích thước khi và kích thước khóa  
thay đổi linh hot 128, 192, 256 bit nhvy Rijndael thích hp vi nhiu hthng  
mã hóa khác nhau tcác máy tính cá nhân đến smart-cards.  
Thut toán Rijndael được xem là thut toán có độ an toàn rt cao và có nhiu  
ưu đim nhưng vi sphát trin mnh mca ngành công nghip máy tính không  
loi trnguy cơ thut toán Rijndael bphá v. Do đó hin nay các nhà khoa hc  
đang tìm cách ci tiến mrng thut toán Rijndael để tăng độ an toàn. Các phiên  
bn mrng 256/384/512-bit[1][2][3][4][5] và phiên bn mrng 512/768/1024-bit  
đều được xây dng trên cslý thuyết ca thut toán Rijndael nguyên thy nhưng có  
khnăng xlý khóa và khi dliu ln hơn nhiu ln so vi phiên bn gc.[7]  
Đơn vthông tin được xlý trong thut toán Rijndael là byte. Mi byte có thể  
được biu din bng nhiu cách khác nhau: dng nhphân  
({b7b6b5b4b3b2b1b0}),dng thp lc phân ({h1h0})hay dng đa thc có các  
7
bi xi  
hsnhphân  
.
i=0  
Các thao tác tính toán ca thut toán AES được thc hin trên các ma trn hai  
chiu gi là trng thái (state). Mi state gm 4 hàng Nb ct trong đó Nb là kết quả  
ca phép chia kích thước khi dliu cho 32. Đối vi AES, Nb = 4.  
Khóa cũng được biu din dưới dng ma trn hai chiu gm 4 hàng Nk ct  
trong đó Nk là kết quchia kích thước khóa cho 32. Mi chu kmã hóa / gii mã sử  
dng mt khóa phát sinh tkhóa chính gi là khóa chu k. Có tt cNr + 1 khóa  
15  
Chương 2 Mã hóa quy ước  
chu k. Hàm phát sinh bng mã khóa mrng (KeyExpansion) phthuc vào  
giá trNk, chi tiết hàm KeyExpansion được mô ttrong phlc A.  
Ý nghĩa  
STT  
Tên  
Phiên bn nguyên thy  
Phiên bn mrng  
1
AddRoundKey Thc hin vic cng mã khóa ca chu kvào trng thái  
hin hành.  
2
SubBytes  
Thay thế phi tuyến tng byte trong trng thái hin hành.  
Dùng bng thay thế SBox.  
3
4
5
InvSubBytes  
MixColumns  
Phép biến đổi ngược ca SubBytes.  
Trn thông tin tng ct trong trng thái hin hành.  
InvMixColumn Phép biến đổi ngược ca MixColumn.  
s
6
ShiftRows  
Dch chuyn xoay vòng tng dòng ca trng thái hin  
hành vi di stương ng khác nhau.  
Phép biến đổi ngược ca ShiftRows.  
Mã khóa chính. Được biu din bng ma trn:  
7
8
InvShiftRows  
K
4 dòng × Nk ct  
Trng thái. Được biu din bng mt ma trn :  
4 dòng × Nb ct 8 dòng × Nb ct  
8 dòng × Nk ct  
9
9
State  
Nb  
Slượng ct trong trng thái. Nb {4,6,8}. (AES: Nb =  
4)  
Nb = độ dài khi / 32  
Nb = độ dài khi / 64  
10 Nk  
Slượng các t32bit trong Mã khóa chính K.  
Nk{4,6,8}  
Nk = Độ dài khóa / 32  
Nk = Độ dài khóa / 64  
11 Nr  
Slượng chu k. Nr = max(Nb, Nk) + 6  
12 RotWord  
13 SubWord  
Dch chuyn xoay vòng 4 bytes thành phn ca t32 bit.  
Nhn vào mt t4 byte. Áp dng phép thay thế da vào  
SBox cho tng byte. Trvt4 byte đã được thay thế.  
14 XOR  
Phép toán Exclusive-OR  
15  
16  
17  
Phép toán Exclusive-OR  
Phép nhân 2 đa thc (bc < 4) modulo cho đa thc x4+1.  
Phép nhân trên trường hu hn.  
16  
Chương 2 Mã hóa quy ước  
Bng 2-1: Các hàm và ký hiu sdng trong phương pháp Rijndael.  
2.2.2.1.  
Quy trình mã hóa Rijndael:  
Thc hin thao tác AddRoundKey đầu tiên trước khi thc hin các chu kỳ  
mã hóa.  
Nr–1 chu kmã hóa bình thường: mi chu kbao gm 4 bước biến đổi liên  
tiếp nhau: SubBytes, ShiftRows, MixColumns, và AddRoundKey.  
Thc hin chu kmã hóa cui cùng: trong chu knày thao tác MixColumns  
được bqua.  
v
Thut toán mã hóa Rijndael :  
Dliu vào:  
inputBlock: khi dliu cn mã hóa.  
inputBlockSize: kích thước khi dliu cn mã hóa.  
cipherKey: khóa chính.  
cipherKeySize: kích thước khóa chính.  
Dliu ra:  
outputBlock: khi dliu đã được mã hóa.  
state = inputBlock  
cycleCount = max(inputBlockSize, cipherKeySize) + 6  
AddRoundKey(state, createCycleKey(cipherKey, 1))  
For i = 1 to cycleCount - 1 do  
SubBytes(state)  
ShiftRows(state)  
MixColumns(state)  
AddRoundKey(state, createCycleKey(cipherKey, i))  
end for  
SubBytes(state)  
ShiftRows(state)  
AddRoundKey(state, createCycleKey(cipherKey, cycleCount))  
outputBlock = state  
Thut toán 2.1: Thut toán mã hoá theo phương pháp Rijndael.  
17  
Chương 2 Mã hóa quy ước  
2.2.2.2.  
Quy trình gii mã Rijndael  
Quy trình gii mã có thể được thc hin theo vi trình tcác phép biến đổi  
ngược hoàn toàn tương đương vi quy trình mã hóa[8]. Các thao tác ShiftRows,  
MixColumns, SubBytes ln lượt được thay thế bng các thao tác InvShiftRows,  
InvMixColumns, InvSubBytes.  
Quá trình gii mã được tóm tt như sau:  
Thc hin AddRoundKey  
Thc hin Nr-1 chu kgii mã bình thường, mi chu kgm 4 bước biến  
đổi liên tiếp sau: InvShiftRows, InvSubBytes, AddRoundKey,  
InvMixColumns.  
Thc hin chu kì mã hóa cui cùng, ging Nr-1 chu ktrên nhưng bqua  
bước InvMixColumns.  
18  

Tải về để xem bản đầy đủ

pdf 169 trang yennguyen 10/06/2025 70
Bạn đang xem 30 trang mẫu của tài liệu "Luận văn Nghiên cứu và xây dựng ứng dụng bảo mật trên PDA", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfluan_van_nghien_cuu_va_xay_dung_ung_dung_bao_mat_tren_pda.pdf