IT346 Information System Security
Week 3-2: Symmetric Key Cryptography
อ.พงษ์ศกดิ์ ไผ่แดง
ั

Faculty of Information Technology

Page

1
โหมดการทางานของ Block Cipher
 Block Cipher เข้ารหัสข้อมูลทีละบล็ อค
‣ หากข้อมูลมีขนาดใหญ่กว่า 1 block จะตัดข้อมูลเป็ นชิ้ นขนาดเท่า block
‣ แต่ถาเรา encrypt ข้อมูลทีละ block โดยตรง เมื่อข้อมูลมากกว่า 1 block มีค่า
้
ของข้อมูลตรงกัน ค่า ciphertext ของ block เหล่านันก็จะตรงกันด้วย ทาให้
้
่
การ encryption ไม่ได้ประสิทธิภาพเต็มที่ เพราะมีการรัวไหลเกี่ยวกับข้อมูล

full
encrypt

encrypt
Exrw

Faculty of Information Technology

time

part
encrypt

vjyo

gMsQ

time
encrypt
vjyo

Page

2
โหมดการทางานของ Block Cipher
 เราแก้ปัญหาการซ้ากันของ ciphertext ของแต่ละบล็ อค เมื่อ plaintext

ของบล็อคซากัน ด้วยโหมดการทางานของ block cipher
้
‣ Ciphertext ของแต่ละ block จะขึ้นกับ plaintext ของ block นันๆ และ
้

plaintext ของ block อื่นๆด้วย
‣ Encryption เป็ น probabilistic มากขึ้น คือไม่สามารถคาดเดา output อย่าง
แน่ นอนจาก input นันๆของ block ได้
้

Faculty of Information Technology

Page

3
โหมดการทางานของ Block Cipher
โหมดที่สาคัญ ได้แก่
 Mode การทางานแบบ Block Cipher โดยตรง
‣ Electronic Code Book (ECB)
‣ Cipher Block Chaining (CBC)

 Mode การทางานแบบ Block Cipher ที่มีการดาเนิ นการแบบ Stream

Cipher
‣ Cipher Feedback (CFB)
‣ Output Feedback (OFB)

Faculty of Information Technology

Page

4
Electronic Code Book (ECB) mode





โหมดการทางานที่ง่ายที่สุด
ข้อความที่เข้ามาจะถูกแบ่งออกเป็ น block ย่อย ๆ
แต่ละ block ย่อยจะถูก encrypt อย่างเป็ นอิสระจาก block ย่อยอื่นๆ
ทุกๆ block จะใช้กญแจเดียวกันเพื่อเข้ารหัส
ุ

Faculty of Information Technology

Page

5
Electronic Code Book (ECB) mode

Faculty of Information Technology

Page

6
Cipher Block Chaining (CBC) mode
 ในโหมดนี้ แก้ปัญหาการซ้ากันของ ciphertext ของแต่ละบล็ อค เมื่อ

plaintext ของบล็อคซากัน โดยอาศัยขันตอน Encryption ดังนี้
้
้
‣ Chain ของการทางานรับ Input เข้ามา 2 ชุด คือ Block แรกของ plaintext

และ block ข้อมูลเพิ่มเติมที่เรียกว่า Initial Vector (IV) หรือ เวกเตอร์เริ่มต้น
โดยที่ IV ไม่จาเป็ นจะต้องเป็ นความลับ แต่เราไม่นิยมใช้ IV ซ้ากับคู่ key
เดียวกัน
‣ Block ที่ 2 จะ XOR กับ ciphertext ของ block แรก จากนัน encrypt ด้วยkey
้
เดิม และได้ผลลัพธ์เป็ น ciphertext ของ block ที่ 2
‣ Block ที่ 3 จะ XOR กับ ciphertext ของ block ที่ 2 จากนัน encrypt ด้วยkey
้
เดิม และได้ผลลัพธ์เป็ น ciphertext ของ block ที่ 3
‣ ทาเช่นนี้ ไปเรื่อย ๆ กับบล็อคข้อความที่เหลือ
Faculty of Information Technology

