Cryptogrpahy (密碼學)

  1. Course Number: 219082
  2. 課程目標Course objectives: Cryptography is the art of the practice and study of techniques for secure communication in the presence of third parties called adversaries. More generally, cryptography is about constructing and analyzing protocols that prevent third parties or the public from reading private messages. This course will lead students to get acquainted with several famous encryption/decryption algorithms in history, learn the mathematics behind the encryption algorithms, and implement them in computer programs.
  3. Textbook & References:
  4. Classroom: TC-208
  5. Grading criteria:
  6. Software
    1. PuTTY 0.73
    2. Anaconda3-2021.05
    3. Visual Studio 2019 `(English version)

Syllabus

  1. Introduction
  2. Movie (1): U-571 (2000)
  3. Substitution Cipher (1): Caesar Cipher and its variants
  4. Substitution Cipher (2): Vigenère Cipher
  5. Substitution Cipher (3): Playfair Cipher
  6. Substitution Cipher (4): Hill Cipher
  7. Movie (2): Wind Talkers (2002)
  8. Transposition Cipher (1): Scytale
  9. Transposition Cipher (2): Rail Fence Cipher
  10. Transposition Cipher (3): Route Cipher
  11. Simplified DES
  12. Movie (3): The Hunt for Red October (1990)
    1. 蘇聯解體發生在1991年。這部電影在1990年上映時,全球仍處於冷戰的陰影下,美蘇兩強擁有的核戰數量,多到足以把地球毀滅十次有餘。在冷戰過後才出生的同學,應該很難想像當年為何人類要製造這麼多互相毀滅的武器吧!
    2. 00:00:34 "Apparently suffering a radiation problem" 中文字幕譯作「顯然是為了躲避雷達」明顯有誤。潛艦浮上水面反而會被雷達偵測到。較正確的翻譯應是「顯然是遭遇到輻射外洩的問題」。
    3. 47:37 發現新大陸後把船燒毀的柯德,是西班牙探險家 Hernán Cortés. 他在 1519 年來到墨西哥 (比 Christopher Columbus 抵達北美的 1492 晚了27年), 他把船鑿沉,確保船員只能追隨他上岸。(這個版本和電影中所說的「燒毀」略有出入,但精神是一致的。)
    4. 01:20 中譯多出一句「上方有戰機出現」,這對話出現在戰機飛行員間真是奇怪呀!其實大家仔細聽的話,對白只有說 "Request to launch the weapon."
    5. 32:35 中文譯為「他看得懂密碼嗎?」真是完全亂翻呀!英文是 "Can he acknowledge with a single ping?" (註: ping 是電腦上的指令,發出一個 ICMP Echo Request,根據對方收到後傳回來的時間(round-trip time),可以估算對方和自己的距離。例如我們從校內 ping moodle.ncnu.edu.tw 不到 1ms,而 ping business.pitt.edu (匹茲堡大學商學院) 需要 195 ms (Pittsburgh在美東,接近五大湖區,離台灣較遠,所需時間也因而較長)。
      • ping 的典故起緣自海軍在水面下利用聲納來量測距離及定位,由聲納主動發出一個 ping 的聲波,從對方船艦外殼反射回來,就可以估算出對方的距離和方位(原理和空氣中使用雷達類似)。
    6. 32:49 Ramius 艦長所說的 "Verify our range to target. One ping only." 也被錯譯為「回應對方,只打一下閃光。」對他的船員而言,一聲 ping 波(量測距離及方向)可被視為攻擊前的準備,所以船員不會疑心船長在與敵船通訊。相反地,如果他開始用 Morse Code 和對方聊起來了,這動作就很可疑。在這個階段,不能讓船員疑心船長要帶船投靠。
  13. Asymmetric Cryptography (1): Merkle–Hellman knapsack cryptosystem
  14. Asymmetric Cryptography: Kid-RSA
  15. Asymmetric Cryptography (2): RSA algorithm
  16. Asymmetric Cryptography (3): Cramer–Shoup cryptosystem
  17. Movie (4): The Imitation Game (2014)
  18. Diffie–Hellman key exchange protocol
  19. ElGamal
  20. Elliptic-curve cryptography
  21. RC4 stream cipher
  22. One-Time Pad (OTP)
  23. Lorenz Cipher
  24. How to forge a mail? PGP (Pretty Good Privacy) and GPG (GNU Priacy Gaurd)
  25. Term Project Presentation

References

  1. Modern Cryptography in UC Davis
  2. yhchen's slides in UTaipei
  3. Stanford Online - Cryptography I
  4. Cryptography in Coursera
  5. Dorothy Elizabeth Robling Denning, Cryptography and Data Security, Addison-Wesley Publishing Company; 1st edition (June 1982). ISBN-13: 978-0201101508
  6. (NCNU TK5105.59 .S713 2011) Cryptography and Network Security: Principles and Practice, 4/E, by William Stallings
  7. (NCNU Z103 S617 1999) Simon Singh, The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography , Anchor; Reprint edition (August 29, 2000). ISBN-13: 978-0385495325.
  8. (NCNU QA76.9.A25 S359 1996) Bruce Schneier, Applied Cryptography: Protocols, Algorithms, and Source Code in C , Wiley; 2nd edition (October 18, 1996). ISBN-13: 978-0471117094
  9. (Solomon) Niels Ferguson, Bruce Schneier, and Tadayoshi Kohno Cryptography Engineering: Design Principles and Practical Applications, Wiley; 1 edition (March 15, 2010). ISBN-13: 978-0470474242 (Cost: NT$1071 in Ten-Long) ISBN-13: 978-3642041006.
  10. [eBook] Christof Paar and Jan Pelzl, Understanding cryptography : a textbook for students and practitioners, Springer 2010. ISBN:978-3-642-04101-3 (local copy)
  11. [eBook] Michael Welschenbach, Cryptography in C and C++, Apress, ISBN:978-1-4302-0026-0. (local copy)
  12. [eBook] Nigel Smart, Cryptography: An Introduction (3rd Edition) [PDF]
  13. GNU Privacy Guard