Khóa luận Nghiên cứu và xây dựng hạ tầng khóa công khai

ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
Trn Quang Thun  
NGHIÊN CU VÀ XÂY DNG HTNG KHÓA  
CÔNG KHAI  
KHOÁ LUN TT NGHIP ĐẠI HC HCHÍNH QUY  
Ngành : Công nghthông tin  
HÀ NI - 2010  
ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
Trn Quang Thun  
NGHIÊN CU VÀ XÂY DNG HTNG KHÓA  
CÔNG KHAI  
KHOÁ LUN TT NGHIP ĐẠI HC HCHÍNH QUY  
Ngành : Công nghthông tin  
Cán bhướng dn: PGS – TS.HSỹ Đàm  
Cán bộ đồng hướng dn: TS.Lê Đức Phong  
HÀ NI - 2010  
LI CM ƠN  
Tôi xin gi li cm ơn chân thành nht ti PGS.TS HSĩ Đàm, TS. Lê Đức Phong.  
Nhng người thy đã cho tôi nhng định hướng và nhng ý kiến rt quý báu để tôi hoàn  
thành được khóa lun tt nghip này. Tôi xin tlòng biết ơn sâu sc ti các thy cô, bn  
đã dìu dt, giúp đỡ tôi tiến btrong sut quá trình làm khóa lun tt nghip. Xin cm  
ơn gia đình và bè bn, nhng người luôn khuyến khích và giúp đỡ tôi trong mi hoàn  
cnh khó khăn. Tôi xin cm ơn bmôn Truyn Thông và Mng Máy Tính, khoa Công  
NghThông Tin trường Đại Hc Công Ngh-Đại Hc Quc Gia Hà Ni đã hết sc to  
điu kin cho tôi trong quá trình hc, làm và hoàn thành khóa lun này.  
M C L C  
Mở Đầu................................................................................................................................ 1  
Chương 1 : Gii Thiu......................................................................................................... 2  
1.1. Tìm hiu Mt mã hc khoá công khai...................................................................... 2  
1.1.1.Mt mã hc khoá công khai................................................................................ 2  
1.1.2.ng dng ............................................................................................................ 4  
1.2. Thut toán và độ phc tp thut toán ....................................................................... 4  
1.2.1.Thut toán ........................................................................................................... 4  
1.2.2.Phân tích thut toán............................................................................................. 5  
1.3. Htng khóa công khai (PKI).................................................................................. 5  
1.3.1.PKI là gì.............................................................................................................. 5  
1.3.2.Cshtng khóa công khai............................................................................. 6  
1.4. Mt vài kiến trúc và công nghPKI hin hành........................................................ 7  
1.4.1.Mt số ứng dng..................................................................................................... 7  
1.5. Mc đích ca đề tài .................................................................................................. 8  
1.6. Đặt vn đề ?.............................................................................................................. 9  
1.7. Các vn đề sgii quyết trong khóa lun................................................................. 9  
Chương 2 : Xây dng htng khóa công khai(PKI), vn đề cp phát chng thc svà  
ng dng trong thương mi đin t................................................................................... 11  
2.1. Hàm băm mt mã hc............................................................................................. 11  
2.1.1.Hàm băm........................................................................................................... 11  
2.1.2.Hàm băm mt mã hc ....................................................................................... 11  
2.1.3.Đảm bo tính toàn vn dliu.......................................................................... 11  
2.1.4.Mt shàm băm thông dng ............................................................................ 12  
2.2. Mã hóa thông tin..................................................................................................... 14  
2.3. Chký s................................................................................................................ 15  
2.3.1.Chký s.......................................................................................................... 15  
2.3.2.To và kim tra chký s................................................................................. 16  
2.4. Chng thc s......................................................................................................... 22  
2.5. Cu trúc phân tng ca hthng PKI..................................................................... 22  
2.6. Cp phát và xác thc chng thc s....................................................................... 23  
2.6.1.Cp phát chng thc s..................................................................................... 23  
2.6.2.Xác thc chng thc s.................................................................................... 25  
2.7. ng dng ca htng khóa công khai và cp phát chng thc............................. 25  
2.7.1.Mã hóa .............................................................................................................. 25  
2.7.2.Chng gimo.................................................................................................. 25  
2.7.3.Xác thc............................................................................................................ 26  
2.7.4.Chng chi bngun gc................................................................................. 26  
2.7.5.Chđin t................................................................................................... 26  
2.7.6.Bo mt website................................................................................................ 27  
2.7.7.Đảm bo phn mm .......................................................................................... 27  
2.8. OpenCA hthng htng khóa công khai trong thc tế ....................................... 27  
2.8.1.Định nghĩa :....................................................................................................... 27  
2.8.2.Đánh giá vhOpenCA ................................................................................... 28  
Chương 3: Đặc tmt Platform PKI................................................................................. 29  
3.1. Ngôn nglp trình.................................................................................................. 29  
3.2. Thư vin snguyên ln.......................................................................................... 29  
3.3. Mt Platform PKI phi cung cp đầy đủ các chc năng sau: ................................ 29  
3.3.1.Cp phát ............................................................................................................ 29  
3.3.2.Chng thc........................................................................................................ 39  
3.3.3.Toàn vn dliu ............................................................................................... 39  
3.3.4.Thu hi và cp phát li chng thc s.............................................................. 41  
KT LUN ....................................................................................................................... 44  
CÁC TÀI LIU THAM KHO........................................................................................ 45  
TÓM TT KHÓA LUN  
Khóa lun “Htng khóa công khai (PKI), vn đề cp phát chng thc sng  
dng trong thương mi đin t. Htng khóa công khai là mt bkhung cơ bn để xây  
dng mô hình an ninh, bo mt trong thương mi đin t. Tìm hiu vai trò ca chng thc  
strong htng khóa công khai. Vai trò ca chng thc strong các giao dch trc tuyến.  
Người sdng, ngoài hình thc bo mt thông thường như mt khu, cũng phi dùng mt  
chng thc scá nhân để khng định danh tính ca mình, xác nhn các hot động giao  
dch ca mình vi dch vngân hàng, thương mi đin t, dao dch chng khoán... Chng  
thc ssgiúp nhà qun lý đảm bo rng khách hàng không thchi cãi các giao dch  
ca mình, khi họ đã dùng chng thc s. Từ đó đặt ra các vn đề qun lý (cp phát,xác  
thc) thu hi và cp phát li chng thc s.  
Trong khóa lun tôi strình bày vcác vn đề chính xoay quanh vn đề htng  
khóa công khai (PKI). Phn đầu ca khóa lun (chương 1) gii thiu vn đề và cách tiếp  
cn gii quyết vn đề strình bày khái quát vmt vài khái nim cơ bn vmt mã hc  
khóa công khai, htng khóa công khai ; các khái nim cơ bn vthut toán và lý thuyết  
độ phc tp; mt vài công cnn tng ca mt mã hc khóa công khai (mã hóa thông tin,  
hàm băm, chký s). Chương 2 ca khóa lun slàm rõ hơn các khái nim, các vn đề cơ  
bn bên trong mt htng khóa công khai (chng thc s, các dch vụ đăng ký, cp phát,  
xác thc, thu hi, … khóa công khai); ng dng ca htng khóa công khai trong giao  
dch đin tngày nay ; và mt vài hthng htng khóa công khai trong thc tế. Chương  
3 đặc tmt htng khóa công khai đơn gin và Kết Lun.  
DANH MC TVIT TT  
PKI  
CA  
Public Key Infrastructure  
Certificate Authority  
Rivest Shamir Adleman  
Digital Signature Algorithm  
Message Digest 5  
RSA  
DSA  
MD5  
RA  
Registration Authority  
Secure Hash Algorithm  
Secure Hash Standard  
Hash function  
SHA  
SHS  
H
RFC  
Request For Comments  
DANH MC HÌNH VVÀ BNG  
Hình 1.1: Cp phát khóa riêng khóa công khai  
Hình 1.2: Mã hóa thông tin  
Hình 1.3: To và xác thc chký số  
Hình 1.4 : Mô hình xây dng PKI cơ bn  
Bng 1.5 : mô hình xdng xác thc  
Hình 2.1 : Đặc đim ca các thut toán băm SHA  
Bng 2.2 :So sánh thi gian to khóa, to chký và xác nhn chký ca RSA vi  
DSA  
Hình 2.3 : Thi gian xác nhn chký ca RSA và DSA  
Hình 2.4 : Thi gian to chký ca RSA và DSA  
Hình 2.5 : Thi gian xác nhn chký ca RSA và DSA  
Hình 2.6 : Mô hình phân cp  
Hình 3.1 : Hàm to cp khóa riêng và khóa công khai  
Hình 3.2 : Mô phng to khóa  
Hình 3.3 : To chký số  
Hình 3.4 : Form nhp thông tin ca client  
Hình 3.5 : Thông báo trvkhi kết qugi thông tin thành công  
Hình 3.6 : Xác thc khóa công khai và chký số  
Hình 3.7 : cp phát chng thc số  
Hình 3.8 : Kim tra thông tin và cp phát chng thc số  
Hình 3.9 : Xác thc chng thc số  
Hình 3.10 : Form tìm kiếm, sa, xóa thông tin chng thc số  
Hình 3.11 : Kim tra và thu hi chng thc shết hn sdng  
Mở Đầu  
Trong knguyên ca công nghthông tin, tính phbiến rng rãi ca Internet mt  
mt đem li nhiu ng dng tin li, thú vvà dn thay thế các hot động truyn thng  
trong thế githc; mt khác nó đặt ra các vn đề vsan toàn, tính tin cy ca nhng  
giao dch trên Internet. Cơ shtng khóa công khai (PKI) có thể đáp ng, gii quyết  
nhng vn đề cơ bn nht cho nhng yêu cu trên. Da trên các dch vcơ bn vchng  
thc svà chký s, mt PKI chính là bkhung ca các chính sách, dch vvà phn  
mm mã hóa, đáp ng nhu cu bo mt ca người sdng.  
Không chnm trong lĩnh vc thương mi đin t, chng thc shin còn được sử  
dng như mt dng chng minh thư cá nhân. Ti các nước công nghphát trin, chng  
thc sCA được tích hp vào các chip nhnm trong thcăn cước, thtín dng để tăng  
cường khnăng bo mt, chng gimo, cho phép chthxác thc danh tính ca mình  
trên nhiu hthng khác nhau, chng hn như xe bus, thrút tin ATM, kim soát hi  
quan, ra vào chung cư .v.v.  
Vi các đặc đim ni bt như không thgimo, chng thc ngun gc xut x,  
các quc gia phát trin đều đã sdng chng thc snhư mt bng chng pháp lý trt  
sm. Đây là yếu trt quan trng để có thphát trin thương mi đin t, vì không ai  
dám mo him vi tin ca mình, khi hchưa chc chn được rng các hot động đó có  
được đảm bo, và có được pháp lut công nhn hay không.  
Trong bn khóa lun tt nghip này, tác gixin trình bày tng quát vcơ shtng  
khóa công khai và ng dng ca nó trong thương mi đin t. Qua đó trình bày mt bn  
platform mô phng hot động ca mt htng khóa công khai (PKI) cơ bn.  
1
Chương 1 : Gii Thiu  
1.1. Tìm hiu Mt mã hc khoá công khai  
1.1.1. Mt mã hc khoá công khai  
1.1.1.1. Mt mã hc khóa công khai (Phi đối xng) là gì  
là mt chuyên ngành ca mt mã hc cho phép người sdng trao đổi các  
thông tin mt mà không cn phi trao đổi các khóa chung bí mt trước đó.  
Điu này được thc hin bng cách sdng mt cp khóa có quan htoán  
hc vi nhau là khóa công khai khóa cá nhân (hay khóa bí mt).  
Trong mt mã hc khóa công khai, khóa cá nhân phi được gibí mt trong  
khi khóa công khai được phbiến công khai. Trong 2 khóa, mt dùng để mã  
hóa và khóa còn li dùng để gii mã. Điu quan trng đối vi hthng là  
không thtìm ra khóa bí mt nếu chbiết khóa công khai.[1]  
1.1.1.2. Mc đích ca hthng mã hoá công khai :  
Cp phát khoá riêng và khoá công khai :  
Hình 1.1: Cp phát khóa riêng khóa công khai  
ƒ Vic cp phát khoá công khai và khoá bí mt thông qua thut toán  
RSA (phbiến). Thut toán RSA to ra cp khoá bng các phương  
thc toán hc t2 snguyên tbt kỳ đủ ln.  
2
- Mã hoá :  
Hình 1.2: Mã hóa thông tin  
ƒ Bob mã hóa thông tin gi cho Alice bng khóa công khai ca  
Alice. Alice nhn được tin nhn tBob kim tra tin nhn và gii  
mã bng khóa bí mt ca Alice.  
- To và xác thc chký s:  
Hình 1.3: To và xác thc chký số  
S = H(m)^d mod n (To chkí s)  
ƒ Cho phép kim tra mt văn bn có phi đã được to vi mt khóa  
bí mt nào đó hay không.  
ƒ To chkí sbng khóa bí mt ca Alice.  
3
ƒ Và ký vào tin nhn Alive gi cho Bob  
ƒ Bob kim tra chký sbng khóa công khai ca Alice:  
S^e mod n =H(m) vi H(m) là giá trsau khi băm tin nhn Alice  
gi cho Bob. Chký số đúng đắn đồng nghĩa vi vic các thông tin  
Alice gi bob là đúng đắn.  
1.1.2. ng dng  
- ng dng rõ ràng nht ca mt mã hóa khóa công khai là trong lĩnh vc bo mt,  
an toàn thông tin: Mt văn bn được mã hóa bng khóa công khai ca mt  
người sdng thì chcó thgii mã vi khóa bí mt ca người đó.Các thut toán  
to chký skhóa công khai cho phép định danh mt tin nhn hay 1 tài liu .  
Mt người sdng có thmã hóa văn bn vi khóa bí mt ca mình. Nếu mt  
người khác có thgii mã vi khóa công khai ca người gi thì có thtin rng  
văn bn thc sxut phát tngười gn vi khóa công khai đó (Đây là nguyên lý  
sinh & xác thc chký s, người gi sdng khóa bí mt ca mình để sinh ra 1  
chký scho 1 tin nhn, tài liu. Bên nhn có thxác thc tính đúng đắn ca  
chký số đó nhvào khóa công khai ca người gi).Các đặc đim trên còn có  
ích cho nhiu ng dng khác như: tin đin t, tha thun khóa... Các vn đề và  
mc đích ca đề tài.  
1.2. Thut toán và độ phc tp thut toán  
1.2.1. Thut toán  
- Thut toán được hiu là sự đặc tchính xác ca mt dãy các bước có thể được  
thc hin mt cách máy móc để gii quyết mt vn đề. Cn nhn mnh rng, mi  
thut toán có mt dliu vào (Input) và dliu ra (Output); khi thc hin thut  
toán (thc hin các bước đã mô t) , thut toán cn cho ra các kiu dliu ra  
tương ng vi các dliu vào.[2]  
4
1.2.2. Phân tích thut toán  
1.2.2.1. Tính hiu quca thut toán  
- Khi gii mt vn đề, chúng ta cn chn trong scác thut toán, mt thut toán  
mà chúng ta cho là “tt” nht. Cơ sở đánh chn la thut toán :  
ƒ Thut toán đơn gin, dhiu, dcài đặt(dviết chương trình)  
ƒ Thut toán sdng tiết kim nht các ngun tài nguyên ca máy tính và  
đặc bit chy nhanh nht có thể được.  
Tính hiu quca thut toán bao gm 2 nhân tcơ bn :  
ƒ Dung lượng không gian nhcn thiết để lưu gicác dliu vào, các kết  
qutính toán trung gian và các kết quca thut toán  
ƒ Thi gian cn thiết để thc hin thut toán(hay thi gian chy) [3]  
1.2.2.2. Đánh giá thi gian thc hin thut toán  
- Thi gian chy chương trình phthuc vào các nhân tchính sau:  
ƒ Các dliu vào  
ƒ Chương trình dch để chuyn chương trình ngun thành mã máy.  
ƒ Tc độ thc hin ca các phép toán ca máy tính được sdng để chy  
chương trình.  
GisT(n) là thi gian thc hin thut toán và f(n) là hàm xác định  
dương.T(n)=O(f(n)) nếu các hng sdương c và n0 sao cho T(n) c.g(n)  
vi mi n>= n0 .  
1.3. Htng khóa công khai (PKI)  
1.3.1. PKI là gì  
Để hiu rõ vvic xây dng cơ PKI và vn đề cp phát chng thc scó vai trò  
ng dng như thế nào trong thương mi điên t. Chúng ta sẽ đi phân tích tng  
khía cnh xung quanh PKI.  
Trước tiên chúng hiu thế nào là PKI và tính cp thiết ca PKI hin nay :  
5
ƒ PKI : viết tt ca Public Key Infrastructure tc là htng cơ skhóa công  
khai. Là mt cơ chế để cho mt bên th3 (thường là nhà cung cp chng  
thc s) cung cp và xác thc định danh các bên tham gia vào quá trình trao  
đổi thông tin. Cơ chế này cũng cho phép gán cho mi người sdng trong  
hthng mt cp khóa công khai/khóa bí mt.  
ƒ Trong knguyên bùng nca công nghthông tin, mi giao dch txa có  
ththông qua internet. Tuy nhiên, mt khác khó mà bo đảm rng nhng  
giao dch trên Internet luôn an toàn. Cơ shtng khóa công khai (PKI) đã  
đáp ng nhng yêu cu cp thiết đó. Da trên cách sdng ca chìa khóa  
mt mã công cng và chđin t, mt PKI chính là bkhung ca các  
chính sách, dch vvà phn mm mã hóa, đáp ng nhu cu bo mt ca  
người sdng.  
1.3.2. Cshtng khóa công khai  
Hình 1.4 : Mô hình xây dng PKI cơ bn  
PKI cung cp mt cp chìa khóa, trong đó có mt chìa là chìa khóa công khai  
(Public key) để có thsdng dch v, chìa còn li là chìa khóa bí mt (Private  
key) mà người sdng phi gibí mt. Hai chìa khóa này có liên quan mt thiết  
đến nhau, sao cho mt thông đip được mã hóa bi mt chìa khóa mt mã công  
khai thì chgii mã được bi mt chìa khóa bí mt tương ng.  
6
Ví dvmô hình xdng xác thc :  
Giscó 2 người dùng Bob và Alice mun chuyn thư đin tcho nhau để đảm  
bo tính xác thc và bo mt hdùng 1 phn mm PKI  
Hành động  
Trng thái ca hthng PKI  
Bob mun chuyn mt thư đin tử đến Phn mm PKI dùng chìa khóa cá nhân  
cho Alice, vi yêu cu rng giao dch ca Bob to ra mt chđin tcho  
phi chng minh được chính anh đã gi bc thư  
đi và ni dung bc thư không bthay  
đổi.  
Bob mun chc chn rng không ai ngoài Phn mm PKI ca Bob dùng chìa khóa  
Alice đọc được bc thư này  
công cng ca Alice để mã hóa thông  
đip ca Bob.  
Alice mun đọc thư do Bob gi  
Phn mm PKI dùng chìa khóa cá nhân  
ca Alice để để gii mã thông đip.  
Alice mun kim chng rng chính Bob Phn mm PKI ca Alice dùng chìa khóa  
đã gi đi thông đip đó và ni dung công cng ca Bob để kim chng chữ  
thông đip không bchnh sa.  
đin tca anh ta.  
Bng 1.5 : Mô hình sdng xác thc  
1.4. Mt vài kiến trúc và công nghPKI hin hành  
1.4.1. Mt số ứng dng  
- Mc tiêu chính ca PKI là cung cp khóa công khai và xác định mi liên hgia  
khóa và định dng người dùng. Nhvy người dùng có thsdng trong mt số  
ng dng như:  
ƒ Mã hoá Email hoc xác thc người gi Email (OpenPGP hay S/MIME).  
7
ƒ Mã hóa hoc nhn thc văn bn (Các tiêu chun Chký XML* hoc mã  
hoá XML* khi văn bn được thhin dưới dng XML).  
ƒ Xác thc người dùng ng dng (Đăng nhp bng ththông minh -  
smartcard, nhn thc người dùng trong SSL).  
ƒ Các giao thc truyn thông an toàn dùng kthut Bootstrapping (IKE,  
SSL): trao đổi khóa bng khóa bt đối xng, còn mã hóa bng khóa đối  
xng.  
1.4.2. Mt shthng PKI  
- Dưới đây là danh sách mt shthng PKI, trong đó mt snhà cung cp chng  
thc shàng đầu (ví dVeriSign) không được lit kê vì các phn mm ca họ  
không được công bcông khai :  
ƒ Hthng qun lý chng thc Red Hat  
ƒ Computer Associate eTrust PKI  
ƒ Microsoft  
ƒ OpenCA (Mt mô hình PKI mã ngun m)  
ƒ RSA Security  
ƒ IDX-PKI  
ƒ Simple CA  
1.5. Mc đích ca đề tài  
Mt vài năm trli đây PKI là 1 chủ đề nóng đối vi các doanh nghip ln. Vit  
Nam đây vn là mt đề tài khá mi m. Do vy tìm hiu và xây dng htng cơ sở  
xác thc khóa công khai(PKI) là mt cách tiếp cn cho mt nn tng mi. Từ đó nêu  
rõ vai trò và ng dng ca htng khóa công khai trong thương mi đin t.  
Tìm hiu vcác thut toán(sinh sngu nhiên trong vic to khóa, hàm băm, mã  
hóa, to chký s...)  
8
1.6. Đặt vn đề ?  
- Để xây dng mt cơ shtng chúng ta phi gii quyết sơ bnhng vn đề sau  
đây :  
ƒ Làm sao để cp phát khóa công khai và khóa bí mt cho tng người.  
ƒ Vn đề đăng ký khóa công khai vi mt CA  
ƒ Vn đề thu hi/cp phát li khóa công khai  
ƒ
Vn đề kim chng khóa công khai  
ƒ Làm sao tkhóa công khai ca 1 người hthng PKI phi xác định xem chữ  
ký scó phi ca người đó hay không.  
ƒ Vn đề toàn vn dliu. Hthng PKI phi xác định xem liu tin nhn gi đi  
gia client và server có bthay đổi hay không?  
ƒ Mt thông đip được mã hóa bi mt chìa khóa mt mã công khai thì chgii  
được bi mt chìa khóa bí mt tương ng.  
ƒ Khóa ca bên th3 bên thm định sdo cp hay tchc nào giám đinh. Hay  
phi có cơ chế nào để chng gimo bên chng thc.  
ƒ Các Vn đề liên quan đến chng thc scp phát, xác thc và qun lý ti  
server ra sao.  
1.7. Các vn đề sgii quyết trong khóa lun  
- Vi nhng yêu cu vmt hthng PKI như trên chúng ta phi xây dng bài toán  
như thế nào.Chương trình thiết kế phi bao gm 3 đối tượng :  
Server :  
ƒ Cho phép người dùng trong hthng đăng ký khóa công khai. Cp phát 1  
chng thc s(certificat) cho người dùng đó nếu khóa công khai hp lệ  
ƒ Qun lý khóa công khai, Thu hi/cp phát li chng thc số  
ƒ Cho phép bên th3 kim tra tính đúng đắn ca 1 chng thc sbt kỳ  
9
User :  
ƒ Hthng PKI cp phát mt khóa công khai cho user và khóa bí mt (Khóa  
riêng) do PKI client cp phát và user phi gibí mt.  
ƒ To chký scho tng văn bn ngu nhiên.  
Bên th3 là bên thm định và đánh giá :  
ƒ Cp phát và bo mt Khóa riêng và khóa công khai ca CA.  
10  
Chương 2 : Xây dng htng khóa công khai(PKI), vn đề  
cp phát chng thc sng dng trong thương mi đin  
tử  
2.1. Hàm băm mt mã hc  
2.1.1. Hàm băm  
- Hàm băm (tiếng Anh: hash function) là hàm sinh ra các giá trbăm tương ng  
vi mi khi dliu (có thlà mt chui kí t, mt đon tin nhn...). Giá trbăm  
đóng vai trò gn như mt khóa để phân bit các khi dliu, tuy nhiên, người ta  
chp nhn hin tượng trùng khóa hay còn gi là đụng độ và cgng ci thin gii  
thut để gim thiu sự đụng độ đó. Hàm băm thường được dùng trong bng băm  
nhm gim chi phí tính toán khi tìm mt khi dliu trong mt tp hp (nhvic  
so sánh các giá trbăm nhanh hơn vic so sánh nhng khi dliu có kích thước  
ln).  
2.1.2. Hàm băm mt mã hc  
- Trong ngành mt mã hc, mt hàm băm mt mã hc (tiếng Anh: Cryptographic  
hash function) là mt hàm băm vi mt stính cht bo mt nht định để phù  
hp vic sdng trong nhiu ng dng bo mt thông tin đa dng, chng hn  
như chng thc (authentication) và kim tra tính nguyên vn ca thông đip  
(message integrity). Mt hàm băm nhn đầu vào là mt xâu ký tdài (hay thông  
đip) có độ dài tùy ý và to ra kết qulà mt xâu ký tđộ dài cố định, đôi khi  
được gi là tóm tt thông đip (message digest) hoc chký s(digital  
fingerprint).[4]  
2.1.3. Đảm bo tính toàn vn dliu  
- Hàm băm mt mã hc là hàm bam và có tính cht là hàm 1 chiu. Tkhi dữ  
liu hay giá trbăm đầu vào chcó thể đưa ra 1 giá trbăm duy nht. Như chúng  
ta đã biết đối vi tính cht ca hàm 1 chiu. Mt người nào đó dù bt được giá trị  
băm hcũng không thsuy ngược li giá tr, đon tin nhn băm khi đim.  
11  
- Hàm băm thường được dùng trong bng băm nhm gim chi phí tính toán khi tìm  
mt khi dliu trong mt tp hp. Giá trbăm đóng vai trò gn như mt khóa  
để phân bit các khi dliu  
- Giá trị đầu vào(tin nhn, dliu...) bthay đổi tương ng giá trbăm cũng bthay  
đổi. Do vy nếu 1 ktn công phá hoi, chnh sa dliu thì server có thbiết  
ngay lp tc.  
2.1.4. Mt shàm băm thông dng  
2.1.4.1. Thut toán hàm băm MD5  
a. Thut toán hàm băm MD5  
MD5 (Message-Digest algorithm 5) là mt hàm băm mt mã được sdng  
phbiến, được thiết kbi Giáo sư Ronald L. Rivest ti trường MIT vào năm  
1991 để thay thế cho hàm băm trước đó là MD4 (1990). Là mt chun  
Internet (RFC 1321), MD5 đã được dùng trong nhiu ng dng bo mt và  
cũng được dùng phbiến để kim tra tính toàn vn ca tp tin. Cũng như các  
hàm băm khác như MD4 và SHS (Secure Hash Standard), MD5 là phương  
pháp có ưu đim tc độ xlý rt nhanh, thích hp vi các thông đip dài và  
cho ra giá trbăm dài 128 bit.  
Trong MD5, thông đip ban đầu X sẽ được mrng thành dãy bit X có độ dài  
là bi ca 512. Dãy bit X gm các thành phn được sp thtnhư sau: Dãy  
bit X ban đầu, mt bit 1, dãy d bit 0 (d được tính sao cho dãy X cui cùng là  
bi ca 512), dãy 64 bit l biu din chiu dài ca thông đip. Đơn vxlý  
trong MD5 là các t32-bit, nên dãy bit X trên sẽ được biu din thành dãy  
các tX[i] 32-bit sau:  
X=X[0] X[1] X[2] …X[N1] , vi N là bi ca 16.[5]  
b. Phương pháp MD5 có nhng ưu đim sau so vi phương pháp MD4  
Thay vì có 3 chu kbiến đổi như trong MD4, MD5 bsung thêm chu kthứ  
4 để tăng mc độ an toàn.  
Trong mi thao tác ca tng chu k, MD5 sdng hng sti phân bit, trong  
khi MD4 sdng hng schung cho mi thao tác trong cùng chu kbiến đổi.  
12  
Hàm G chu k2 ca MD4: G(X,Y,Z) = ((XΛ Z) (XΛ Y) (YΛZ )) được  
thay thế bng G(X,Y,Z) = (XΛ Z) (YΛ (¬Z )) để gim tính đối xng.  
Mi bước biến đổi trong tng chu kchu nh hưởng kết quca bước biến  
đổi trước, vì vy làm tăng nhanh tc độ ca hiu ng lan truyn (avalanche).  
Các hsdch chuyn xoay vòng trong mi chu kỳ được ti ưu hóa nhm  
tăng tc độ hiu ng lan truyn. Ngoài ra, mi chu ksdng 4 hsdch  
chuyn khác nhau.  
Lý do MD5 được thiết kế thay thế cho MD4 là vì các phân tích chra rng  
phương pháp MD4 có vkhông an toàn. Den Boer và Bosselaers đã chra các  
đim yếu trong MD4 trong mt bài báo được đăng vào năm 1991và mt tn  
công xung đột đầu tiên được tìm thy bi Han Dobbertin vào năm 1996 .  
Tuy nhiên, các nlc tn công, phân tích ca các nhà nghiên cu cho thy  
MD5 cũng không còn an toàn và cn được thay thế bng mt thut toán băm  
khác như các công bca Den Boer và Bosselaers năm 1993; ca Hans  
Dobbertin năm 1996; ca nhóm tác giXiaoyun Wang, Dengguo Feng,  
Xuejia Lai, và Hongbo ngày 19/8/2004; ca Arjen Lenstra, Xiaoyun Wang,  
và Benne de Weger ngày 1/3/2005; và ca Vlastimil Klima, …  
2.1.4.2. Chun băm an toàn SHS  
SHS (Secure Hash Standard) là chun gm tp hp các thut toán băm mt  
mã an toàn (Secure Hash Algorithm – SHA) như SHA-1, SHA-224, SHA-  
256, SHA-384, SHA-512 do NIST2 và NSA3 xây dng.  
Phương pháp SHA-1 (cũng như SHA-0) được xây dng trên cùng cơ svi  
phương pháp MD4 và MD5. Tuy nhiên, phương pháp SHA-1 sdng trên hệ  
thng Big-endian5 thay vì Little-endian 6 như phương pháp MD4 và MD5.  
Ngoài ra, hàm băm SHA-1 to ra thông đip rút gn kết quđộ dài 160 bit  
nên thường được sdng  
Phương pháp SHA-1 ging vi MD5 (ci tiến tMD4) nhưng thông đip tóm  
tt được to ra có độ dài 160 bit. Dưới đây là mt số đim so sánh gia MD5  
và SHA-1:  
13  
ƒ Ging như MD5, SHA-1 cũng thêm chu kth4 để tăng mc độ an  
toàn cho thut toán. Tuy nhiên, chu k4 ca SHA-1 sdng li hàm f  
ca chu kth2.  
ƒ Trong SHA-1, 20 bước biến đổi trong cùng mt chu ksdng cùng  
mt hàng sK[t] . Trong khi đó, mi bước biến đổi trong cùng mt chu  
kca MD5 sdng các hng skhác nhau.  
ƒ So vi MD4, hàm G trong MD5 được thay thế thành hàm mi để làm  
gim tính đối xng. Trong khi SHA-1, hàm G trong SHA-1 vn gili  
hàm G ca MD4.  
ƒ CMD5 và SHA-1, mi bước biến đổi trong tng chu kchu nh  
hưởng kết quca biến đổi trước, vì vy làm tăng nhanh tc độ ca hiu  
ng lan truyn.  
Hình 2.1: Đặc đim ca các thut toán băm SHA  
2.2. Mã hóa thông tin  
- Có rt nhiu thông tin mà chúng ta không mun người khác biết khi gi đi như:  
thông tin vCredit-Card, thông tin vkinh doanh ca công ty, thông tin vtài khon  
cá nhân, thông tin vcá nhân như schng minh thư, sth...  
- Các thông tin bí mt được cung cp cho các máy tính quan mng Internet bng nhiu  
phương thc khác nhau ví d:  
Mt cách bo mt đơn gin nhưng minh bch  
nht là lưu các thông tin bí mt trên các bnhcó thxoá được (Removable  
14  
Storage) như đĩa mm. Tuy nhiên dng bo mt phbiến nht vn là da vào quá  
trình mã hoá dliu (Encryption).  
- Các hthng mã hoá trong máy tính phbiến nht thuc mt trong hai loi sau:  
ƒ Mã hoá vi khoá đối xng (Symmetric-key Encryption) : Trong phương pháp  
mã hoá vi khoá đối xng, mi máy tính có mt khoá bí mt (dng mã) dùng  
để mã hoá các gói thông tin trước khi chúng được gi qua mng ti các máy  
tính khác. Phương pháp mã hoá vi khoá đối xng đòi hi người sdng phi  
xác định được nhng máy tính nào đang liên lc trao đổi thông tin vi nhau để  
cài đặt khoá này trên mi máy.  
ƒ Mã hoá vi khoá công khai (Public-key Encryption).[6]  
2.3. Chký số  
2.3.1. Chký số  
- Chký s(Digital Signature) chlà tp con ca chđin t. Chký slà  
chđin tda trên kthut mã hóa vi khóa công khai, trong đó, mi người  
có mt cp khóa (mt khóa bí mt và mt khóa công khai). Khóa bí mt không  
bao giờ được công b, trong khi đó, khóa công khai được tdo sdng. Để trao  
đổi thông đip bí mt, người gi sdng khóa công khai ca người nhn để mã  
hóa thông đip gi, sau đó, người nhn ssdng khóa bí mt tương ng ca  
mình để gii mã thông đip.  
- Chđin tlà thông tin được mã hoá bng Khoá riêng ca người gi, được  
gi kèm theo văn bn nhm đảm bo cho người nhn định danh, xác thc đúng  
ngun gc và tính toàn vn ca tài liu nhn được. Chđin tthhin văn  
bn gi đi là đã được ký bi chính người shu mt Khoá riêng tương ng vi  
mt Chng chỉ đin tnào đó.”  
- Chký skhóa công khai (hay htng khóa công khai) là mô hình sdng các  
kthut mt mã để gn vi mi người sdng mt cp khóa công khai - bí mt  
và qua đó có thký các văn bn đin tcũng như trao đổi các thông tin mt.  
Khóa công khai thường được phân phi thông qua chng thc khóa công khai.  
Quá trình sdng chký sbao gm 2 quá trình: to chký và kim tra chký.  
[7]  
15  
2.3.2. To và kim tra chký số  
2.3.2.1. Các thut toán chký sthông dng  
Chký sgiúp xác định được người to ra hay chu trách nhim đối vi mt  
thông đip được ký. Mt phương pháp chký sphi bao gm ít nht 3 thut  
toán chính, đó là thut toán dùng để to khóa, thut toán dùng để to ra chữ  
ký svà thut toán tương ng để xác nhn chký s.  
2.3.2.2. Thut toán chký sRSA  
Phương pháp chký sRSA được xây dng da trên thut toán mã hóa khóa  
công khai RSA. Để to mt cp khóa, RSA thc hin các bước sau:  
ƒ Chn 2 snguyên tln ngu nhiên p, q. Nhm có san toàn ti đa  
nên chn p và q có độ dài bng nhau.  
ƒ Tính n=pq và φ=(p1)(q1).  
ƒ Chn ngu nhiên mt snguyên e (1<e<φ) sao cho gcd(e, φ)=1 vi  
gcd là ước schung ln nht.  
ƒ Tính: d=e1 mod φ.  
Kết qulà ta có được cp khóa: khóa công khai (n,e) và khóa bí mt (n,d).  
Hai người ssdng chung mt hàm băm an toàn trước hin tượng xung  
đột. Để ký mt thông đip m, người ký thc hin các bước sau:  
ƒ Dùng hàm băm để băm thông đip m: h=(m).  
ƒ To chký ssdng khóa bí mt (n,d) để tính:  
s=hd mod n.  
Chký ca m s được gi kèm vi thông đip m đến người nhn. Để xác  
nhn chký, người nhn thc hin các bước sau:  
ƒ Sdng khóa công khai (n,e) ca người ký để gii mã chký:  
h=se mod n.  
ƒ Sdng cùng hàm băm vi người ký để băm thông đip m:  
h=H(m).  
ƒ Chp nhn chký nếu h=h. Ngược li tchi chký.  
2.3.2.3. Thut toán chký sDSA  
16  
Thut toán chký sDSA (Digital Signature Algorithm) được đề nghbi  
NIST vào tháng 8/1991 để sdng trong chun chký sDSS (Digital  
Signature Standard), được chra trong FIPS 186, được chp nhn năm 1993.  
Mt sa đổi nhỏ được đưa ra ngày năm 1996 trong FIPS 186-1, chun được  
mrng hơn năm 2000, được xem như xem như FIPS 186-2. Vic to khóa  
gm hai bước. Bước thnht là la chn các tham scho thut toán được  
chia sgia các người sdng khác nhau trong cùng hthng:  
ƒ Chn mt hàm băm mã hóa . Trong DSS chun luôn là SHA-1,  
nhưng các hàm băm tt hơn trong nhóm SHA cũng đang được sdng.  
Đôi khi đầu ra ca mt thut toán băm mi hơn brút ngn kích thước  
so vi các thut toán băm mi cũ để tương tích vi cp khóa hin có.  
ƒ Chn kích thước khóa L. Đây là thước đo chính quyết định sc mnh  
mã hóa ca khóa. DSS chun ràng buc L là bi sca 64 và  
512L1024. Sau đó, FIPS 186-2 xác định L luôn là 1024. Không lâu  
sau, NIST 800-57 đề nghị độ dài khóa là 2048 (hoc 3072) để thi gian  
an toàn đến năm 2010 (hoc 2030), sdng tương ng vi các giá trị  
băm và q dài hơn. Bn tho FIPS 186-3 cũng tính đến các hàm băm  
sau này và các khóa dài hơn.  
ƒ Chn mt snguyên tq cùng sbit vi đầu ra ca .  
ƒ Chn mt snguyên tp độ dài L bit sao cho p–1 là bi ca q. Tc là  
p=qz–1 vi snguyên z nào đó.  
ƒ Chn g = h( p1)/ q mod p vi h bt k(1<h<p–1), và chn li nếu kết  
qulà 1. Hu hết cách chn h đều nhn được g có thsdng, thông  
thường chn h=2.  
Các tham sthut toán (p,q,g) có thchia sgia nhng người khác nhau  
trong hthng. Bước thhai tính các khóa bí mt và khóa công khai ca tng  
người :  
ƒ Chn x ngu nhiên sao cho 0<x<q.  
ƒ Tính y=g x mod p.  
ƒ Khóa công khai là (p,q,g,y), khóa bí mt là x.  
17  
Phiên bn FIPS 186-3 sp ti sdng SHA-224/256/384/512 là các hàm băm,  
kích thước ca q là 224 (hoc 256 bit), và L bng 2048 (hoc 3072).  
Để ký mt thông đip m, người ký thc hin các bước sau:  
ƒ Phát sinh mt sngu nhiêu k (0<k<q) cho mi thông đip.  
ƒ Tính r=(gk mod p) mod q.  
ƒ Tính s = k 1 ((m) + xr)) mod q.  
ƒ Tính toán li chký trong trường hp không chc chn r=0 hoc s=0.  
ƒ Chký là (r,s).  
Để xác nhn chký, người nhn thc hin các bước sau:  
ƒ
Loi bchký nếu 0<r<q hoc 0<s<q không tha mãn.  
ƒ Tính w=s1 mod q.  
ƒ Tính u1 =((m)×w) mod q.  
ƒ Tính u2 =(r×w) mod q.  
ƒ Tính v=( (gu1 ×yu2 )mod p) mod q  
ƒ Chký có hiu lc nếu v=r.  
Tính đúng đắn ca gii thut được chng minh như sau:  
/ q  
ƒ Đầu tiên, nếu g = h( p1) mod p suy ra gp=h p1 1=1 (mod p) theo định  
lý Fermat nh. Bi vì g>1 và q là snguyên tnên g có bc q.  
ƒ Người ký tính s = k1 ((m) + xr)) mod q.  
ƒ Như vy k=(m)s 1 +xrs1 =(m)w+xrw (mod q).  
ƒ Bi vì g có bc q nên ta có:  
g k =g H (m)w .g xrw =g H (m)w yrw =gu1 yu2 (mod p).  
ƒ Cui cùng, tính đúng đắn ca DSA suy ra t:  
r= (gk mod p) mod q= (gu1 yu2 mod p) mod q=v.  
Phương pháp DSA đã gii quyết vn đề này bng cách sdng chký 320 bit  
cho văn bn 160 bit vi các phép tính được thc hin trên tp con có 2160  
phn tvi p là snguyên t512 bit.  
18  
2.3.2.4. Kết quthnghim và nhn xét  
So sánh RSA và DSA  
ƒ Để so sánh tc độ ca hai thut toán chký sRSA và DSA, Thử  
nghim 2.2 dưới đây đã được tiến hành và ghi nhn.  
ƒ Thnghim 2.2: DSS chun ràng buc độ dài khóa L là bi sca 64  
và 512L1024 và để an toàn lâu dài độ dài khóa L được đề nghlà  
2048 hoc 3072. Do đó độ dài khóa được thnghim cho cRSA và  
DSA là 576, 640, 704, 768, 832, 896, 960, 1024, 2048, 3072 (bit). ng  
vi mi độ dài khóa, ln lượt cho cRSA và DSA phát sinh khóa, ký  
văn bn ngu nhiên (kích thước 2 MB) và kim tra chký to được.  
Để thun tin so sánh, hàm băm mt mã SHA-1 được chn để sdng  
cho cRSA và DSA. Thnghim được lp li 50.000 ln. Kết quả  
nhn được như sau:  
Kích To khóa (giây)  
thước  
To chký (giây)  
Xác nhn chký (giây)  
(bit)  
RSA  
DSA  
DSA/ RSA  
RSA  
DSA  
RSA/ RSA  
DSA  
DSA  
RSA/  
DSA  
512  
576  
640  
704  
768  
832  
896  
960  
0,0408 0,5676  
0,0568 0,8030  
0,0757 1,2464  
0,0994 1,7948  
0,1278 2,3668  
0,1609 3,0526  
0,2026 4,2369  
0,2446 5,4622  
13,93 0,0351 0,0011 32,60 0,0320 0,0017 19,32  
14,14 0,0361 0,0013 27,24 0,0321 0,0022 14,60  
16,47 0,0371 0,0015 24,53 0,0319 0,0025 12,57  
18,06 0,0387 0,0019 20,25 0,0320 0,0031 10,16  
18,52 0,0408 0,0016 25,29 0,0321 0,0040 7,94  
18,97 0,0428 0,0021 20,31 0,0322 0,0044 7,34  
20,92 0,0454 0,0027 16,58 0,0321 0,0050 6,36  
22,33 0,0480 0,0026 18,45 0,0321 0,0061 5,29  
26,05 0,0515 0,0035 14,86 0,0318 0,0068 4,69  
1024 0,2734 7,1210  
2048 2,4876 103,1124 41,45 0,1749 0,0124 14,16 0,0325 0,0240 1,35  
3072 11,1882 508,2395 45,43 0,5056 0,0278 18,19 0,0341 0,0539 0,63  
Bng 2.2 So sánh thi gian to khóa, to chký và xác nhn chký ca RSA  
vi DSA  
19  
Hình 2.3 : Thi gian to khóa ca RSA và DSA  
ƒ Kết quThnghim 2.5 cho thy tc độ to khóa ca RSA nhanh hơn  
rt nhiu so vi DSA và khi kích thước khóa tăng lên thì tlnày ngày  
càng gia tăng. Hơn na, khi tăng kích thước L!ca DSA và tương ng  
vi các hàm băm SHA có đầu ra ln hơn thì DSA scòn chm hơn rt  
nhiu.  
Hình 2.4 : Thi gian to chký ca RSA và DSA  
ƒ Kết quThnghim 2.2 cho thy tc độ to chký ca RSA chm  
hơn DSA nhưng tlnày có xu hướng gim khi kích thước khóa tăng  
lên. Nguyên nhân là do khi smũ khóa công khai e cố định thì smũ  
khóa bí mt d stăng khi kích thước n tăng. Mt khác, phép tính chiếm  
thi gian nhiu nht ca quy trình ký chính là phép lũy tha modulo  
20  
nên khi smũ tăng thì thi gian thc hin cũng stăng. Tuy nhiên,  
kích thước khóa được sdng phbiến hin nay là 1024 và 2048 nên  
thi gian ký lúc này skhông còn là vn đề đáng lo ngi do toàn bộ  
quy trình chmt ít hơn 0,2 giây.  
Hình 2.5 : Thi gian xác nhn chký ca RSA và DSA  
Thnghim trên môi trường Windows XP, bxlý Pentium 4 3.00  
GHz, bnh512 MB.  
ƒ Kết quThnghim 2.2 cũng cho thy tc độ xác nhn chký ca  
RSA không thay đổi đáng kkhi kích thước khóa tăng do smũ công  
khai e được sdng luôn là mt snh(giá trphbiến hin này là  
65537) và tc độ thc hin phép lũy tha modulo!(phép toán chính  
trong quy trình xác nhn chký) stăng không nhiu. Ngược li, tc  
độ xác nhn chký ca DSA mc dù thp hơn RSA nhưng sngày  
càng tăng khi kích khóa tăng lên. Nguyên nhân là do quy trình xác  
nhn chký ca DSA gm rt nhiu phép tính tn chi phí cao (phép  
lũy tha modulo và phép nhân) nên khi kích thước khóa tăng dn thì  
điu này strthành gánh nng. Mc khác, nếu kích thước L được  
chn ln hơn thì tc độ xác nhn chký schm hơn na. Vi các thử  
nghim trên ta ddàng nhn thy RSA tt hơn DSA vmi mt, đặc  
bit là tc độ phát sinh khóa ca RSA nhanh hơn DSA rt nhiu. Ngoài  
ra, tc độ ký và xác nhn chký du có chm hơn DSA nhưng thi  
gian này là không đáng k.[8]  
21  
2.4. Chng thc số  
Trong mt mã hc, chng thc khóa công khai (còn gi là chng thc s/ chng  
thc đin t) là mt chng thc sdng chký số để gn mt khóa công khai vi  
mt thc th(cá nhân, máy chhoc công ty...). Mt chng thc khóa công khai tiêu  
biu thường bao gm khóa công khai và các thông tin (tên, địa ch...) vthc thsở  
hu khóa đó. Chng thc đin tcó thể được sdng để kim tra mt khóa công  
khai nào đó thuc vai.  
CA phát hành các chng thc khóa công khai trong đó thhin rng CA đó chng  
nhn khóa công khai nm trong mi chng thc thuc vcá nhân, tchc, máy chủ  
hay bt kthc thnào ghi trong cùng chng thc đó. Nhim vca CA là kim tra  
tính chính xác ca thông tin liên quan ti thc thể được cp chng thc. Khi người  
sdng tin tưởng vào mt CA và có thkim tra chký sca CA đó thì hcũng  
có thtin tưởng vào khóa công khai và thc thể được ghi trong chng thc. [9]  
2.5. Cu trúc phân tng ca hthng PKI  
Mô hình này tương ng vi cu trúc phân cp vi CA gc và các CA cp dưới. CA  
gc xác nhn các CA cp dưới, các CA này li xác nhn các CA cp thp hơn. Các  
CA cp dưới không cn xác nhn các CA cp trên.  
Hình 2.6 : Mô hình phân cp  
Mô hình phân cp được minh honhư hình trên.Trong mô hình này, mi thc thể  
sgibn sao khoá công khai ca root CA và kim tra đường dn ca chng thư bt  
22  

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

pdf 53 trang yennguyen 08/06/2025 110
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận Nghiên cứu và xây dựng hạ tầng khóa công khai", để 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:

  • pdfkhoa_luan_nghien_cuu_va_xay_dung_ha_tang_khoa_cong_khai.pdf