Page

7
Cipher Block Chaining (CBC) mode
 ขันตอน Decryption เป็ น ดังนี้
้
‣ Ciphertext ของ block ที่ 1 ถูกส่งไป decrypt โดยใช้ key ตัวเดียวกันที่ใช้ใน
ขันตอน encryption ผลลัพธ์จากการดาเนิ นงานในขันตอนนี้ นาไป XOR กับ
้
้
IV ได้ผลลัพธ์เป็ น plaintext ของ block ที่ 1
‣ Decrypt Ciphertext ของ block ที่ 2 แล้ว XOR กับ Ciphertext ของ block ที่
1 ผลลัพธ์ที่ได้ คือ plaintext ของ block ที่ 2
่
‣ ดาเนิ นการเช่นนี้ ไปเรื่อย ๆ จนกระทัง decrypt ทุก block เสร็จสมบูรณ์ได้เป็ น
plaintext

Faculty of Information Technology

Page

8
Cipher Block Chaining (CBC) mode
C0 = IV
Ci = EK(Pi XOR Ci-1)

C0 = IV
Pi = DK(Ci) XOR Ci-1

Faculty of Information Technology

Page

9
Cipher Feedback (CFB) mode
 เหมาะสาหรับการทางานที่ใช้ตวอักษรเป็ นหลัก
ั
‣ เช่น โอเปอเรเตอร์ที่พิมพ์ตวอักษรส่งไปในเครือข่ายทันทีทนใดเพื่อส่งข้อมูลไป
ั
ั
่
ให้อีกฝังหนึ่ ง
‣ ข้อความจะถูก encrypt ในรูปแบบของหน่ วยที่มีขนาดเล็ก เช่น อาจจะเป็ น
ขนาด 8 บิต แทนที่จะเป็ น block ขนาดใหญ่

Faculty of Information Technology

Page

10
Cipher Feedback (CFB) mode
 Encryption มีขนตอนการทางาน ดังนี้
ั้
‣ IV จะถูกเก็บอยู่ใน shift register ค่า IV จะถูก encrypt ได้ผลลัพธ์เป็ นcipher
IV ขนาด 64 bits
‣ พิจารณาจาก bit ที่อยู่ทางซ้ายสุด j บิต ของ cipher IV แล้วนามา XOR กับ j
บิตแรกของ plaintext block ที่ 1 จะได้ผลลัพธ์ออกมาเป็ น ciphertext block ที่
1
‣ ส่งค่า ciphertext block ที่ 1 ไปให้ผรบ
ู้ ั
‣ นา IV มา shift bit ไปทางซ้าย j ตาแหน่ ง จากนันนา ciphertext block ที่ 1
้
มาเติมให้บิตทางขวาสุด j ตาแหน่ ง
่
‣ ทาซ้าจากขันตอนที่ 1 ถึง 4 จนกระทัง plaintext ถูกเข้ารหัสทังหมด
้
้

Faculty of Information Technology

Page

11
CFB Mode
Encryption

Decryption

Faculty of Information Technology

Page

12
Output Feedback (OFB) mode
 คล้ายคลึ งกับโหมดแบบ CFB แตกต่างตรงที่
‣ ในกรณี แบบ CFB นัน ciphertext จะถูกนาไปเป็ น IV ของการ encryption ขัน
้
้
ต่อไป
‣ แต่โหมดแบบ OFB นัน ciphertext ของ IV จะถูกนาเป็ น IV ของกระบวนการ
้
เข้ารหัสขันต่อไป
้

Faculty of Information Technology

Page

13
Output Feedback (OFB) mode

Faculty of Information Technology

Page

14
กิจกรรม 1
ให้นกศึกษาจับกลุ่มเพื่อวิเคราะห์ปัญหาของ Symmetric Key
ั
Cryptography โดยพิจารณาจากประเด็นปั ญหาต่อไปนี้
 ในการใช้งาน Symmetric Key Cryptography นัน key ที่ใช้ในการทา
