intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Mật mã ứng dụng: Giới thiệu sơ lược về mật mã và tiền mật mã - Đại học Bách khoa Hà Nội

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:74

17
lượt xem
5
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng "Mật mã ứng dụng: Giới thiệu sơ lược về mật mã và tiền mật mã" trình bày các nội dung chính sau đây: Hàm băm mật mã; Hàm băm kháng xung đột; Sơ đồ ủy thác; Hàm băm SHA-256;... Mời các bạn cùng tham khảo!

Chủ đề:
Lưu

Nội dung Text: Bài giảng Mật mã ứng dụng: Giới thiệu sơ lược về mật mã và tiền mật mã - Đại học Bách khoa Hà Nội

  1. M™t mã ˘ng dˆng GiÓi thiªu sÏ l˜Òc v∑ M™t mã và Ti∑n m™t mã Ngày 28 tháng 12 n´m 2020 1 / 37
  2. Tài liªu tham kh£o 2 / 37
  3. Hàm b´m m™t mã Hàm b´m là mÎt hàm th‰a mãn ba tính chßt: • ¶u vào là mÎt xâu Î dài bßt k˝. • ¶u ra là mÎt xâu Î dài cË ‡nh. Ta s≥ dùng 256 bit. • ây là mÎt hàm tính ˜Òc mÎt cách hiªu qu£. Tính an toàn • collision-free (kháng xung Ît) • hiding • puzzle-friendly 3 / 37
  4. Tính chßt 1: Kháng xung Ît Vô cùng khó ∫ tìm hai xâu x và y sao cho x 6= y và H(x) = H( y). x H(x) = H(y) y 4 / 37
  5. Tip: Checking hashes for equality: Type ctrl-F to bring up the find box in your browser. Search for the hash as calculated by the md5sum tool (without spaces Ÿng dˆng cıa hàm b´m kháng xung Ît or extra characters). Only exact matches will be found. To request an update to this list, please open a bug on the ubuntu-docs package in Launchpad. 15.04 (Vivid Vervet): April 2015 (Supported until January 2016) md5 Hash Version 53c869eba8686007239a650d903847fd ubuntu-15.04-desktop-amd64.iso 6ea04093b767ad6778aa245d53625612 ubuntu-15.04-desktop-i386.iso 487f4a81f22f8597503db3d51a1b502e ubuntu-15.04-server-amd64.iso 49de7a0ed202d11456126589e2d1db22 ubuntu-15.04-server-i386.iso fcfba8de8848944705cd200ff76c53cf ubuntu-15.04-snappy-amd64-generic.img.xz ef2a4951a2e889908a55c980d2bea475 ubuntu-15.04-snappy-armhf-bbb.img.xz 30eca69074f37982c4f1ba47737f2ad3 ubuntu-15.04-server-powerpc.iso 5 / 37
  6. Tính chßt 2: Hiding • Ta mong muËn tính chßt: Cho H(x), không th∫ tìm ˜Òc x. • i∑u này không kh£ thi khi không gian input nh‰! H(“heads”) H(“tails”) 6 / 37
  7. Tính chßt 2: Hiding MÎt hàm b´m gÂi là hiding n∏u khi gi˙ bí m™t giá tr‡ r ˜Òc chÂn ng®u nhiên, thì cho H(r x) ta không th∫ tìm ˜Òc x. Ÿng dˆng: SÏ Á ıy thác • Mô ph‰ng: "Gißu mÎt giá tr‡ trong phong bì dán kín"và "M phong bì"sau này. • ’y thác mÎt giá tr‡ và ti∏t lÎ nó sau này. 7 / 37
  8. SÏ Á ıy thác API: • (com, key) := commit(msg) • match := verify(com, key, msg) Gißu msg trong phong bì: • (com, key) := commit(msg) • sau ó công khai com M phong bì: • Công khai key, msg • Ai cÙng có th∫ dùng hàm verify() ∫ ki∫m tra tính hÒp lª. 8 / 37
  9. Tính an toàn cıa SÏ Á ıy thác API: • (com, key) := commit(msg) • match := verify(com, key, msg) Tính an toàn: • Hiding: Chø cho com, ta không th∫ tìm ˜Òc msg. • Binding: Ta không th∫ tìm ˜Òc msg 6= msg0 sao cho verify(commit(msg), msg’) == true 9 / 37
  10. SÏ Á ıy thác Cài ∞t: • commit(msg):=(H(key | msg), H(key)) vÓi key là mÎt giá tr‡ ng®u nhiên 256 bit. • verify(com, key, msg):=(H(key | msg) == com) Tính an toàn d¸a trên: • Hiding: Chø cho H(key | msg), không th∫ tìm ˜Òc msg. • Binding: Không th∫ tìm ˜Òc msg 6= msg’ such that H(key | msg) == H(key | msg’) 10 / 37
  11. Tính chßt 3: Puzzle-friendly Puzzle-friendly: • VÓi mÂi giá tr‡ y cho tr˜Óc và k ˜Òc chÂn ng®u nhiên, thì vô cùng khó ∫ tìm ˜Òc x sao cho H(k x) = y. Ÿng dˆng: Search puzzle • Cho mÎt “puzzle ID” id, và mÎt t™p giá tr‡ Y . • Hãy tìm mÎt “nghiªm” x th‰a mãn H(id x) 2 Y . Tính chßt Puzzle-friendly chø ra r¨ng không có chi∏n l˜Òc nào tËt hÏn viªc th˚ mÎt cách ng®u nhiên giá tr‡ cho x. 11 / 37
  12. Hàm b´m SHA-256 Padding (10* | length) 512 bits Message Message Message (block 1) (block 2) (block n) 256 bits 256 bits c c c IV Hash 12 / 37
  13. Th£o lu™n Thi∏t k∏ giao th˘c ∫ chÏi trò chÏi dân gian OØn tù tì qua iªn tho§i. 13 / 37
  14. Con tr‰ b´m Con tr‰ b´m là H( ) • mÎt con tr‰ tÓi d˙ liªu, và (data) • mã b´m cıa d˙ liªu. N∏u ta có mÎt con tr‰ b´m, ta có th∫ • lßy d˙ liªu, và • ki∫m tra xem liªu d˙ liªu có b‡ s˚a Íi. 14 / 37
  15. Danh sách liên k∏t vÓi con tr‰ b´m = "blockchain" H( ) prev: H( ) prev: H( ) prev: H( ) data data data 15 / 37
  16. Phát hiªn s˚a Íi H( ) prev: H( ) prev: H( ) prev: H( ) data data data 16 / 37
  17. Cây nh‡ phân vÓi con tr‰ b´m = “Merkle tree” H( ) H( ) H( ) H( ) H( ) H( ) H( ) H( ) H( ) H( ) H( ) H( ) H( ) H( ) (data) (data) (data) (data) (data) (data) (data) (data) 17 / 37
  18. Là thành viên cıa cây? Trong O(log n) H( ) H( ) H( ) H( ) H( ) H( ) (data) 18 / 37
  19. Ch˙ k˛ sË fi t˜ng: • Chø b§n có th∫ k˛, nh˜ng ai cÙng có th∫ ki∫m tra • Ch˙ k˛ ˜Òc g≠n vÓi mÎt tài liªu cˆ th∫: không th∫ copy và paste cho tài liªu khác. API: • (sk, pk) := generateKeys(keysize) • sig := sign(sk, message) • isValid := verify(pk, message, sig) 19 / 37
  20. Tính an toàn cıa ch˙ k˛ sË Ki∫m tra úng ch˙ k˛ hÒp lª verify(pk, message, sign(sk, message)) == true Không th∫ gi£ m§o ch˙ k˛: • Dù k¥ tßn công Evil bi∏t pk và có ˜Òc ch˙ k˛ hÒp lª cıa mÎt sË tài liªu (Evil muËn) • Evil cÙng không th∫ t§o ra ch˙ k˛ hÒp lª cho tài liªu mÓi. 20 / 37
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2