Khi ứng dụng trên mạng máy tính ngày càng trở nên phổ biến, thuận lợi và quan trọng thì yêu cầu về an toàn mạng, về an ninh dữ liệu trên mạng ngày càng trở nên cấp bách và cần thiết. Nguồn tài nguyên trên mạng rất dễ bị đánh cắp hoặc phá hỏng nếu không có một cơ chế bảo mật cho chúng hoặc sử dụng những cơ chế bảo mật quá lỏng lẻo. Thông tin trên mạng, dù đang truyền hay được lưu trữ đều cần được bảo vệ. Hoặc các thông tin ấy phải được giữ bí mật, hoặc chúng phải cho phép người ta kiểm tra để tin tưởng rằng chúng không bị sửa đổi so với dạng nguyên thuỷ của mình và chúng đúng là của người nhận gửi nó cho ta.
Mạng máy tính có đặc điểm nổi bật là có nhiều người sử dụng, nhiều người cùng khai thác một kho tài nguyên, đặc biệt là tài nguyên thông tin và các điểm có người sử dụng thường phân tán về mặt địa lý. Các điểm này thể hiện lợi ích to lớn của mạng thông tin máy tính đồng thời nó cũng là điều kiện thuận lợi cho những người muốn phá hoại an toàn thông tin trên mạng máy tính.
Do đó cách tốt nhất để bảo mật thông tin là mã hoá thông tin trước khi gửi đi. Mục tiêu cơ bản của mật mã là cho phép 2 người, thường được đề cập đến như Alice và Bob, liên lạc trên kênh không an toàn theo cách mà đối thủ Orcar không thể hiểu cái gì đang được nói. Kênh này có thể là đường điện thoại hoặc mạng máy tính. Thông tin mà Alice muốn gửi đến Bob sẽ được gọi là “bản rõ” (plaintext), có thể là bất kỳ tài liệu nào có cấu trúc tuỳ ý. Alice mã bản rõ bằng cách dùng khoá xác định trước, và gửi bản rõ thu được trên kênh không an toàn. Orcar dù thu trộm được mã trên kênh song không thể hiểu được bản rõ là gì, nhưng Bob là người biết khoá mã có thể giải mã và thiết lập bản rõ.
64 trang |
Chia sẻ: vietpd | Lượt xem: 1466 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đề tài Luật thương mại Việt Nam, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
§Æt vÊn ®Ò
Khi øng dông trªn m¹ng m¸y tÝnh ngµy cµng trë nªn phæ biÕn, thuËn lîi vµ quan träng th× yªu cÇu vÒ an toµn m¹ng, vÒ an ninh d÷ liÖu trªn m¹ng ngµy cµng trë nªn cÊp b¸ch vµ cÇn thiÕt. Nguån tµi nguyªn trªn m¹ng rÊt dÔ bÞ ®¸nh c¾p hoÆc ph¸ háng nÕu kh«ng cã mét c¬ chÕ b¶o mËt cho chóng hoÆc sö dông nh÷ng c¬ chÕ b¶o mËt qu¸ láng lÎo. Th«ng tin trªn m¹ng, dï ®ang truyÒn hay ®îc lu tr÷ ®Òu cÇn ®îc b¶o vÖ. HoÆc c¸c th«ng tin Êy ph¶i ®îc gi÷ bÝ mËt, hoÆc chóng ph¶i cho phÐp ngêi ta kiÓm tra ®Ó tin tëng r»ng chóng kh«ng bÞ söa ®æi so víi d¹ng nguyªn thuû cña m×nh vµ chóng ®óng lµ cña ngêi nhËn göi nã cho ta.
M¹ng m¸y tÝnh cã ®Æc ®iÓm næi bËt lµ cã nhiÒu ngêi sö dông, nhiÒu ngêi cïng khai th¸c mét kho tµi nguyªn, ®Æc biÖt lµ tµi nguyªn th«ng tin vµ c¸c ®iÓm cã ngêi sö dông thêng ph©n t¸n vÒ mÆt ®Þa lý. C¸c ®iÓm nµy thÓ hiÖn lîi Ých to lín cña m¹ng th«ng tin m¸y tÝnh ®ång thêi nã còng lµ ®iÒu kiÖn thuËn lîi cho nh÷ng ngêi muèn ph¸ ho¹i an toµn th«ng tin trªn m¹ng m¸y tÝnh.
Do ®ã c¸ch tèt nhÊt ®Ó b¶o mËt th«ng tin lµ m· ho¸ th«ng tin tríc khi göi ®i. Môc tiªu c¬ b¶n cña mËt m· lµ cho phÐp 2 ngêi, thêng ®îc ®Ò cËp ®Õn nh Alice vµ Bob, liªn l¹c trªn kªnh kh«ng an toµn theo c¸ch mµ ®èi thñ Orcar kh«ng thÓ hiÓu c¸i g× ®ang ®îc nãi. Kªnh nµy cã thÓ lµ ®êng ®iÖn tho¹i hoÆc m¹ng m¸y tÝnh. Th«ng tin mµ Alice muèn göi ®Õn Bob sÏ ®îc gäi lµ “b¶n râ” (plaintext), cã thÓ lµ bÊt kú tµi liÖu nµo cã cÊu tróc tuú ý. Alice m· b¶n râ b»ng c¸ch dïng kho¸ x¸c ®Þnh tríc, vµ göi b¶n râ thu ®îc trªn kªnh kh«ng an toµn. Orcar dï thu trém ®îc m· trªn kªnh song kh«ng thÓ hiÓu ®îc b¶n râ lµ g×, nhng Bob lµ ngêi biÕt kho¸ m· cã thÓ gi¶i m· vµ thiÕt lËp b¶n râ.
Cã hai lo¹i mËt m· lµ mËt m· bÝ mËt vµ mËt m· kho¸ c«ng khai.Trong mËt m· bÝ mËt, 2 ngêi muèn trao ®æi th«ng tin cho nhau ph¶i tho¶ thuËn chän mét c¸ch bÝ mËt kho¸ k. Tõ k suy ra quy t¾c m· ho¸ ek vµ quy t¾c gi¶i m· dk. Trong c¸c hÖ mËt nµy, dk hoÆc trïng víi ek hoÆc dÔ dµng rót ra tõ ek vµ viÖc tiÕt lé ek sÏ lµm cho hÖ thèng kh«ng an toµn. §é an toµn hÖ mËt chÝnh lµ ®é an toµn tÝnh to¸n. Trong thùc tÕ, mét hÖ mËt lµ “an toµn tÝnh to¸n” nÕu ph¬ng ph¸p tèt nhÊt ®· biÕt ®Ó ph¸ nã yªu cÇu mét sè lín kh«ng hîp lý thêi gian tÝnh to¸n, nghÜa lµ qu¸ tr×nh thùc hiÖn tÝnh to¸n cùc kú phøc t¹p, phøc t¹p ®Õn møc ta coi lµ “kh«ng thÓ ®îc”. HÖ mËt kho¸ c«ng khai ®· ®¸p øng ®îc nh÷ng ®ßi hái ®ã. ý tëng n»m sau hÖ mËt kho¸ c«ng khai lµ ë chç nã cã thÓ t×m ra mét hÖ mËt trong ®ã kh«ng thÓ tÝnh to¸n ®Ó x¸c ®Þnh dk khi biÕt ek. Quy t¾c m· ek cã thÓ c«ng khai. Hµm m· ho¸ c«ng khai ek ph¶i dÔ dµng tÝnh to¸n nhng viÖc gi¶i m· ph¶i khã ®èi víi bÊt kú ngêi nµo ngoµi ngêi lËp m·. TÝnh chÊt dÔ tÝnh to¸n vµ khã ®¶o ngù¬c nµy thêng ®îc gäi lµ tÝnh chÊt mét chiÒu. Muèn gi¶i m· c¸c th«ng b¸o nhËn ®îc mét c¸ch hiÖu qu¶ ta cÇn cã mét cöa sËp 1 chiÒu. §iÒu nµy ®¶m b¶o ®é bÝ mËt cao.
MÆt kh¸c, m· ho¸ cßn bao gåm c¶ x¸c thùc vµ ch÷ ký sè. X¸c thùc cã nhîc ®iÓm lµ ë ®©y 2 bªn cïng cã chung mét kho¸ nªn kh«ng thÓ ph©n xö ®îc khi 1 trong 2 ngêi chèi bá th«ng b¸o hä ®· göi cho ngêi kia. H¬n n÷a, trong m¹ng cã nhiÒu ngêi sö dông, nÕu mçi cÆp cã mét kho¸ tho¶ thuËn nh vËy th× mçi ngêi ph¶i lu gi÷ n-1 kho¸ bÝ mËt. Khi n ®ñ lín, ®ã lµ mét viÖc phiÒn phøc, phøc t¹p. ChÝnh v× vËy mµ ch÷ ký sè ®îc sö dông nhiÒu h¬n. Ch÷ ký sè cã nhiÖm vô gièng ch÷ ký tay nghÜa lµ nã dïng ®Ó thùc hiÖn c¸c chøc n¨ng x¸c nhËn cña mét ngêi göi trªn mét v¨n b¶n. Nã ph¶i võa mang dÊu vÕt kh«ng chèi c·i ®îc cña ngêi göi, võa g¾n víi tõng bit cña v¨n b¶n mµ nÕu thay ®æi dï chØ mét bit cña v¨n b¶n th× ch÷ ký còng kh«ng cßn ®îc chÊp nhËn. Nãi chung c¸c lîc ®å ch÷ ký th× kh«ng cÇn ®èi tho¹i. Nhng trong mét sè trêng hîp ®Ó t¨ng thªm tr¸ch nhiÖm trong viÖc x¸c nhËn, ngêi ta dïng c¸c giao thøc hái- ®¸p ®Ó x¸c ®Þnh ®é tin cËy cña ch÷ ký.
Trong ®å ¸n nµy t«i ®i s©u t×m hiÓu vÒ lîc ®å ch÷ ký chèng chèi bá cã ngêi x¸c nhËn. ë ®©y ch÷ ký cã thÓ ®îc kiÓm tra mµ kh«ng cÇn ®Õn sù céng t¸c cña ngêi ký mµ lµ mét ngêi thø 3- ngêi x¸c nhËn.
Ch¬ng I
TæNG QUAN VÒ NG¤N NG÷ C
I.1. LÞch sö h×nh thµnh vµ ph¸t triÓn
Ng«n ng÷ C do Brian W.Kernighan vµ Dennis M.Ritchie ph¸t triÓn vµo ®Çu nh÷ng n¨m 70 t¹i phßng thÝ nghiÖm BELL ( Hoa Kú) víi môc ®Ých ban ®Çu lµ ®Ó ph¸t triÓn hÖ ®iÒu hµnh UNIX. Bèi c¶nh ra ®êi xuÊt ph¸t tõ nhu cÇu cÇn ph¶i cã mét ng«n ng÷ lËp tr×nh hÖ thèng thay thÕ cho hîp ng÷ (Assembly) vèn nÆng nÒ, ®é tin cËy thÊp vµ khã chuyÓn ®æi gi÷a c¸c hÖ m¸y tÝnh kh¸c nhau.
Ngoµi viÖc C ®îc dïng ®Ó viÕt hÖ ®iÒu hµnh UNIX, ngêi ta nhanh chãng nhËn ra søc m¹nh cña C trong viÖc xö lý c¸c vÊn ®Ò hiÖn ®¹i cña tin häc: xö lý sè, v¨n b¶n, c¬ së d÷ liÖu, lËp tr×nh híng ®èi tîng. C ®· trë thµnh mét chuÈn mÆc nhiªn.
Liªn quan ®Õn sù h×nh thµnh vµ ph¸t triÓn cña ng«n ng÷, cã thÓ kÓ ®Õn mét sè sù kiÖn sau:
- N¨m 1978, cuèn gi¸o tr×nh d¹y lËp tr×nh b»ng ng«n ng÷ C “The C programming langguage” do chÝnh 2 t¸c gi¶ cña ng«n ng÷ Brian W.Kernighan vµ Dennis M.Ritchie biªn so¹n ®· ®îc xuÊt b¶n vµ ®îc phæ biÕn réng r·i.
- N¨m 1983 mét tiÓu ban cña viÖn tiªu chuÈn quèc gia Mü (ANSI) ®îc thµnh lËp nh»m ®Ò xuÊt ra mét chuÈn cho ng«n ng÷ C.
- N¨m 1988 chuÈn ANSI C chÝnh thøc ®îc ban hµnh. ChuÈn nµy bao gåm c¸c m« t¶ vÒ ng«n ng÷ theo Brian W.Kernighan vµ Dennis M.Ritchie vµ quy ®Þnh c¸c th viÖn chuÈn cña ng«n ng÷ C, nhê ®ã t¨ng tÝnh kh¶ chuyÓn cña ch¬ng tr×nh viÕt b»ng C.
- Trong thÕ giíi m¸y vi tÝnh cã c¸c hÖ ch¬ng tr×nh dÞch C næi tiÕng nh: Turbo C, Borland C cña Borland Inc; MSC, VC cña Microsoft Corp; Lattice C cña Lattice.
I. 2. C¸c tÝnh chÊt ®Æc trng cña ng«n ng÷
C lµ mét ng«n ng÷ lËp tr×nh v¹n n¨ng ®îc dïng ®Ó viÕt c¸c hÖ ®iÒu hµnh nh UNIX còng nh c¸c ch¬ng tr×nh øng dông nh qu¶n lý v¨n b¶n, c¬ së d÷ liÖu.
C lµ mét ng«n ng÷ cã møc ®é thÝch nghi cao, gän vµ kh«ng nhÊt thiÕt ph¶i cÇn tíi hîp ng÷.
C ®éc lËp víi bÊt kú kiÕn tróc m¸y ®Æc thï nµo vµ víi mét chót thËn träng vÉn dÔ dµng viÕt ®îc c¸c ch¬ng tr×nh “kh¶ chuyÓn” (portability) tøc lµ nh÷ng ch¬ng tr×nh cã thÓ ch¹y mµ kh«ng cÇn ph¶i thay ®æi g× khi cã sù thay ®æi vÒ phÇn cøng.
C ®îc sö dông réng r·i trong c¸c lÜnh vùc chuyªn nghiÖp v× ®¸p øng ®îc c¸c yªu cÇu: hiÖu qu¶ cao trong so¹n th¶o ch¬ng tr×nh vµ dÞch ra m· m¸y; tiÕp cËn trùc tiÕp víi c¸c thiÕt bÞ phÇn cøng.
C kh«ng ®a ra c¸c phÐp to¸n xö lý trùc tiÕp c¸c ®èi tîng hîp thµnh nh lµ ®èi tîng toµn vÑn; kh«ng x¸c ®Þnh bÊt kú mét ph¬ng tiÖn cÊp ph¸t bé nhí nµo kh¸c ngoµi cÊp ph¸t tÜnh, cÊp ph¸t ®éng theo nguyªn t¾c xÕp chång cho c¸c biÕn côc bé cña hµm; kh«ng cung cÊp c¬ chÕ I/O, kh«ng cã ph¬ng ph¸p truy nhËp tÖp. TÊt c¶ c¸c c¬ chÕ nµy ®îc thùc hiÖn b»ng nh÷ng lêi gäi hµm trong th viÖn.
C ®a ra c¸c kÕt cÊu ®iÒu khiÓn c¬ b¶n cÇn cho c¸c ch¬ng tr×nh cã cÊu tróc nh: nhãm tuÇn tù c¸c c©u lÖnh, chän quyÕt ®Þnh (if); chu tr×nh víi phÐp kiÓm tra kÕt thóc ë ®Çu (for, while), hoÆc ë cuèi (do...while); vµ viÖc lùa chän mét trong c¸c trêng hîp cã thÓ (switch).
C cung cÊp con trá vµ kh¶ n¨ng ®Þnh ®Þa chØ sè häc. C¸c ®èi cña hµm ®îc truyÒn b»ng c¸ch sao chÐp gi¸ trÞ ®èi vµ hµm ®îc gäi kh«ng thÓ thay ®æi ®îc gi¸ trÞ cña ®èi hiÖn t¹i.
C cho phÐp hµm ®îc gäi ®Ö quy vµ c¸c biÕn côc bé cña hµm sÏ “tù ®éng” sinh ra hoÆc t¹o míi víi mçi lÇn gäi míi. C¸c ®Þnh nghÜa hµm kh«ng
®îc lång nhau nhng c¸c biÕn cã thÓ ®îc khai b¸o theo kiÓu cÊu tróc khèi. C¸c hµm cã thÓ dÞch t¸ch biÖt. C¸c biÕn cã thÓ trong hoÆc ngoµi hµm. Hµm chØ
biÕt ®îc c¸c biÕn ngoµi trong cïng mét tÖp gèc, hoÆc biÕn tæng thÓ extern. C¸c biÕn tù ®éng cã thÓ ®Æt trong c¸c thanh ghi ®Ó t¨ng hiÖu qu¶, nhng viÖc khai b¸o thanh ghi chØ lµ mét híng dÉn cho ch¬ng tr×nh dÞch vµ kh«ng liªn quan g× ®Õn c¸c thanh ghi ®Æc biÖt cña m¸y.
C kh«ng ph¶i lµ mét ng«n ng÷ cã kiÓu m¹nh mÏ theo nghÜa cña PASCAL hoÆc ALGOL/68. Nã t¬ng ®èi tho¶i m¸i trong chuyÓn ®æi d÷ liÖu nhng kh«ng tù ®éng chuyÓn c¸c kiÓu d÷ liÖu mét c¸ch phãng tóng nh cña PL/I. C¸c ch¬ng tr×nh dÞch hiÖn cã ®Òu kh«ng ®a ra c¬ chÕ kiÓm tra chØ sè m¶ng, kiÓu ®èi sè…
MÆc dï vËy, C vÉn cßn tån t¹i mét sè nhîc ®iÓm nh mét sè phÐp to¸n cã thø tù thùc hiÖn cha ®óng; mét sè phÇn có ph¸p cã thÓ lµm tèt h¬n; hiÖn cã nhiÒu phiªn b¶n cña ng«n ng÷, chØ kh¸c nhau ë mét vµi chi tiÕt.
Tãm l¹i, C vÉn tá ra lµ mét ng«n ng÷ cùc kú hiÖu qu¶ vµ ®Çy søc diÔn c¶m ®èi víi nhiÒu lÜnh vùc øng dông lËp tr×nh. H¬n n÷a, ta biÕt r»ng hÖ mËt chuÈn hay ch÷ ký sè lu«n cÇn mét bé sè rÊt lín tøc lµ kÝch cì cña kh«ng gian kho¸ rÊt lín kho¶ng trªn 300 sè thËp ph©n. Do ®ã, ng«n ng÷ C ®ñ m¹nh ®Ó cã thÓ ®¸p øng ®îc ®iÒu ®ã.
Ch¬ng II
CH÷ Ký Sè
II.1. Giíi thiÖu chung vÒ ch÷ ký sè
Nh chóng ta ®· biÕt, ch÷ ký viÕt tay “thêng lÖ” g¾n víi tµi liÖu ®îc dïng ®Ó chØ ra ngêi ®· ký nã. Ch÷ ký ®îc sö dông hµng ngµy nh ®Ó viÕt th, ký hîp ®ång...
ë ®©y, chóng ta t×m hiÓu vÒ ch÷ ký hoµn toµn kh¸c ®ã lµ ch÷ ký sè. Nã lµ ph¬ng ph¸p ký th«ng b¸o ®îc lu díi d¹ng ®iÖn tö vµ th«ng b¸o ®îc ký cã thÓ truyÒn trªn m¹ng m¸y tÝnh. Ch÷ ký tay vµ ch÷ ký sè dï cïng cã nhiÖm vô chung lµ ký nhng cã sù kh¸c nhau c¬ b¶n gi÷a chóng.
Thø nhÊt, vÒ viÖc ký tµi liÖu: Víi ch÷ ký tay th× ch÷ ký lµ bé phËn vËt lý cña tµi liÖu ®îc ký. Tuy nhiªn, ch÷ ký sè kh«ng g¾n mét c¸ch vËt lý víi th«ng b¸o ®îc ký mµ ®îc g¾n víi th«ng b¸o theo logic, do ®ã thuËt to¸n ®îc dïng ph¶i “trãi” ch÷ ký víi th«ng b¸o theo mét c¸ch nµo ®ã.
Thø hai, vÒ viÖc kiÓm tra: ch÷ ký tay ®îc kiÓm tra b»ng c¸ch so s¸nh nã víi nh÷ng c¸i kh¸c, nh÷ng ch÷ ký ®· x¸c thùc. VÝ dô, mét ngêi ký trªn mét tÊm sÐc mua hµng, ngêi b¸n hµng ph¶i so s¸nh ch÷ ký trªn tÊm sÐc víi ch÷ ký n»m ë sau thÎ tÝn dông ®Ó kiÓm tra. TÊt nhiªn, ph¬ng ph¸p nµy kh«ng an toµn l¾m v× nã t¬ng ®èi dÔ ®¸nh lõa bëi ch÷ ký cña ngêi kh¸c. Kh¸c víi ch÷ ký tay, ch÷ ký sè cã thÓ ®îc kiÓm tra b»ng c¸ch dïng thuËt to¸n kiÓm tra c«ng khai ®· biÕt. V× vËy, bÊt kú ngêi nµo ®ã ®Òu cã thÓ kiÓm tra ch÷ ký sè. Vµ viÖc sö dông lîc ®å ký an toµn sÏ ng¨n chÆn kh¶ n¨ng ®¸nh lõa.
§iÒu kh¸c nhau c¬ b¶n gi÷a ch÷ ký tay vµ ch÷ ký sè lµ “b¶n sao” th«ng b¸o sè ®îc ký lµ ®ång nhÊt víi b¶n gèc. Trong khi ®ã, b¶n sao chÐp tµi liÖu giÊy ®· ký thêng lµ kh¸c víi b¶n gèc. §iÒu nµy nghÜa lµ ph¶i cÈn thËn ®Ó ng¨n chÆn mét th«ng b¸o ®· ký sè bÞ sö dông l¹i. VÝ dô, nÕu Bob ký th«ng b¸o sè
cho quyÒn Alice rót $100 tõ tµi kho¶n ë nhµ b¨ng cña m×nh, anh ta chØ muèn Alice lµm viÖc ®ã mét lÇn. Do ®ã, th«ng b¸o tù nã ph¶i chøa th«ng tin ®Ó ng¨n chÆn Alice lµm l¹i viÖc ®ã nhiÒu lÇn.
Lîc ®å ch÷ ký sè gåm 2 thµnh phÇn: mét thuËt to¸n ký vµ mét thuËt to¸n kiÓm tra. Bob cã thÓ ký th«ng b¸o x nhê thuËt to¸n ký (bÝ mËt) Sig. Ch÷ ký thu ®îc Sig(x) sau ®ã cã thÓ ®îc kiÓm tra nhê thuËt to¸n kiÓm tra c«ng khai Ver. Khi cho cÆp (x,y) thuËt to¸n kiÓm tra sÏ tr¶ lêi “®óng” hoÆc “sai” phô thuéc vµo viÖc ch÷ ký cã ®Ých thùc kh«ng?
II. 2. §Þnh nghÜa lîc ®å ch÷ ký sè
Lîc ®å ch÷ ký sè lµ mét bé n¨m phÇn tö (P, A, K, S, V) tho¶ m·n c¸c ®iÒu kiÖn sau:
P _ lµ mét tËp h÷u h¹n c¸c th«ng b¸o.
A _tËp h÷u h¹n c¸c ch÷ ký cã thÓ.
K _tËp h÷u h¹n c¸c kho¸, kh«ng gian kho¸.
Víi mçi k ( K, ( sigk ( S vµ verk (V
Mçi sigk: P( A, verk: P * A( (true, false( lµ nh÷ng hµm sao cho mçi bøc ®iÖn x ( P vµ mçi ch÷ ký y ( A tho¶ m·n:
Ver(x,y) =
*Yªu cÇu:
- Víi mçi kho¸ k ( K, c¸c hµm sigk vµ verk lµ c¸c hµm thêi gian ®a thøc.
- Verk lµ hµm c«ng khai; sigk lµ hµm bÝ mËt ®Ó tr¸nh trêng hîp Orcar cã thÓ gi¶ m¹o ch÷ ký cña Bob ®Ó ký th«ng b¸o x. Víi mçi x chØ duy nhÊt Bob tÝnh ®îc ch÷ ký y sao cho:
Ver(x, y) = True.
Lîc ®å ch÷ ký ph¶i an toµn. Bëi v× Orcar cã thÓ kiÓm tra tÊt c¶ c¸c kh¶ n¨ng cña ch÷ ký y nhê thuËt to¸n kiÓm tra c«ng khai Ver cho tíi khi ®¹t ®îc yªu cÇu tøc lµ t×m ®îc ch÷ ký ®óng. Do ®ã, nÕu cã ®ñ thêi gian cÇn thiÕt Orcar cã
thÓ gi¶ m¹o ®îc ch÷ ký cña Bob. V× vËy môc ®Ých cña chóng ta lµ t×m c¸c lîc ®å ch÷ ký sao cho Orcar kh«ng ®ñ thêi gian thùc tÕ ®Ó thö nh thÕ.
II. 3. Mét vµi lîc ®å ch÷ ký sè
II.3. 1. Lîc ®å ch÷ ký sè RSA
Lîc ®å ch÷ ký RSA ®îc ®Þnh nghÜa nh sau:
* T¹o kho¸:
Cho n = p. q; víi p, q lµ c¸c sè nguyªn tè lín kh¸c nhau, ((n) = (p - 1)(q - 1). Cho P = A = Zn vµ ®Þnh nghÜa:
K = {(n, p, q, a, b): n = p.q; p, q lµ c¸c sè nguyªn tè; ab ( 1mod ((n)}
C¸c gi¸ trÞ n vµ b lµ c«ng khai; c¸c gi¸ trÞ p, q, a lµ bÝ mËt.
* T¹o ch÷ ký:
Víi K = (n, p, q, a, b) x¸c ®Þnh:
SigK(x) = xa mod n
* KiÓm tra ch÷ ký:
VerK(x, y) = true ( x ( yb mod n; x, y (Zn.
Gi¶ sö Bob muèn ký th«ng b¸o x, anh ta tÝnh ch÷ ký y b»ng c¸ch:
y = sigK(x) = xamodn (aB lµ tham sè bÝ mËt cña Bob).
Bob göi cÆp (x, y) cho Alice. NhËn ®îc th«ng b¸o x vµ ch÷ ký sè y, Alice tiÕn hµnh kiÓm tra ®¼ng thøc:
x = yb modn (bB lµ khãa c«ng khai cña Bob)
NÕu ®óng, Alice c«ng nhËn y lµ ch÷ ký trªn x cña Bob. Ngîc l¹i, Alice sÏ coi x kh«ng ph¶i cña Bob göi cho m×nh (ch÷ ký kh«ng tin cËy).
Ngêi ta cã thÓ gi¶ m¹o ch÷ ký cña Bob nh sau: chän y, sau ®ã tÝnh x = verK(y), khi ®ã y = sigK(x). Mét c¸ch ®Ó kh¾c phôc khã kh¨n nµy lµ viÖc yªu cÇu x ph¶i cã nghÜa. Do ®ã ch÷ ký gi¶ m¹o nãi trªn sÏ thµnh c«ng víi x¸c suÊt rÊt nhá.
Ta cã thÓ kÕt hîp ch÷ ký víi m· ho¸ sÏ lµm cho ®é an toµn cña ch÷ ký t¨ng thªm.
Gi¶ sö r»ng, Alice sÏ tÝnh ch÷ ký cña c« ta lµ y = sigAlice(x), vµ sau ®ã m· ho¸ c¶ x vµ y b»ng c¸ch sö dông mËt m· c«ng khai eBob cña Bob, khi ®ã c« ta nhËn ®îc z = eBob(x, y). B¶n m· z sÏ ®îc truyÒn tíi Bob. Khi nhËn ®îc z, viÖc tríc tiªn lµ anh ta gi¶i m· b»ng hµm dBob ®Ó nhËn ®îc (x, y). Sau ®ã anh ta sö dông hµm kiÓm tra c«ng khai cña Alice ®Ó kiÓm tra xem liÖu verAlice(x, y) = true?
NÕu Alice m· ho¸ x tríc råi sau ®ã míi ký lªn b¶n m· ®· ®îc m· ho¸ th× sao? Khi ®ã c« ta tÝnh:
y = sigAlice(eBob(x))
Alice sÏ truyÒn cÆp (z, y) cho Bob. Bob sÏ gi¶i m· z, nhËn ®îc x vµ kiÓm tra ch÷ ký y trªn b»ng c¸ch sö dông verAlice. Mét vÊn ®Ò tiÒm Èn trong biÖn ph¸p nµy lµ nÕu Orcar cã ®îc cÆp (z, y) kiÓu nµy, anh ta cã thÓ thay thÕ ch÷ ký y cña Alice b»ng ch÷ ký cña anh ta: y’ = sigOrcar(eBob(x))
Chó ý r»ng Orcar cã thÓ ký b¶n m· ebob(x) ngay c¶ khi anh ta kh«ng biÕt b¶n râ x.
Khi ®ã, nÕu Orcar truyÒn (z, y’ ) tíi Bob, ch÷ ký cña Orcar sÏ ®îc kiÓm thö v× Bob sö dông verOrcar, vµ Bob cã thÓ suy ra r»ng b¶n râ x xuÊt ph¸t tõ Orcar. §iÒu nµy còng lµm cho ngêi sö dông hiÓu r»ng nªn ký tríc råi sau ®ã míi tiÕn hµnh m· ho¸.
VÝ dô: Gi¶ sö Bob dïng lîc ®å ch÷ ký sè RSA víi n = 247 (p = 13, q = 19); ((n) = 12.18 = 216. Kho¸ c«ng khai cña Bob lµ b = 7
( a = 7-1mod216 = 31.
Bob c«ng khai (n, b) = (247, 7).
Bob ký lªn th«ng b¸o x = 100 víi ch÷ ký:
y = xa modn = 10031 mod247 = 74.
Bob göi cÆp (x, y) = (100, 74) cho Alice. Alice kiÓm tra b»ng c¸ch sö dông kho¸ c«ng khai cña Bob nh sau:
= yb modn = 747 mod247 = 100 = x.
( Alice chÊp nhËn y = 74 lµ ch÷ ký tin cËy.
II.3.2. Lîc ®å ch÷ ký ElGamal
Lîc ®å ch÷ ký sè ElGamal ®îc giíi thiÖu n¨m 1985 vµ ®îc ViÖn tiªu chuÈn vµ C«ng nghÖ quèc gia Mü söa ®æi thµnh chuÈn ch÷ ký sè. Lîc ®å ElGamal kh«ng tÊt ®Þnh còng gièng nh hÖ thèng m· ho¸ c«ng khai ElGamal. §iÒu nµy cã nghÜa lµ cã nhiÒu ch÷ ký hîp lÖ cho mét th«ng b¸o bÊt kú. ThuËt to¸n kiÓm tra ph¶i cã kh¶ n¨ng chÊp nhËn bÊt kú ch÷ ký hîp lÖ nµo khi x¸c minh.
Lîc ®å ch÷ ký sè ElGamal ®îc ®Þnh nghÜa nh sau:
* T¹o kho¸:
Cho p lµ sè nguyªn tè sao cho bµi to¸n l«garit rêi r¹c trong Zp lµ khã vµ gi¶ sö ( (Z lµ phÇn tö nguyªn thñy.
Cho P = Z, A = Z( Zp-1 vµ ®Þnh nghÜa:
K = {(p, a, (, (): ( = (a modp }.
C¸c gi¸ trÞ p, (, ( lµ c«ng khai, a lµ bÝ mËt.
* T¹o ch÷ ký:
Víi K = (p, a, (, () vµ víi sè ngÉu nhiªn k (Z, ®Þnh nghÜa:sigk((, (), trong ®ã:
( = (k modp vµ ( = (x - a() k -1mod(p - 1).
* KiÓm tra ch÷ ký sè:
Víi x, ( ( Z vµ ( (Zp-1, ta ®Þnh nghÜa:
Ver (x, (, () = True ( ((. (( ( (x modp.
Chøng minh:
NÕu ch÷ ký ®îc thiÕt lËp ®óng th× kiÓm tra sÏ thµnh c«ng v×:
((( (( ( (a.( (r.( modp
( (x modp ( v× a( + r( ( x mod(p - 1)).
Bob tÝnh ch÷ ký b»ng c¸ch dïng c¶ gi¸ trÞ bÝ mËt a ( lµ mét phÇn cña kho¸) lÉn sè ngÉu nhiªn bÝ mËt k (dïng ®Ó ký trªn x). ViÖc kiÓm ta cã thÓ thùc
hiÖn duy nhÊt b»ng th«ng tin c«ng khai.
VÝ dô: Gi¶ sö p = 467, ( = 2, a = 127
Khi ®ã: ( = (a modp = 2127mod467 = 132
Gi¶ sö Bob cã th«ng b¸o x = 100 vµ anh ta chän ngÉu nhiªn k = 213 v× (213, 466) =1 vµ 213-1 mod466 = 431
Bob ký trªn x nh sau:
( = (k modp = 2213mod467 = 29
vµ ( = (x - a()k-1 mod(p -1) = (100 – 127. 29).431 mod466 = 51.
Ch÷ ký cña Bob trªn x = 100 lµ (29, 51).
BÊt kú ngêi nµo ®ã còng cã thÓ kiÓm tra ch÷ ký nµy b»ng c¸ch:
13229 . 2951 ( 189 mod 467
2100 ( 189 mod 467
Do ®ã ch÷ ký lµ tin cËy.
B©y giê, ta xÐt ®é an toµn cña lîc ®å ch÷ ký ElGamal.
Gi¶ sö Orcar thö gi¶ m¹o ch÷ ký trªn th«ng b¸o x cho tríc mµ kh«ng biÕt a. NÕu Orcar chän gi¸ trÞ ( vµ thö t×m ( t¬ng øng, anh ta ph¶i tÝnh logarit rêi r¹c cña log((x (-(. MÆt kh¸c, nÕu anh ta chän ( tríc vµ sau ®ã thö t×m ( th× anh ta ph¶i gi¶i ph¬ng tr×nh (( (( ( (x modp, trong ®ã ( lµ Èn. Bµi to¸n nµy cha cã lêi gi¶i, tuy nhiªn dêng nh nã liªn quan ®Õn bµi to¸n ®· nghiªn cøu. VÉn cßn cã kh¶ n¨ng lµ t×m ( vµ ( ®ång thêi ®Ó ((, () lµ ch÷ ký. HiÖn thêi kh«ng ai t×m ®îc c¸ch gi¶i song còng kh«ng ai kh¼ng ®Þnh ®îc lµ nã kh«ng cã lêi gi¶i.
NÕu Orcar chän ( vµ (, sau ®ã thö gi¶i ®Ó t×m x, anh ta sÏ ph¶i tÝnh bµi to¸n logarit rêi r¹c, tøc ph¶i tÝnh log( (( ((. V× thÕ Orcar kh«ng thÓ ký mét th«ng ®iÖp ngÉu nhiªn b»ng c¸ch nµy. Tuy nhiªn cã mét c¸ch ®Ó Orcar ký lªn th«ng ®iÖp ngÉu nhiªn b»ng viÖc chän (, (, x ®ång thêi.
Gi¶ thiÕt i vµ j lµ c¸c sè nguyªn 0 ( i ( p – 2; 0 ( j ( p – 2 vµ (j, p - 1) =1.
Khi ®ã thùc hiÖn c¸c phÐp tÝnh:
( = (i (j modp
( = -(.j-1mod(p - 1)
x = - (i.j-1mod(p - 1) = i.( mod(p - 1).
Trong ®ã j-1 ®îc tÝnh theo module (p - 1). Ta thÊy r»ng ((, () lµ ch÷ ký hîp lÖ cña x. §iÒu nµy ®îc chøng minh qua viÖc kiÓm tra:
(( (( ( (-(((i (j )-(j modp
( (( (-i.j ( (-(
( (-(.i.j modp
( (x modp.
VÝ dô: p = 467; ( = 2; ( = 132.
Gi¶ sö Orcar chän i = 99; j = 179, khi ®ã j-1 mod(p -1) = 151. Anh ta tÝnh:
( = 299 132179mod467 = 117
( = - 177. 151 mod466 = 41
x = 99. 41 mod 466 = 331
Vµ (117, 41 ) lµ ch÷ ký trªn x = 331.
KiÓm tra:
132117 11741 ( 303mod 467
vµ 2331 ( 303 mod467
Do ®ã ch÷ ký lµ hîp lÖ.
Orcar cã thÓ gi¶ m¹o ch÷ ký theo kiÓu kh¸c lµ b¾t ®Çu tõ th«ng b¸o x ®· ®îc Bob ký. Gi¶ sö ((, () lµ ch÷ ký hîp lÖ trªn x. Khi ®ã Orcar cã kh¶ n¨ng ký lªn nhiÒu th«ng b¸o kh¸c nhau. Gi¶ sö i, j, h lµ c¸c sè nguyªn; 0 ( h; i, j ( p – 2 vµ (h( - j(, p - 1) = 1. Thùc hiÖn c¸c phÐp tÝnh:
( = (h (i (j modp
( = (((h( - j()-1mod(p - 1)
x’ = ((hx + i()(h( - j()-1 mod(p - 1)
Trong ®ã (h( - j()-1®îc tÝnh theo module (p - 1).
KiÓm tra: (( (( ( ( modp ( ((, () lµ ch÷ ký hîp lÖ cña x’.
C¶ 2 ph¬ng ph¸p trªn ®Òu t¹o c¸c ch÷ ký gi¶ m¹o hîp lÖ song kh«ng xuÊt hiÖn kh¶ n¨ng ®èi ph¬ng gi¶ m¹o ch÷ ký trªn th«ng ®iÖp cã lùa chän cña chÝnh hä mµ kh«ng ph¶i gi¶i bµi to¸n logarit rêi r¹c. V× thÕ kh«ng cã g× nguy hiÓm vÒ ®é an toµn cña lîc ®å ElGamal.
Ch¬ng III
Hµm Hash
III.1. Giíi thiÖu
§èi víi x¸c thùc vµ ch÷ ký sè ta thÊy r»ng c¸c thuËt to¸n thêng nhËn ®Çu vµo lµ mét dßng bÝt cã ®é dµi rÊt ng¾n( 64,128,160 bit) vµ tèc ®é thùc hiÖn chËm. MÆt kh¸c, c¸c th«ng b¸o cÇn ký thêng cã ®é dµi kh¸c nhau vµ trong nhiÒu trêng hîp chóng cã ®é dµi lín cì vµi Kil«byte hoÆc vµi Megabyte. Do vËy, muèn ký mét ch÷ ký ng¾n trªn mét th«ng b¸o dµi ta cÇn ph¶i c¾t th«ng b¸o ra nhiÒu ®o¹n cã ®é dµi h÷u h¹n vµ cè ®Þnh råi tiÕn hµnh ký ®éc lËp tõng ®o¹n ®ã vµ göi tõng ®o¹n ®ã ®i. Khi ®ã l¹i xuÊt hiÖn nhiÒu vÊn ®Ò nh:
- Tèc ®é thùc hiÖn sÏ rÊt chËm v× ph¶i ký trªn qu¸ nhiÒu ®o¹n.
- DÔ x¶y ra trêng hîp kh«ng s¾p xÕp ®îc th«ng b¸o theo ®óng trËt tù ban ®Çu.
- Cã thÓ bÞ mÊt c¸c ®o¹n riªng biÖt trong qu¸ tr×nh truyÒn tin.
§Ó gi¶i quyÕt nh÷ng vÊn ®Ò nµy ta cã thÓ dïng hµm Hash. Hµm Hash chÊp nhËn mét th«ng b¸o cã ®é dµi bÊt kú lµm ®Çu vµo, hµm Hash sÏ biÕn ®æi th«ng b¸o nµy thµnh mét th«ng b¸o rót gän, sau ®ã ta sÏ dïng lîc