้

Encryption และ Decryption ต้องมีความสัมพันธ์กนอย่างไร?
ั
 Alice ต้องการส่งข้อมูลลับไปให้กบ Bob อย่างไรก็ตาม Alice ไม่เคยรูจก
ั
้ ั
Bob มาก่อน และไม่เคยมีปฏิสมพันธ์กบ Bob มาก่อน ในกรณี น้ ี Alice
ั
ั
สามารถใช้ Symmetric Key Cryptography ในการเข้ารหัสข้อมูลไปให้
Bob โดยที่ Bob สามารถถอดรหัสได้เลยหรือไม่ ถ้าไม่ คิดว่าต้องมีกลไก
ใดเกิดขึ้ นก่อนที่จะเริ่ม Symmetric Key Cryptography
Faculty of Information Technology

Page

15
Diffie-Hellman
 Diffie-Hellman อาศัยหลักการว่าการคานวณค่าของเอ็กโปเนนเชี ยล

(Exponential) นันง่ายกว่าการคานวณล็ อกการิทึม (Logarithm) โดย
้
อัลกอริทึมนี้ จะอนุญาตให้คนสองคนสามารถสร้าง Secret Key เพื่อใช้ใน
การเข้ารหัสข้อมูล
ขันตอนการทางาน
้
 เริ่มโดยการเลื อกตัวเลขจำนวนเฉพำะ ที่มีค่ามากค่าหนึ่ ง เป็ น p แล้วต้อง
เลื อกอีกตัวเลขหนึ่ ง สมมติว่าเป็ น g โดยที่ g < p และ g ต้องเป็ น
Primitive เมื่ออ้างกับ p (Primitive Root Modulo p)
‣ ถ้า g เป็ น Primitive ของ p ก็ต่อเมื่อ ถ้าเราสามารถหาจานวนเต็ม i โดยที่ gi =

j (mod p) สาหรับทุกค่าของ j ที่มีค่าตังแต่ 1 ถึง p-1
้

Faculty of Information Technology

Page

16
Diffie-Hellman (Example)
ตัวอย่าง เลือก g = 3, p = 5
 ทดสอบคุณสมบัติ Primitive
‣
‣
‣
‣
‣
‣

g1 mod 5 = 3 mod 5 = 3
g2 mod 5 = 9 mod 5 = 4
g3 mod 5 = 27 mod 5 = 2
g4 mod 5 = 81 mod 5 = 1
g5 mod 5 = 243 mod 5 = 3
g6 mod 5 = 729 mod 5 = 4

 ดังนัน 3 เป็ น primitive ของจานวนเฉพาะ 5
้

Faculty of Information Technology

Page

17
Diffie-Hellman
 วิธีการสร้าง Secret Key

Bob

Alice





เลือกค่า g และ p
เลือกเลขที่มีค่ามากๆ a
คานวณ A = ga mod p
ส่ง g, p, A ให้ Bob

 รับ B จาก Bob
 คานวณหาค่า K = Ba mod p
Faculty of Information Technology

g, p, A
B






รับ g, p, A
เลือกเลขที่มีค่ามากๆ b
ส่งค่า B = gb mod p ให้ Alice
คานวณหาค่า K = Ab mod p
Page

18
Diffie-Hellman
 g = 3 and p = 5

Bob

Alice





เลือกค่า g=3 และ p=5
เลือก a = 2
คานวณ A = 32 mod 5 = 4
ส่ง g=3, p=5, A=4 ให้ Bob

g=3, p=5,
A=4

 รับ B จาก Bob
 คานวณหาค่า K = 22 mod 5 = 4
Faculty of Information Technology

B

 รับ g=3, p=5, A=4
 เลือกเลขที่มีค่ามากๆ b = 3
 ส่งค่า B = 33 mod 5 = 2 ให้
Alice
 คานวณหาค่า K = 43 mod 5 = 4
Page

19

Information system security wk3-2

  • 1.
    IT346 Information SystemSecurity Week 3-2: Symmetric Key Cryptography อ.พงษ์ศกดิ์ ไผ่แดง ั Faculty of Information Technology Page 1
  • 2.
    โหมดการทางานของ Block Cipher Block Cipher เข้ารหัสข้อมูลทีละบล็ อค ‣ หากข้อมูลมีขนาดใหญ่กว่า 1 block จะตัดข้อมูลเป็ นชิ้ นขนาดเท่า block ‣ แต่ถาเรา encrypt ข้อมูลทีละ block โดยตรง เมื่อข้อมูลมากกว่า 1 block มีค่า ้ ของข้อมูลตรงกัน ค่า ciphertext ของ block เหล่านันก็จะตรงกันด้วย ทาให้ ้ ่ การ encryption ไม่ได้ประสิทธิภาพเต็มที่ เพราะมีการรัวไหลเกี่ยวกับข้อมูล full encrypt encrypt Exrw Faculty of Information Technology time part encrypt vjyo gMsQ time encrypt vjyo Page 2
  • 3.
    โหมดการทางานของ Block Cipher เราแก้ปัญหาการซ้ากันของ ciphertext ของแต่ละบล็ อค เมื่อ plaintext ของบล็อคซากัน ด้วยโหมดการทางานของ block cipher ้ ‣ Ciphertext ของแต่ละ block จะขึ้นกับ plaintext ของ block นันๆ และ ้ plaintext ของ block อื่นๆด้วย ‣ Encryption เป็ น probabilistic มากขึ้น คือไม่สามารถคาดเดา output อย่าง แน่ นอนจาก input นันๆของ block ได้ ้ Faculty of Information Technology Page 3
  • 4.
    โหมดการทางานของ Block Cipher โหมดที่สาคัญได้แก่  Mode การทางานแบบ Block Cipher โดยตรง ‣ Electronic Code Book (ECB) ‣ Cipher Block Chaining (CBC)  Mode การทางานแบบ Block Cipher ที่มีการดาเนิ นการแบบ Stream Cipher ‣ Cipher Feedback (CFB) ‣ Output Feedback (OFB) Faculty of Information Technology Page 4
  • 5.
    Electronic Code Book(ECB) mode     โหมดการทางานที่ง่ายที่สุด ข้อความที่เข้ามาจะถูกแบ่งออกเป็ น block ย่อย ๆ แต่ละ block ย่อยจะถูก encrypt อย่างเป็ นอิสระจาก block ย่อยอื่นๆ ทุกๆ block จะใช้กญแจเดียวกันเพื่อเข้ารหัส ุ Faculty of Information Technology Page 5
  • 6.
    Electronic Code Book(ECB) mode Faculty of Information Technology Page 6
  • 7.
    Cipher Block Chaining(CBC) mode  ในโหมดนี้ แก้ปัญหาการซ้ากันของ ciphertext ของแต่ละบล็ อค เมื่อ plaintext ของบล็อคซากัน โดยอาศัยขันตอน Encryption ดังนี้ ้ ้ ‣ Chain ของการทางานรับ Input เข้ามา 2 ชุด คือ Block แรกของ plaintext และ block ข้อมูลเพิ่มเติมที่เรียกว่า Initial Vector (IV) หรือ เวกเตอร์เริ่มต้น โดยที่ IV ไม่จาเป็ นจะต้องเป็ นความลับ แต่เราไม่นิยมใช้ IV ซ้ากับคู่ key เดียวกัน ‣ Block ที่ 2 จะ XOR กับ ciphertext ของ block แรก จากนัน encrypt ด้วยkey ้ เดิม และได้ผลลัพธ์เป็ น ciphertext ของ block ที่ 2 ‣ Block ที่ 3 จะ XOR กับ ciphertext ของ block ที่ 2 จากนัน encrypt ด้วยkey ้ เดิม และได้ผลลัพธ์เป็ น ciphertext ของ block ที่ 3 ‣ ทาเช่นนี้ ไปเรื่อย ๆ กับบล็อคข้อความที่เหลือ Faculty of Information Technology Page 7
  • 8.
    Cipher Block Chaining(CBC) mode  ขันตอน Decryption เป็ น ดังนี้ ้ ‣ Ciphertext ของ block ที่ 1 ถูกส่งไป decrypt โดยใช้ key ตัวเดียวกันที่ใช้ใน ขันตอน encryption ผลลัพธ์จากการดาเนิ นงานในขันตอนนี้ นาไป XOR กับ ้ ้ IV ได้ผลลัพธ์เป็ น plaintext ของ block ที่ 1 ‣ Decrypt Ciphertext ของ block ที่ 2 แล้ว XOR กับ Ciphertext ของ block ที่ 1 ผลลัพธ์ที่ได้ คือ plaintext ของ block ที่ 2 ่ ‣ ดาเนิ นการเช่นนี้ ไปเรื่อย ๆ จนกระทัง decrypt ทุก block เสร็จสมบูรณ์ได้เป็ น plaintext Faculty of Information Technology Page 8
  • 9.
    Cipher Block Chaining(CBC) mode C0 = IV Ci = EK(Pi XOR Ci-1) C0 = IV Pi = DK(Ci) XOR Ci-1 Faculty of Information Technology Page 9
  • 10.
    Cipher Feedback (CFB)mode  เหมาะสาหรับการทางานที่ใช้ตวอักษรเป็ นหลัก ั ‣ เช่น โอเปอเรเตอร์ที่พิมพ์ตวอักษรส่งไปในเครือข่ายทันทีทนใดเพื่อส่งข้อมูลไป ั ั ่ ให้อีกฝังหนึ่ ง ‣ ข้อความจะถูก encrypt ในรูปแบบของหน่ วยที่มีขนาดเล็ก เช่น อาจจะเป็ น ขนาด 8 บิต แทนที่จะเป็ น block ขนาดใหญ่ Faculty of Information Technology Page 10
  • 11.
    Cipher Feedback (CFB)mode  Encryption มีขนตอนการทางาน ดังนี้ ั้ ‣ IV จะถูกเก็บอยู่ใน shift register ค่า IV จะถูก encrypt ได้ผลลัพธ์เป็ นcipher IV ขนาด 64 bits ‣ พิจารณาจาก bit ที่อยู่ทางซ้ายสุด j บิต ของ cipher IV แล้วนามา XOR กับ j บิตแรกของ plaintext block ที่ 1 จะได้ผลลัพธ์ออกมาเป็ น ciphertext block ที่ 1 ‣ ส่งค่า ciphertext block ที่ 1 ไปให้ผรบ ู้ ั ‣ นา IV มา shift bit ไปทางซ้าย j ตาแหน่ ง จากนันนา ciphertext block ที่ 1 ้ มาเติมให้บิตทางขวาสุด j ตาแหน่ ง ่ ‣ ทาซ้าจากขันตอนที่ 1 ถึง 4 จนกระทัง plaintext ถูกเข้ารหัสทังหมด ้ ้ Faculty of Information Technology Page 11
  • 12.
    CFB Mode Encryption Decryption Faculty ofInformation Technology Page 12
  • 13.
    Output Feedback (OFB)mode  คล้ายคลึ งกับโหมดแบบ CFB แตกต่างตรงที่ ‣ ในกรณี แบบ CFB นัน ciphertext จะถูกนาไปเป็ น IV ของการ encryption ขัน ้ ้ ต่อไป ‣ แต่โหมดแบบ OFB นัน ciphertext ของ IV จะถูกนาเป็ น IV ของกระบวนการ ้ เข้ารหัสขันต่อไป ้ Faculty of Information Technology Page 13
  • 14.
    Output Feedback (OFB)mode Faculty of Information Technology Page 14
  • 15.
    กิจกรรม 1 ให้นกศึกษาจับกลุ่มเพื่อวิเคราะห์ปัญหาของ SymmetricKey ั Cryptography โดยพิจารณาจากประเด็นปั ญหาต่อไปนี้  ในการใช้งาน Symmetric Key Cryptography นัน key ที่ใช้ในการทา ้ Encryption และ Decryption ต้องมีความสัมพันธ์กนอย่างไร? ั  Alice ต้องการส่งข้อมูลลับไปให้กบ Bob อย่างไรก็ตาม Alice ไม่เคยรูจก ั ้ ั Bob มาก่อน และไม่เคยมีปฏิสมพันธ์กบ Bob มาก่อน ในกรณี น้ ี Alice ั ั สามารถใช้ Symmetric Key Cryptography ในการเข้ารหัสข้อมูลไปให้ Bob โดยที่ Bob สามารถถอดรหัสได้เลยหรือไม่ ถ้าไม่ คิดว่าต้องมีกลไก ใดเกิดขึ้ นก่อนที่จะเริ่ม Symmetric Key Cryptography Faculty of Information Technology Page 15
  • 16.
    Diffie-Hellman  Diffie-Hellman อาศัยหลักการว่าการคานวณค่าของเอ็กโปเนนเชียล (Exponential) นันง่ายกว่าการคานวณล็ อกการิทึม (Logarithm) โดย ้ อัลกอริทึมนี้ จะอนุญาตให้คนสองคนสามารถสร้าง Secret Key เพื่อใช้ใน การเข้ารหัสข้อมูล ขันตอนการทางาน ้  เริ่มโดยการเลื อกตัวเลขจำนวนเฉพำะ ที่มีค่ามากค่าหนึ่ ง เป็ น p แล้วต้อง เลื อกอีกตัวเลขหนึ่ ง สมมติว่าเป็ น g โดยที่ g < p และ g ต้องเป็ น Primitive เมื่ออ้างกับ p (Primitive Root Modulo p) ‣ ถ้า g เป็ น Primitive ของ p ก็ต่อเมื่อ ถ้าเราสามารถหาจานวนเต็ม i โดยที่ gi = j (mod p) สาหรับทุกค่าของ j ที่มีค่าตังแต่ 1 ถึง p-1 ้ Faculty of Information Technology Page 16
  • 17.
    Diffie-Hellman (Example) ตัวอย่าง เลือกg = 3, p = 5  ทดสอบคุณสมบัติ Primitive ‣ ‣ ‣ ‣ ‣ ‣ g1 mod 5 = 3 mod 5 = 3 g2 mod 5 = 9 mod 5 = 4 g3 mod 5 = 27 mod 5 = 2 g4 mod 5 = 81 mod 5 = 1 g5 mod 5 = 243 mod 5 = 3 g6 mod 5 = 729 mod 5 = 4  ดังนัน 3 เป็ น primitive ของจานวนเฉพาะ 5 ้ Faculty of Information Technology Page 17
  • 18.
    Diffie-Hellman  วิธีการสร้าง SecretKey Bob Alice     เลือกค่า g และ p เลือกเลขที่มีค่ามากๆ a คานวณ A = ga mod p ส่ง g, p, A ให้ Bob  รับ B จาก Bob  คานวณหาค่า K = Ba mod p Faculty of Information Technology g, p, A B     รับ g, p, A เลือกเลขที่มีค่ามากๆ b ส่งค่า B = gb mod p ให้ Alice คานวณหาค่า K = Ab mod p Page 18
  • 19.
    Diffie-Hellman  g =3 and p = 5 Bob Alice     เลือกค่า g=3 และ p=5 เลือก a = 2 คานวณ A = 32 mod 5 = 4 ส่ง g=3, p=5, A=4 ให้ Bob g=3, p=5, A=4  รับ B จาก Bob  คานวณหาค่า K = 22 mod 5 = 4 Faculty of Information Technology B  รับ g=3, p=5, A=4  เลือกเลขที่มีค่ามากๆ b = 3  ส่งค่า B = 33 mod 5 = 2 ให้ Alice  คานวณหาค่า K = 43 mod 5 = 4 Page 19