Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 106 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
106
Dung lượng
1,9 MB
Nội dung
Đ IH CQU CGIAHÀN I TRƯ NG Đ I H C CÔNG NGH NGUY N VINH SƠN B O M T THÔNG TIN LU NVĂNTH Hà N i - 2009 CSĨ M CL C M Đ U CHƯƠNG B 1.1 Khái nim 1.2 Đánh giá hm t 1.3 Cơ s toán hc CHƯƠNG H 2.1 H m t DES 2.1.1 Sơ ñ 2.1.2 Ho t ñ ng 2.1.3 Ch 2.1.4 2DES 3DES 2.2 H m t RC 2.2.1 RC5 2.2.2 RC6 2.3 H m t Gost 2814789 2.3.1 Ch 2.3.2 Ch 2.3.3 Ch 2.3.4 Th 2.4 H m t IDEA 2.5 H m t AES 49 2.5.1 Bi u di n kh i tin 50 2.5.2 Các phép toán 52 2.5.3 Gi i thu t 56 2.6 H m t khóa cơng khai RSA 70 CHƯƠNG TRI N KHAI 74 3.1 Ph n m m m t mã 74 3.2 B o v m t kh u 77 3.2.1 Nguy ch n b t 77 3.2.2 Gi i pháp bo v 79 K T LU N 83 KÝ HI U AES Advanced Encryption Standard DES Data Encryption Standard IDEA International Data Encryption Algorithm RC Rivest’s Cipher RSA Rivest, Shamir, Adleman ĐU M B o m t thơng tin nhu c ph i tìm cách ct gi u nh ng thông tin c v n th c ăn, nư c u ngu tri n cao, nhu c n ñ i T hi lên mt chi c “g này, ng i khác phi bi t cu n l i nh có đư ng kính b ng chi c “g 20, m ts thi t b máy Enigma ca ngư i Đ c K bư c sang m t trang s đó, h th ng m t mã máy tính ho t ñ ng v i nh ng phép tính ph chu i nh phân nên hi u qu B o m t thông tin th ng g n v chuy n đ i thơng tin t ngư c l i Vi c m t mã giúp ñ m b o tính bí m t c ch ng h n thơng tin tình báo, quân s m i Nhưng ñang bư c t gi n ti n sinh ho t hàng ngày, l m c đích ñó Gi nhân/ t ch cho vi c phát trin nhi u bomt ng d ng r d ch ngân hàng, th ương m i n t Ngồi ra, nh ng ngư i khơng có nhu c s d ng công ngh h th ng v Như v y, ph i quan tâm ñ n b o m t? Câu tr không d h n u ta phân tách lĩnh v c – Toán h c, Công ngh Chúng ta bi t r ng, b o m t r Thông tin – Truy m nh m , nhu c u b o m t mts t v ng ch c h u thu t p tính tốn,đ i s ngư i ta tách bit ñây ngành khoa h Và dù quan ñi m nào, vi c nghiên c u b o m t v n t nhi u ngư i làm ICT, c ũng nhi u nhà Toán h c B ta v n thư ng b t g p nh T i Vi t Nam, bi t có m H c vi n K Đih c ñào t ti ng Vi t r t khan hi m Trên th c t v i mong mu b o m t có ch thơng, hay b t c xúc tích v m t mã, nh ng h m t ph bi n nh t hi n nay, m t ph n m m mã hóa, gi i mã h c viên thit k theo Chu n m t mã Qu c gia Hoa Kỳ AES Ngồi ra, h c viên xinđ xu t m t gi i pháp mi giúp b o v m t kh u mơ hình server/ client mà khơng s d ng giao th c b o m t Hà N i, 2009 Nguy n Vinh Sơn CHƯƠNG B O M T THÔNG TIN 1.1 Khái nim Trư c tìm hi u ni dung b o m t thông tin c n hi u m t s - Mã hóa : vi th hi - Gi i mã : vi có th - Thám mã: vi có th - Khóa : đ i lư ng thơng tin s - Mã kh - Mã dòng : ph ương th - H m dàng t H m t khóa cơng khai (h mtbtñixi mã ñư c gi ng): h m t có khóa mã hóa bí m t (r t khó đ tìm khóa gi i đư c cơng khai, cịn khóa gi mã t khóa mã hóa) n t ): thơng tin kèm d li u ñi n t nh m m c i ch c a d li u Ch ký s (ch ký ñích xácñ nh ngư - Ch ng th c s s ñ - H t s d - Hàm hash : hàm tính giá tr g n m t khóa cơng khai v ng khóa cơng khai ng, lưu tr Đánh giá hm t 1.2 Các h th ng m t mã (h nhìn chung, chúng có th c a thut toán thám chúng Ngưi ta chia đ ph c t p thu t tốn thành: - Đ ph c t p n tính - Đ ph c t p lũy th a - Đ ph c t p t a hàm m ũ - Đ ph c t p hàm m ũ Thu t tốn có đ ph c t p khơng v t qđ đư c) Thu t tốn có đ ph c t p khơng nh “khó” (khơng gi có th gi i đư c, ho c khơng gi i đư H mtt t thu - H m t an toàn t ñ i: nh ng hi u bi t v b n mã khơng thu h p đư c ñ b t ñ nh c a b n rõ ñ i v i ngư i thám mã, nói cách khác, hm t khơng th thámđư c lý thuy t H m t an toàn th c s : m i phương pháp thám mãñã bi t ñ u c n đ n th i gian tính tốn, hoc l c tính tốn vơ l n - H m t an toàn ch ng minh: vi H m t an toàn th thám, bi l l tương đương có th c a Pháp năm 1883, Auguste Kerckhoffs (1835 – 1903) ñ m th - H m t chưa t ng thámñư c th c t - Ho t ñ ng c a h m t, thi t b m t mã khơng c n gi bí m t - Khóa thành ph n bí m t nh t, t o m i, truy n ñi, ghi nh - H m t tương thích v i cơng ngh ñi n tín - Thi t b m t mã g - n nh , m t ngư i có th d dàng s d ng Cách s d ng d dàng Đ n ngo i tr quy t c th ñã tr nên lc h u, v n ph i hư ng ñ n quy t c l i 1.3 Cơ s c b o m t thơng tin liên quan đ n lý thuy t s Lĩnh v ñ ph v c t p tính tốn,đ i s i khn kh khơng gi i thi u chi ti t nh đ nh lý, gi Ký hi u gcd(a, b), lcm(a, b) nguyên a, b; x , x s ngun ln nh t khơng l khơng nh Nhóm (G, *) c u trúc ñ i s - Phép * có tính k t h p: a * (b * c) = (a * b) * c ( a, b, c G) - T n t i ph n t trung hòa G G: a * G = G * a = a ( a G) - T n t i ph n t ñ i l p xG G: a * x G = x G * a = G (v i m i a G) Nhóm (G, *) g i nhóm giao hốn n u phép * cịn có tính giao hoán: a * b = b * a Vành (R, +, ) c u trúc ñ i s g m t p R phép toán +, R, th a mãn: - (R, +) nhóm giáo hốn - Phép có tính k - T n t i ph n t - Phép có tính phân ph i v i phép +: Vành (R, +, ) g i vành giao hoán n u phép cịn có tính giao hốn: a b = b a Ph n t trung hòa qR c a vành (R, +, ) g i ph n t trung hòa phép Ph n t trung hịa c a nhóm giao hốn (R, +) g i ph n t trung hòa phép +, ký hi u qr Trong vành giao hoán, n u m i ph n t khácqr ñ u có ph n t xR Ỵ đ i l p phép, t “tr ng” R th a mãn a xR = xR a = qR, ta nói vành m Trư ng h u h n tr ng có s T p ña th c có h ph n t h u h n s thu c vành (tr ng) R, phép tốn cng, nhân đa th c th c hi n b i phép c ng, nhân h s R, t o nên vành (trư ng) ña th c R[x] Đ nh lý Fermat : [5] Cho s nguyên t p, n u gcd(a, p) = a (p1) ≡ (mod p) Gi i thu t Euclide m r ng: [5] Input: s nguyên không âm a, b (a ³ b) Output: d = gcd(a, b) s nguyên x, y tha mãn: ax + by = d N u b = d a , x , y Tr v {d, x, y} Đ t x2 , x1 , y2 , y1 Khi b > 0, tính: q r x y a b x2 x y y1 Chuy n d a , x x2 , y y2 Tr v {d, x, y} Trong Zp[x] (p nguyên t): Input: g(x), h(x) Zp[x] Output: d(x) = gcd(g(x), h(x)) s(x), t(x) Zp[x] th a mãn: s(x).g(x) + t(x).h(x) = d(x) 71 W Diffie M Hellman trình bày thu hút s quan tâm l n c a hc gi M t năm sau, R.L Rivest, A Shamir, L Adleman công b h m t RSA d a trênđ khó c a tốn phân tích s nguyên thành th a s nguyên t Gi s A c n g i b n tin ñ (n, e) n B m t cách bí mt Đ u tiên, B sinh khóa cơng khai ng b ng bư c: khóa riêng d tương - Ch n ng u nhiên s nguyên t l n p q khác - Tính n = pq = (p – 1)(q – 1) - Ch n ng u nhiên s nguyêne th a mãn < e < gcd(e, ) = - Tìm s nguyênd th a mãn < d < ed ≡ (mod ) (s d ng thu t toán Euclide m r ng) Chú ý r ng, = lcm(p – 1, q – 1) có th đư c s d ng thay cho = (p – 1)(q – 1) đ khóa riêng d nh hơn, giúp gi i mã nhanh h ơn Ngoài ra, thành ph n p, q, , ph i ñư c h y th c hi n xong q trình sinh khóa, b i l chúng s phép tính khóa riêng d bit e Sau nh n đư c khóa cơng khai (n, e), A bi thu c ño n [0, n – 1] theo m e tính c = m mod n s ñư c g d gi i mã m = c mod n đ Ví d : B ch n s = (p – 1)(q – 1) = 6007800, ch r ng tìm d = 422191 th (n, e) = (6012707, 3674911), khóa riêng d = 422191 A th c hi n mã hóa b đư c bi u di n b i m = 5234673: [5] Nh n đư c b n mã c, B tính m b ng khóa riêng d: d Cơng th c gi i mã m = c mod n ñư c c khóa, ed gcd(m, p) = 1, theo đ nh lý Fermat: ≡ (mod ) nên tn t i m t s mp1 Bi n ñ i v , nâng l ũy th a k(q – 1) r m1 k(p1)(q1) N u gcd(m, p) = p, hay m b trư ng h p, ta đ u có: med Hồn tồn t ương t : med L i có gcd(p, q) = 1, nên suy ra: med m m ñây, ph ương th c chuy n ñ i b n tin v s nguyên m ngư c l i ph i đư c gi bí m t ng u nhiên hóa đ tránh vic thám bng t ñi n Giá tr m c n th a mãn cácñi u ki n: 73 - m ≠ m ≠ (vì m = c = 0, m = c = 1) m ñ l n (vì n u m nh, me n, phép module khơng có tác d ng, m tìm b ng cách khai ăcn b c e c a c) có th tốn hc có Vi c thám mã vi c gi i quy t m t hai v n đ đ khó tương ñương: - Phân tích s - nguyên n tha s nguyên t (tìm p, q th a mãn n = p.q) e Tìm m th a mãn m ≡ c (mod n) Vào n ăm 1999, máy tính kt n i m ng phân tích đư c s n có đ dài 512 bits th a s nguyên t Hi n m t máy tính cá nhân có th phân tích đư c s n dài 256 bits sau vài gi , tương lai, máy tính ưl ng t tính tốn nhanh n a Vì v y, h cịn mang đ n t c ñ m t RSA ñư c khuy n cáo s d ng đ dài khóa t i thi u 2048 bits, c p p, q c n ch n không g n p – 1, q – khơng có th a s ngun t nh , đ h n ch kh phân tích n Bên cnh phương pháp phân tích n, tìm d, hay dị m, RSA ph i đ i m t v i m t vài cách t n cơng khác Ví d m t cách tn cơng mà h m t khóa cơng khai nói chung ph i đ i m t t n cơng m o danh cách tn công này, C ch n b t thông tin A, B g i cho C g i cho A khóa cơng khai c l i tin r ng khóa cơng khai c mã d dàng Sau đó, C l i mã hóa v B đ u khơng bi h m t khóa cơng khai c key Infrastructure – PKI) Ngồi ra, RSA c ũng t pháp ph c t p d b n mã l a ch n ng d ng thư ng g p c a RSA t m t văn b n có ch tính giá tr mũ d mod n c ch ñi n t b n K t qu gi ng s ch ng t v ăn b n khơng b thay đ i sau ký ký ñi n t c a B, A tính giá tr mũ e mo 74 CHƯƠNG TRI N KHAI Trên môi trư ng Borland C++ Builder 6.0, h c viên trin khai thành công ph n m m m t mã theo chu n AES Ngồi ra, h c viên xinđ xu t gi i pháp bo v m t kh u mơ hình máy ch / máy khách (server/ client) không s d ng giao th c b o m t 3.1 Ph n m m m t mã Thu t toán sinh khóa, mã hóa, gi i mã theo h m t AES đư c nói đ n chương trư c Dư i đo n code c a chương trình h c viên trin khai: void _fastcall TfrmMain::cmdInputFileClick(TObject *Sender) { if(dlgOpen->Execute()) {txtInputFile->Text = dlgOpen->FileName;} } void _fastcall TfrmMain::cmdOutputFileClick(TObject *Sender) { if(dlgSave->Execute()) {txtOutputFile->Text = dlgSave->FileName;} } void _fastcall TfrmMain::cmdKeyFileClick(TObject *Sender) { if(dlgOpen->Execute()) {txtKeyFile->Text = dlgOpen->FileName;} } 75 void _fastcall TfrmMain::radNK4Click(TObject *Sender) {NK=4;} void _fastcall TfrmMain::radNK6Click(TObject *Sender) {NK=6;} void _fastcall TfrmMain::radNK8Click(TObject *Sender) {NK=8;} void _fastcall TfrmMain::radEncryptClick(TObject *Sender) {operation=OP_ENCRYPT;} void _fastcall TfrmMain::radDecryptClick(TObject *Sender) {peration=OP_DECRYPT;} void _fastcall TfrmMain::cmdDoClick(TObject *Sender) { TKey Key; TState State; NB=4; BYTE BlockSize = 4*NB; BYTE *buff = new BYTE[BlockSize]; int count; Key.LoadFromTextFile(txtKeyFile->Text.c_str()); Key.Expand(); FILE *fi = fopen(txtInputFile->Text.c_str(), "rb"); FILE *fo = fopen(txtOutputFile->Text.c_str(),"wb"); while(!feof(fi)) { memset(buff,0,BlockSize); count = fread(buff,1,BlockSize,fi); if(count