Ngày nay, các ứng dụng Công nghệ thông tin đã và đang ngày càng phổ biến rộng rãi đã ảnh hưởng rất lớn đến diện mạo của đời sống, kinh tế, xã hội. Mọi công việc hàng ngày của chúng ta đều có thể thực hiện được từ xa với sự hỗ trợ của máy vi tính và mạng internet (từ việc học tập, giao dịch,... đến việc gửi thư). Tất cả thông tin liên quan đến những công việc này đều do máy vi tính quản lý và truyền đi trên hệ thống mạng. Đối với những thông tin bình thường thì không có ai chú ý đến, nhưng đối với những thông tin mang tính chất sống còn đối với một số cá nhân (hay tổ chức) thì vấn đề bảo mật thật sự rất quan trọng. Vấn đề khó khăn đặt ra là làm sao giữ được thông tin bí mật và giữ cho đến đúng được địa chỉ cần đến. Nhiều tổ chức, cá nhân đã tìm kiếm và đưa ra nhiều giải pháp bảo mật, phương pháp mã hóa khóa công khai được xem là phương pháp có tính an toàn khá cao. Như vậy việc đảm bảo an toàn thông tin, tránh mọi nguy cơ bị thay đổi, sao chép hoặc mất mát dữ liệu trong các ứng dụng trên mạng luôn là vấn đề bức xúc, được nhiều người quan tâm. Trong bài viết này, xin trình bày phương pháp mã hóa thông tin đó là sử dụng hàm băm mật mã và tìm hiểu về thuật toán băm SHA2. Bài viết được tổng hợp từ nhiều nguồn bao gồm cả tài liệu tiếng Việt và tiếng Anh, do quá trình dịch và tổng hợp còn nhiều sai xót, kính mong các bạn đóng góp ý kiến để bài viết được hoàn thiện hơn..
HC VIN K THUT MT M KHOA AN TON THễNG TIN BI TP LN MễN MT M NNG CAO CI T THUT TON SHA-2 Can bụ hng dn: Phm Quc Hong Sinh viờn thc hin: - Hong Quang Thy - Nguyn Vit Tin - Phm Quc t - Mai Trng Hong Lp: AT9A H NễI 2016 HC VIN K THUT MT M KHOA AN TON THễNG TIN BI TP LN MễN MT M NNG CAO CI T THUT TON SHA-2 Nhn xột ca can bụ hng dn: im chuyờn cõn: im bao cao: MC LC LI NểI U Ngy nay, cac ng dng Cụng ngh thụng tin ó v ang ngy cng ph bin rụng rói ó nh hng rt ln n din mo ca i sng, kinh t, xó hụi Mi cụng vic hng ngy ca chỳng ta u cú th thc hin c t xa vi s h tr ca may vi tớnh v mng internet (t vic hc tp, giao dch, n vic gi th) Tt c thụng tin liờn quan n nhng cụng vic ny u may vi tớnh qun lý v truyn i trờn h thng mng i vi nhng thụng tin bỡnh thng thỡ khụng cú chỳ ý n, nhng i vi nhng thụng tin mang tớnh cht sng cũn i vi mụt s ca nhõn (hay t chc) thỡ bo mt tht s rt quan trng Vn khú khn t l lm gi c thụng tin mt v gi cho n ỳng c a ch cõn n Nhiu t chc, ca nhõn ó tỡm kim v a nhiu gii phap bo mt, phng phap mó húa khúa cụng khai c xem l phng phap cú tớnh an ton kha cao Nh vy vic m bo an ton thụng tin, tranh mi nguy c b thay i, chộp hoc mt mat d liu cac ng dng trờn mng luụn l bc xỳc, c nhiu ngi quan tõm Trong bi vit ny, xin trỡnh by phng phap mó húa thụng tin ú l s dng hm bm mt mó v tỡm hiu v thut toan bm SHA-2 Bi vit c tng hp t nhiu ngun bao gm c ti liu ting Vit v ting Anh, qua trỡnh dch v tng hp cũn nhiu sai xút, kớnh mong cac bn úng gúp ý kin bi vit c hon thin hn Chõn thnh cm n! CHNG I: HM BM Vn i din ti liu v Hm bm 1.1 Mt s vi ch ký s Vn 1: Ký s thc hin trờn tng bit ti liu, nờn di ca ch ký s ớt nht cng bng di ca ti liu Mt s ch ký trờn bn tin cú kớch thc gp ụi bn tin gc Vớ d dựng s ch ký DSS ký vo bn tin cú kớch thc 160 bit, thỡ ch ký s ny s cú kớch thc 320 bit Trong ú trờn thc t, ta cn phi ký vo cỏc bn tin cú kớch thc rt ln, vớ d vi chc MegaByte (tng ng hng nghỡn trang trờn giy) Nh vy phi tn nhiu b nh lu tr ch ký, mt khỏc tn nhiu thi gian truyn ch ký trờn mng Vn 2: Vi mt s s ch ký an ton, thỡ tc ký li chm vỡ chỳng dựng nhiu phộp tớnh s hc phc nh s m modulo Vn 3: Thc t cú th xy trng hp: vi nhiu bn tin u vo khỏc nhau, s dng h mó húa hay s ký s ging (cú th khỏc nhau), nhng li cho bn mó hay ch ký ging (ú l ỏnh x nhiu mt) nh hỡnh di iu ny s dn n phc cho vic xỏc thc thụng tin Thụng ip x Thụng ip y H mt mó hay s ký s Bn mó hay bn ký s Thụng ip z ớch Ngun 1.2 Gii quyt Cỏch 1: Mt cỏch n gin gii quyt cỏc trờn vi thụng ip cú kớch thc ln l cht bn tin thnh nhiu on nh (VD 160 bit), sau ú ký lờn cỏc on ú c lp Nhng bin phỏp ny gp cỏc trờn Hn th na cũn gp nghiờm trng hn ú l kt qu sau ký, ni dung ca thụng ip cú th b xỏo trn vi nhau, hoc mt s on chỳng cú th b mt mỏt Ta cn phi bo v tớnh ton ca bn tin gc Cỏch 2: Thay vỡ phi ký trờn ti liu di, ngi ta thng dựng hm bm to i din cho ti liu, sau ú mi ký s lờn i din ny Cỏc ti liu (bn tin) cú th di dng bn, hỡnh nh, õm thanh, v kớch thc ca chỳng tựy ý (vi KB n vi chc MB), qua cỏc thut toỏn bm: MD4, MD5, SHA, cỏc i din tng ng ca chỳng cú kớch thc c nh, vớ d 128 bit vi dũng MD, 160 bit vi dũng SHA i din cho ti liu chớnh l giỏ tr ca hm bm trờn ti liu, nú cũn c gi l túm lc hay bn thu gn ca ti liu Vi mi ti liu (u vo), qua hm bm ch cú th tớnh c mt i din - giỏ tr bm tng ng nht i din ca ti liu c xem l c thự ca ti liu (thụng ip), ging nh du võn tay ca mi ngi Trờn thc t, hai ti liu khỏc cú hai i din khỏc Nh vy ó cú i din nht cho mt ti liu, thỡ vic ký s vo ti liu, c thay bng ký s vo i din ca nú l hon ton hp lý ú l cha k vic tit kim bao nhiờu thi gian cho vic ký s, b lu gi ch ký, thi gian truyn ch ký trờn mng C ch gi ti liu cựng ch ký trờn nú s dng hm bm c mụ t theo cỏc hỡnh sau: di c nh 128 bit vi MD hoc 160 bit vi S di tựy ý Thụng ipBm (bnthụng rừ) ip (s dng thut toỏn MD hoc SHA) Bn bm (vn bn i din) x z=h(x) (vn bn, õm thanh, hỡnh nh ) Bm thụng ip Ký s (s dng cỏc s ký s RSA, Elgamal, DSS) Bn ký s y = sigK(z) Bn bm (vn bn i din) Khúa mt ca ngi gi Ký trờn bn bm thụng ip Thụng ip, Bn ký s (x,y) Ngi gi (A) Ngi nhn (B) Ngi gi (A) Thụng ip, Bn ký s (x,y) Ngi nhn (B) Truyn thụng ip v ch ký Tng quan v hm bm 2.1 t Trờn thc t, cỏc thụng ip s dng ch ký in t cú di bt k, thm lờn n vi Megabyte Trong ú, thut toỏn ch ký in t c trỡnh by trờn õy li ỏp dng trờn cỏc thụng ip cú di c nh v thng tng i ngn, chng hn nh phng phỏp DSS s dng ch ký 320 bit trờn thụng ip 160 bit gii quyt ny, chỳng ta cú th chia nh thụng ip cn ký thnh cỏc on nh cú di thớch hp v ký trờn tng mnh thụng ip ny Tuy nhiờn, gii phỏp ny li cú nhiu khuyt im v khụng thớch hp ỏp dng thc t: - Nu bn cn c ký quỏ di thỡ s lng ch ký c to s rt nhiu v kt qu nhn c l mt thụng ip cú kớch thc rt ln Chng hn nh s dng phng phỏp DSS thỡ thụng ip sau c ký s cú - di gp ụi bn nguyờn thy ban u Hu ht cỏ phng phỏp ch ký in t cú an ton cao u ũi hi chi phớ tớnh toỏn cao v ú, tc x lý rt chm Vic ỏp dng thut toỏn to - ch ký in t nhiu ln trờn mt bn s thc hin rt chm Tng on bn sau c ký cú th d dng b thay i th t hay b bt i m khụng lm mt i tớnh hp l ca bn Vic chia nh bn s khụng th bo m c tớnh ton ca thụng tin ban u cn c ký 2.2 Hm bm 2.2.1 Khỏi nim Hm bm Hm bm l thut toỏn khụng dựng khúa mó húa ( õy dựng thut ng bm thay cho mó húa), nú cú nhim v lc (bm) ti liu (bn tin) v cho kt qu l mt giỏ tr bm cú kớch thc c nh, cũn gi l i din ti liu hay i din bn tin, i din thụng ip 10 3.3.4 SHA-384 SHA-384 cú th c s dng bm mụt thụng ip M cú chiu di l bit vi l < 2128 Cac hm c nh ngha theo cach chớnh xac ging nh SHA-512 (phõn 3.3.3), vi hai trng hp ngoi l sau: (0) Gia tr bm ban õu H c nu ti phõn 3.2.3.3 Cac thụng ip túm lc 384-bit thu c bng cach ct b cac gia tr bm cui cựng H(N) nú trai nht 384 bit: 3.3.5 SHA-512/224 SHA-512/224 cú th c s dng bm mụt thụng ip M cú chiu di l bit vi l < 2128 Cac hm c nh ngha theo cach chớnh xac ging nh SHA-512 (phõn 3.3.3), vi hai trng hp ngoi l sau: Gia tr bm ban õu H(0) c nu ti phõn 3.2.3.5 Cac thụng ip túm lc 224-bit thu c bng cach ct b cac gia tr bm cui cựng H(N) nú trai nht 224 bit: 3.3.6 SHA-512/256 SHA-512/256 cú th c s dng bm mụt thụng ip M cú chiu di l bit vi l < 2128 Cac hm c nh ngha theo cach chớnh xac ging nh SHA-512 (phõn 3.3.3), vi hai trng hp ngoi l sau: (0) Gia tr bm ban õu H c nu ti phõn 3.2.3.6 Cac thụng ip túm lc 256-bit thu c bng cach ct b cac gia tr bm cui cựng H(N) nú trai nht 256 bit: 30 ng dng Tng t cac hm bm mt mó khac, hm bm SHA-2 c s dng mụt s cụng vic chớnh nh: * Xac minh tớnh ton ca tin hoc thụng ip * Xac minh mt khu * Proof-of-work (Bng chng v cụng vic) * Nhn dng tin hoc d liu * Sinh gi ngu nhiờn v key gc Trong thc t: Hm bm SHA-2 c thc hin mụt s ng dng bo mt c s dng rụng rói v cac giao thc, bao gm TLS v SSL, PGP, SSH, S/MIME, IPsec SHA-256 c s dng qua trỡnh chng thc gúi phõn mm Debian GNU/ Linux v DKIM (chun xac thc Email); SHA-512 l mụt phõn ca h thng xac thc Video t ICTR SHA-256 v SHA-512 c xut s dng DNSSEC Cac nh cung cp Unix v Linux ang chuyn sang s dng 256v 512 bit SHA-2 cho bm mt khu an ton Bitcoin s dng SHA-256 cho xac minh giao dch v tớnh toan bng chng v cụng vic (Proof-of-work) hoc bng chng ca c phõn (Proof-of-stake) Cac chc nng ca SHA-2 ó khụng c thụng qua mụt cach nhanh chúng, mc dự an ninh tt hn so vi SHA-1 Lý cú th bao gm thiu s h tr cho SHA-2 trờn cac h thng chy Windows XP SP2 hoc c hn ụi phat trin Google Chrome ó cụng b mụt k hoch lm cho trỡnh duyt ny dõn ngng s dng cac chng ch TLS SHA-1 t cui nm 2014 õu nm 2015 SHA-1 khụng cũn an ton trc nhng hỡnh thc tn cụng hin i Cac t chc phờ duyt chun mó húa ny cho bit h s khụng phat hnh chng nhn cho bụ mó húa bo mt SHA-1 t ngy 1-1-2016 chuyn sang SHA-2 an ton hn Tuy nhiờn, mụt phõn nh ngi dựng thit b c khụng c cp nht phiờn bn ng dng mi h tr SHA-2 s khin h gp khú khn truy cp nhng trang web c chng nhn an ton nh Facebook, Gmail, cac dch v ngõn hng trc tuyn, cac trang thng mi in t, 31 Ngi dựng ch nờn ng nhp thụng tin trờn cac trang bt õu bng https cựng biu tng khúa mu xanh hoc mu vng Google Chrome s hin th thụng bao ny t nm 2016 ngi dựng thit b khụng thớch hp SHA-2 truy cp website 32 Thut toỏn v bin th Output size (bits) Internal state size (bits) Block size (bits) Max message size (bits) Vũng Hot ng Security (bits) Hiu sut vớ d (MiB/s) And, Xor, Rot, Add (mod 232 ), Or Tip theo ta to trang index.php nhp d liu, gi d liu n file sha256.php x lý v a giỏ tr bm Ni dung file ny nh sau: SHA-256 Hash Generator SHA-256 Hash Generator - AT9A KMA Nhp bn vo õy: SHA-256 hash: 40 [...]... chuẩn và công nghệ quốc gia Hoa Kỳ đã đề xuất hệ thống chuẩn hàm băm an toàn gồm 4 thuật toán hàm băm SHA-1, SHA25 6, HA-384, SHA-512 Đến 25/03/2004, NIST đã chấp nhận thêm thuật toán hàm băm SHA-224 vào hệ thống chuẩn hàm băm Các thuật toán hàm băm do NIST đề xuất được đặc tả trong tài liệu FIPS180-2 16 CHƯƠNG II: THUẬT TOÁN BĂM SHA-2 1 Khái niệm SHA-2 (Secure Hash Algorithm 2) là tập hợp các hàm băm... điệp rút gọn có độ dài 128 bit Năm 1995, Hans Dobnertin đã chỉ ra sự đụng độ ngay chính trong bản than hàm nén của giải thuật (mặc dù chưa thật sự phá vỡ được giải thuật) Năm 2004, nhóm tác giả Xiaoyun Wang, Denguo Feng, Xuejia Lai và Hongbo Yu đã công bố kết quả về việc phá vỡ thuật toán MD4 và MD5 bằng phương pháp tấn công đụng độ 2.6.2 Hàm băm SHS (Secure Hash Standard) Hàm băm SHS do NIST và NSA... hóa… Hàm băm là nền tảng cho nhiều ứng dụng mã hóa Có nhiều thuật toán để thực hiện hàm băm, trong số đóm hàm băm SHA-1 và MD5 được sử dụng khá là phổ biến từ thập niên 1990 cho đến nay 15 2.6.1 Hàm băm MD4 (Message Disgest 4) và MD5 (Message Disgest 5) Hàm băm MD4 được Giáo sư Ron Rivest đề nghị vào năm 1990 Vào năm 1992, phiên bản MD5 của thuật toán này ra đời Thông điệp rút gọn có độ dài 128 bit Năm... sáng chế tại Mỹ số 6829355 và miễn phí bản quyền 17 3 Mô tả thuật toán Mỗi thuật toán có thể được mô tả trong hai giai đoạn: tiền xử lý và tính toán băm Tiền xử lý liên quan đến việc đệm một thông điệp, phân tích cú pháp thông điệp đó thành các khối m-bit, và thiết lập các giá trị khởi tạo sẽ được sử dụng trong tính toán băm Việc tính toán băm sinh ra một thông điệp lịch trình (message schedule)... 2393B86B6F53B151 = 963877195940EABD = 96283EE2A88EFFE3 = BE5E1E2553863992 = 2B0199FC2C85B8AA = 0EB72DDC81C52CA2 3.3 Thuật toán băm an toàn Trong các phần này, các thuật toán băm không được mô tả theo thứ tự tăng dần của kích thước SHA-256 được mô tả trước SHA-224 bởi vì các đặc điểm kỹ thuật của SHA-224 và SHA-256 là giống hệt nhau, ngoại trừ giá trị băm ban đầu khác nhau được sử dụng, và các... nhỏ trong giá trị đầu vào sẽ cho ra nhưng kết quả khác nhau hoàn toàn: SHA22 4("The quick brown fox jumps over the lazy dog") 0x 730e109bd7a8a32b1cb9d9a09aa2325d2430587ddbc0c38bad911525 SHA22 4("The quick brown fox jumps over the lazy dog.") 0x 619cba8e8e05826e9b8c519c0a5c68f4fb653e8a3d8aa04bb2c8cd4c 34 CHƯƠNG III: DEMO THUẬT TOÁN SHA-256 BẰNG PHP Phần này sẽ nói về cách tạo ra một trang web đơn giản... SHA-256 sau khi người dùng nhập một đoạn văn bản vào Mục đích: Giúp ta hiểu một cách khái quát về thuật toán SHA-256 1 Viết chương trình Để làm được việc này, ta cần tạo một trang sha25 6.php” có chứa các hàm để băm dữ liệu nhập vào và đưa ra kết quả Nội dung của file này như sau: