ความแตกต่าง CPA Security และ CCA Security
CPA (Chosen-Plaintext Attack): โจมตีส่ง Plaintext เองไปให้ Oracle ได้ Ciphertext กลับมา
CCA (Chosen-Ciphertext Attack): โจมตีส่ง Ciphertext เองไปให้ Oracle ได้ Plaintext กลับมา
Chosen-Plaintext Attack ทำงานอย่างไร
โจมตีเลือก Plaintext คู่ๆ มาเข้ารหัส ได้ Ciphertext ที่สอดคล้องกัน วัตถุประสงค์เพื่อข้อมูลลับที่ลดความปลอดภัยของระบบเข้ารหัส
นิยาม Chosen-Plaintext Attack
โจมตีที่โจมตีเลือก Plaintext (P) ใดๆ ได้ แล้วดู Ciphertext (C) ที่เข้ารหัสแล้ว กฎหลัก: อย่าคิดมากก่อนโจมตี
Known-Plaintext Attack vs Chosen-Plaintext Attack
- Known-Plaintext: โจมตีรู้ Plaintext และ Ciphertext คู่กัน
- Chosen-Plaintext: โจมตีเลือก Plaintext เอง ได้ Ciphertext กลับมา
Cryptanalytic Attacks คืออะไร
Differential Cryptanalysis: โจมตี Chosen-Plaintext บน Block Ciphers เปรียบเทียบคู่ Plaintext แทนที่จะเป็นตัวเดียว เพื่อศึกษาพฤติกรรมอัลกอริทึม
ตัวอย่าง Chosen-Plaintext Attack
Differential Cryptanalysis และ Key-phrase Lists เป็นตัวอย่างยุคใหม่ แปลงจาก Chosen-Plaintext เป็น Known-Plaintext ได้
Cryptographic Attack คืออะไร
โจมตีข้ามความปลอดภัยระบบเข้ารหัส โดยหาจุดอ่อนใน Code, Cipher, Protocol, Key Management เรียกว่า Cryptanalysis
CCA Security บ่งชี้ CPA Security หรือไม่
ใช่ IND-CCA1 ถูกต้อง IND-CPA, IND-CCA2 ถูกต้อง IND-CCA1 และ IND-CPA IND-CCA2 เป็นนิยามที่แข็งแกร่งที่สุด
CCA Security คืออะไร
Chosen-Ciphertext Attacks: Cryptanalyst ถอดรหัส Ciphertext ที่เลือกเอง เพื่อรวบรวมข้อมูล Formalized โดย Luby, Bellare, ฯลฯ
AES Ind-CPA Secure หรือไม่
AES กับ Random Oracle IV (CBC Mode) หรือ Unique Nonce (CTR Construction) ถือว่า CPA-Secure Key Size ไม่ปรับได้ ทุก Mode มี Key เฉพาะ
AES และ CPA (Correlation Power Analysis)
Side-Channel Attacks ใช้ CPA วัดกระแส/แม่เหล็กจาก Chip เพื่อถอดรหัส Key ใน AES
โจมตีแบบ Chosen-Ciphertext Attack
CCA: Cryptanalyst ถอดรหัส Ciphertext ที่เลือก เพื่อหา Secret Key
โจมตีที่ Cryptanalyst เข้ารหัส Plaintext เอง
Chosen-Plaintext Attack: Cryptanalyst เลือก Plaintext ใดๆ ให้เข้ารหัส ได้ Ciphertext กลับมา
Plaintext คืออะไร
ข้อมูลที่ยังไม่เข้ารหัส นำเข้า Cryptographic Algorithm (มักเป็น Encryption) "In Clear" = ส่ง/เก็บโดยไม่เข้ารหัส
Known-Plaintext Attack ตัวอย่าง
Linear Cryptanalysis: ใช้ Known Plaintext ศึกษาความสัมพันธ์เชิงเส้นระหว่าง Plaintext, Ciphertext, Secret Key
Chosen-Plaintext vs Chosen-Ciphertext
Chosen-Plaintext: โจมตีเลือก Plaintext ได้ Ciphertext
Chosen-Ciphertext: โจมตีเลือก Ciphertext ได้ Plaintext
Known-Plaintext Attack ทำงานอย่างไร
ใช้คู่ Plaintext-Ciphertext หา Ciphertext ของข้อความอื่น หา Secret Key หรืออัลกอริทึมถอดรหัสข้อความในอนาคต
Known-Plaintext Attack ต่อ DES
Meet-in-the-Middle Attack: เข้ารหัส 2 รอบด้วย Key ต่างกัน เทียบเท่าการใช้ Key เดียวหรือไม่