Upload
bee-lalita
View
621
Download
2
Embed Size (px)
Citation preview
Faculty of Information Technology Page
IT346 Information System Security
Week 3-1: Symmetric-Key Cryptography
อ.พงษศ์กัด์ิ ไผ่แดง
1
Faculty of Information Technology Page
Cryptography
Cryptography หมายถึงวิทยาการรหสัลบั มาจากค าว่า crypto ท่ีแปลว่า
ซ่อน และค าว่า graph ท่ีแปลว่าการเขียนCryptography จึงมีความหมาย
ว่า “การเขียนเพ่ือซ่อนขอ้มูล”
Cryptography ใชใ้นการป้องกนัขอ้มูลและสารสนเทศ โดยประกอบดว้ย
3 เทคโนโลยีหลกั
‣ Symmetric Key Cryptography หรือ Secret Key Cryptographyคือการเขา้รหสั
ขอ้มลูแบบ “สมมาตร”
‣ Asymmetric Key Cryptography หรือ Public Key Cryptographyคือการ
เขา้รหสัขอ้มูลแบบ “อสมมาตร”
‣ Hash Function คือการสรา้งตวัแทนขอ้มลู
Faculty of Information Technology Page
Cryptography
Cryptanalysis หมายถึงการพยายามวิเคราะหเ์พ่ือศึกษาประเด็นต่างๆท่ี
เก่ียวขอ้งกบั Cryptography
Sensitive Data หมายถึงขอ้มูลส าคญัท่ีถือว่าเป็นความลบัไม่สามารถ
แพร่งพรายออกสู่ภายนอกได ้
Faculty of Information Technology Page
Symmetric-Key Cryptography
Plaintext –ขอ้มูลตน้ฉบบั
Encryption algorithm –ด าเนินการแทนท่ี (substitutions) หรือ แปลงขอ้มูล
(transformations) บน plaintext
Secret Key –ควบคมุการ substitutions/transformationsท่ีเกิดข้ึนใน
กระบวนการ encryption
Ciphertext – ขอ้มลูท่ีถกูแปลงดว้ย substitutions/transformationsแลว้
Decryption – กระบวนการยอ้นกลบัของ encryption
ความแข็งแกร่งของ encryption อยู่ท่ีการรกัษาความลบัของ keyท่ีใช ้
4
Encryption Decryption Plaintext Ciphertext Plaintext
Key Key
E(P,K) C D(C,K) P
Faculty of Information Technology Page
อลักอริทึมมาตรฐานส าหรบัการเขา้รหสั
อลักอริทึม DES (Data Encryption Standard)
‣ Key size 56 bits
อลักอริทึม 3-DES (Triple-DES)
‣ Key size 112 bits
อลักอริทึม IDEA (International Data Encryption Algorithm)
‣ Key size 128 bits
อลักอริทึม AES (Advanced Encryption Standard)
‣ Key size 128, 192, 256 bits
5
Faculty of Information Technology Page
DES Algorithm
DES ย่อมาจาก Data Encryption Standard เป็นการเขา้รหสั แบบบล็อค
(Block cipher) ท่ีพฒันามาจากอลักอริทึม Lucifer ของ IBM โดย
Lucifer ไดร้บัการพฒันาเพ่ิมความสามารถและเปล่ียนช่ือเป็น DES แลว้
ไดร้บัการน าเสนอต่อ US NIST (US National Institute of Standards
and Technology) ใหก้ลายเป็นมาตรฐานการเขา้รหสั
DES เป็นอลักอริทึมแบบบล็อก (Block Cipher) ใช ้Key ขนาดความยาว
56 bits ด าเนินการบนบล็อคขอ้มูล (Data Block) ขนาด 64 bits
6
Faculty of Information Technology Page
DES Overview
Initial Permutation
64-bit Plaintext
Round 0
Round 1
Round 15
Inverse Initial Permutation
PC1
… 64-bit Key
…
Left Circular Shift
Left Circular Shift
Left Circular Shift
32-bit Swap
PC2
PC2
PC2
56-bit Key
56-bit Key
56-bit Key
56 bit
56 bit
56 bit
48 bit
48 bit
48 bit
K1
K2
K16
64-bit Ciphertext
…
64 bit
64 bit
64 bit
64 bit
64 bit
7
Faculty of Information Technology Page
DES Overview
ขัน้ตอนการท างานของ DES Algorithm บน Data Block โดยสงัเขป
1) Data Block ขนาด 64 bits จะถกูสลบัต าแหน่ง (สลบับิต)เรียกขัน้ตอนน้ีว่า
Initial Permutation (IP)
2) Data Block ถกูด าเนินการอีก 16 รอบ แต่ละรอบมีการแทนท่ีบิต
(substitution) และการสลบับิต (permutation) โดยใช ้key ขนาด 48 bits
3) Data Block ถกูสลบัคร่ึงแรกของบล็อคกบัคร่ึงหลงัของบล็อค
4) Data Block ถกูสลบับิตแบบกลบัทิศทางกบัขัน้ตอนแรก เรียกว่า Inverse
Initial Permutation
ขัน้ตอนการท างานของ DES Algorithm บน Key Block โดยสงัเขป
a) Key Block ขนาด 64 bits จะถกูสลบับิตเรียกขัน้ตอนน้ีว่า Permutation
Choice 1 (PC1) โดยเลือก 56 bits ออกมาจาก 64 bits แลว้แบ่งคร่ึงเป็น
คร่ึงละ 28 bits
b) Key Block ถกูด าเนินการอีก 16 รอบ แต่ละรอบมีการวนบิตไปทางซา้ยแบบ
เป็นวงกลม (Left Circular Shift) และการสลบับิต (permutation) เพ่ือสรา้ง
key ขนาด 48 bits ส าหรบัการด าเนินการบน Data Block ขัน้ 2)
8
Faculty of Information Technology Page
Round 1
Round 0
รอบการท างานบน Data Block
การด าเนินงานบน Data Block แต่ละรอบใน 16 รอบ เป็นดงัน้ี
L0 (32 bits) R0 (32 bits)
f
XOR
R1=(L0 XOR f(R0,K1)) L1=R0
K1
f
XOR
R2=(L1 XOR f(R1,K2)) L2=R3
K2
64-bit
9
Faculty of Information Technology Page
รอบการท างานบน Data Block
แต่ละรอบของการท างาน (Round 0 – 15)
ขอ้มูลในส่วนทางขวา (Ri) 32 bits และคียย่์อย K ของรอบนัน้ๆ จะถกู
น ามาด าเนินการผ่านฟังกช์ัน่ f ไดผ้ลลพัธเ์ป็น f(Ri,K
i-1)
ผลลพัธท่ี์ไดจ้ากทัง้ส่วนทางซา้ย (Li) และขวา f(R
i,K
i-1) จะถกูน ามา
รวมกนัแบบ XOR
ผลลพัธท่ี์ไดจ้ากการ XOR จะถกูใชเ้ป็นขอ้มูลส่วนทางขวาของรอบใหม่
(Ri+1
) และขอ้มูลของส่วนทางขวาเดิม (Ri) ก็จะกลายเป็นขอ้มูลส่วนซา้ย
ของวงรอบใหม่ (Li+1
)
10
Faculty of Information Technology Page
รอบการท างานบน Data Block
ฟังกช์ัน่ f ท าหนา้ท่ีดงัน้ี
ฟังกช์ัน่ f ท าการขยายขอ้มูลในส่วนทางขวา (Ri) 32 bitsใหก้ลายเป็น
ขอ้มูลขนาด 48 bits พรอ้มทัง้เล่ือนบิตของ Key ซ่ึงมีเพียง 48 bits (จาก
เดิม 56 bits) จากนัน้จึงน าขอ้มูลมารวมกบั key ดว้ยการ XOR
ผลลพัธข์นาด 48 bits ท่ีไดจ้ากการรวม จะถกูน าไปท าการแทนท่ี
(substitution) อีก 8 ครัง้ ผลลพัธจ์ากการแทนท่ีจะเหลือขอ้มูลเพียง 32
bits เท่านัน้
ผลลพัธจ์ากการแทนท่ีจะถกูสลบัต าแหน่ง (Permutation) อีกครัง้
หน่ึงรอบของการท าฟังกช์ัน่ f จะประกอบดว้ยขบวนการขา้งตน้ทัง้หมด 4
ครัง้
11
Faculty of Information Technology Page
รอบการท างานบน Data Block
โครงสรา้งของฟังกช์ัน่ f ในรอบการท างาน
การท างานของฟังกช์ัน่ f ประกอบดว้ย S-box ทัง้หมด
8 กล่อง แต่ละกล่องท าหนา้ท่ี map ขอ้มูล 6 bits ไป
เป็น 4 bits เช่น S(18 09 12 3d 11 17 38 39) =
5fd25e03
12
Faculty of Information Technology Page
ภาพรวม
รอบการท างานบน
Data Block
13
Faculty of Information Technology Page
รอบการท างานบน Key Block
อีกดา้นหน่ึงของการท างานใน DES คือการสรา้ง subkeys เพ่ือใชใ้นแต่ละ
รอบ ซ่ึงประกอบดว้ยขัน้ตอน ต่อไปน้ี
‣ การสลบับิตของ key ในขัน้ตน้ เรียกว่าเป็น initial permutation
(Permutation Choice 1, PC1) ซ่ึงท าการเลือก 56bits โดยแบ่งคร่ึงเป็น 2
ส่วน คร่ึงละ 28bit
‣ รอบ 16 รอบประกอบดว้ย:
• หมุนส่วน 28 bit แต่ละส่วนโดยเล่ือนบิตไป 1 หรือ 2 ต าแหน่ง ข้ึนกบั key
rotation schedule
• เลือก 24 bits จากแต่ละคร่ึง แลว้สลบับิตดว้ย PC2 จากนัน้จึงน าไปใช้
ด าเนินการกบั data block ในรอบนัน้ๆ
14
Faculty of Information Technology Page
DES Decryption
โดยปกติแลว้การถอดรหสั (decryption) ส าหรบั Block Cipher จะเป็น
การยอ้นการท างานของการเขา้รหสั (encryption)
แต่ DES ถกูออกแบบมาอย่างดี ท าใหอ้ลักอริทึมการถอดรหสั
(decryption) เป็นอลักอริทึมเดียวกบัการเขา้รหสั (encryption) มีล าดบั
การท างานเหมือนกนั เพียงแต่ใช ้subkeys (K1 … K16) ในล าดบักลบักนั
เท่านัน้
ดงันัน้ในการ decryption เราสามารถใช ้Hardware ชุดเดียวกนักบัการ
Encryption ไดโ้ดยป้อน subkeys ตามล าดบั K16 … K1
‣ สะดวกต่อการใชง้าน และประหยดัค่าใชจ่้าย
15
Faculty of Information Technology Page
DES Decryption
DES decryption สามารถหกัลา้ง DES Encryption ไดด้งัน้ี
‣ ขัน้ตอน Initial Permutation ซ่ึงเป็นขัน้ตอนแรกของการ decryption ลบลา้ง
ขัน้ตอน Inverse Initial Permutation ซ่ึงเป็นขัน้ตอนสุดทา้ยของการ
encryption
‣ Round 0 โดยใช ้K16
เป็นการลบลา้ง Round 15 ของ encryption
‣ ….
‣ Round 15 โดยใช ้K1 เป็นการลบลา้ง Round 0 ของ encryption
‣ ขัน้ตอน Inverse Initial Permutation ซ่ึงเป็นขัน้ตอนสุดทา้ยของการ
decryption ลบลา้งขัน้ตอน Initial Permutation ซ่ึงเป็นขัน้ตอนแรกของการ
encryption
‣ สุดทา้ย จะได ้plaintext ขนาด 64 bits กลบัคืนมา
16
Faculty of Information Technology Page
Avalanche Effect
Avalanche Effect เป็นคณุสมบติัท่ีเป็นท่ีตอ้งการ ส าหรบั encryption
algorithm
เม่ือเปล่ียน input หรือ key ไปเพียง 1 bit ก็จะเปล่ียน bits ของ output
ไปประมาณคร่ึงหน่ึง
DES ให ้Avalanche Effect ท่ีดี
17
Faculty of Information Technology Page
Strength of DES – Key Size
Key ขนาด 56-bit ใหค่้าท่ีเป็นไปไดท้ัง้หมด 256 = 7.2 x 1016 ค่า
การโจมตีแบบ brute force search เป็นไปไดย้าก
อย่างไรก็ตาม มีการคน้พบว่า การท า brute force search บน key ของ
DES Algorithm เป็นไปได ้
‣ ปี 1997 บริษทั Distribution.net ใชร้ะบบบน Internet สามารถท าไดภ้ายใน
เวลา 41 วนั
‣ ปี 1998 บริษทั EFF สรา้ง hardware เฉพาะส าหรบัแกปั้ญหาน้ี ท าไดภ้ายใน
เวลา 56 ชัว่โมง
‣ ปี 1999 Distribution.net และบริษทั EFF ก็จบัมือกนัและใชค้อมพิวเตอรก์ว่า
100,000 เคร่ืองทัว่โลกสามารถแคร็ก DES ไดใ้น 22 ชัว่โมง 15 นาที
จึงตอ้งหาทางเลือกในการ encryption ท่ีแข็งแกร่งกว่า DES
18
Faculty of Information Technology Page
ทางเลือกท่ีแข็งแกร่งกว่า DES
การขยาย Key ของ DES จาก 64 bits ใหเ้ป็น 128 bits เพ่ือจะไดใ้ชเ้วลา
ในการ crack นานข้ึน
‣ ปัจจุบนั DES แบ่งออกเป็น DES 64 Bit และ DES 128 Bit
แต่ถึงแมว่้าจะใช ้128 bit ก็ตาม DES ก็ยงัสามารถถกู crack ได ้จึงไดมี้
การพฒันาใหมี้ Triple-DES (3DES) ท่ีมีความแข็งแกร่งมากข้ึน
19
Faculty of Information Technology Page
Triple-DES (3DES) with Two-Keys
Triple-DES เป็นการเขา้รหสัท่ีถกูสรา้งมาเพ่ือแกปั้ญหาความอ่อนแอของ
DES โดย Triple-DES จะช่วยเสริมความปลอดภยัใหก้ารเขา้รหสัมี
ปลอดภยัมากข้ึน
ใชอ้ลักอริทึม DES เป็นจ านวน 3 ครัง้เพ่ือท าการเขา้รหสั
ใช ้key เพียง 2 คียใ์นการท า Encryption ดว้ยล าดบั Encrypt-Decrypt-
Encrypt
‣ หาก K1 = K2 จะกลายเป็น DES ธรรมดา
ความแข็งแกร่งน้ีจึงท าให ้Triple-DES เป็นอีกหน่ึงในมาตรฐานในการ
เขา้รหสัในปัจจุบนั
C = EK1(DK2(EK1(P)))
20
Faculty of Information Technology Page
Triple-DES (3DES) with Two-Keys
กระบวนการ Encryption แบบ 3DES อาจใช ้Key เพียง 2 คีย ์
DES Encryption
DES Decryption
DES Encryption
64-bit Plaintext
64-bit Ciphertext
Key 1
Key 2
Key 1
21
Faculty of Information Technology Page
AES (Advance Encryption Standard)
AES (Advance Encryption Standard) เป็นการเขา้รหสัท่ีพฒันาข้ึนมาเพ่ือ
ใชท้ดแทน DES หลงัจากท่ี DES ถกู break ได ้โครงการพฒันา AES ได้
เร่ิมตน้เม่ือปี 1997 โดย NIST
ในปี 1998 NIST ก็ใหน้กัวิทยาการหสัลบัทัว่โลกส่งอลักอริทึมเขา้มาเพ่ือ
คดัเลือกโดยก าหนดใหใ้ช ้data block ขนาด 128 bit เป็นมาตรฐาน
อลักอริทึมต่างถกูคดัเลือกเขา้มาทัง้ส้ิน 15 อลักอริทึม และมีอยู่ 5
อลักอริทึมท่ีผ่านเขา้รอบชิง
อลักอริทึมของ Rijndael ชนะการคดัเลือก เน่ืองจากเป็นอลักอริทึมท่ีเร็ว
กว่าและซบัซอ้นนอ้ยกว่า แต่ไดค้วามปลอดภยัเท่ากนั
Rijndael Algorithm กลายเป็น RFC 3826 และเม่ือปี 2004 ขอ้ก าหนดใน
มาตรฐานล่าสุดอนุญาตใหใ้ช ้AES เขา้รหัสขอ้มูลโดยใช ้Key ทีม่ขีนาดตา่ง
ๆ ได ้ซ่ึงไดแ้ก่ 128 Bit, 192 Bit และ 256 Bit
22
Faculty of Information Technology Page
การท างานของ AES
AES เป็นการด าเนินการบน Bytes จึงท าใหง่้ายในการพฒันาระบบ และมี
ความรวดเร็วในการเขา้และถอดรหสั
Data Block ขนาด 128 bits = 16 bytes
‣ มอง Data Block 16 bytes เป็นตารางขนาด 4 x 4
‣ สถานะปัจจุบนัของ bytes ในตาราง เรียกว่าเป็น Current State
‣ Current State (สถานะของตาราง bytes) จะถกูด าเนินการทัง้หมด 10 รอบ
ท าใหค่้าใหต้ารางเปล่ียนไป เม่ือส้ินสุดการท างานตาราง Current State จะเก็บ
ciphertext ท่ีไดจ้ากการ encryption
in0
in1
in2
in3
in4
in5
in6
in7
in8
in9
in10
in11
in12
in13
in14
in15
s0,0 s0,1 s0,2 s0,3
s10 s1,1 s1,2 s1,3
s2,0 s2,1 s2,2 s2,3
s3,0 s3,1 s3,2 s3,3
s0,0 s0,1 s0,2 s0,3
s10 s1,1 s1,2 s1,3
s2,0 s2,1 s2,2 s2,3
s3,0 s3,1 s3,2 s3,3
out0
out1
out2
out3
out4
out5
out6
out7
out8
out9
out10
out11
out12
out13
out14
out15
input output State Array
23
Faculty of Information Technology Page
การท างานของ AES
Key Block ขนาด 128 bits = 16 bytes
‣ มอง Key Block 16 bytes เป็นตาราง
ขนาด 4 x 4
‣ Key จะถกูขยาย (Key Expansion)
ใหเ้ป็นอารเ์รยข์อง word ขนาด 44 words
(1 word = 32 bits = 4 bytes)
k0
k1
k2
k3
k4
k5
k6
k7
k8
k9
k10
k11
k12
k13
k14
k15
w0 w43 w1 …
k0
k1
k2
k3
k4
k5
k6
k7
k8
k9
k10
k11
k12
k13
k14
k15
Key Expansion
w0 w1 w2 w3
w4 w5 w6 w7
+
f
+ + +
แต่ละรอบของ Key Expansion
24
Faculty of Information Technology Page
การท างานของ AES
วงรอบการท างานของ AES แบ่งเป็น 3 ส่วนหลกัไดแ้ก่
รอบเร่ิมตน้ (Initial Round)
‣ ประกอบดว้ยขัน้ตอน AddRoundKey
รอบระหว่างกลาง (Rounds) รวม 9 รอบ
‣ ประกอบดว้ยขัน้ตอน SubBytes, ShiftRows, MixColumns และ AddRoundKey
รอบสุดทา้ย (Final Rounds)
‣ ประกอบดว้ยขัน้ตอน SubBytes, ShiftRows และ AddRoundKey (ไม่มี
MixColumns)
ทกุรอบมีการใช ้round key (sub-key จาก key expansion) ขนาด 4
words รวม 11 รอบ ใชท้ัง้หมด 11 sub-keys รวม 44 words
25
Faculty of Information Technology Page
AES
รอบสดุท้าย (Final Round) ไม่มี Mix Columns
รอบระหว่างกลาง (Rounds)
รอบเร่ิมต้น (Initial Round)
26
Faculty of Information Technology Page
การท างานของ AES
กระบวนการ AddRoundKey
‣ เป็นการเอาขอ้มูลมา XOR กบั key
‣ ขัน้ตอนน้ีมีอยู่ในทุก round ของการท างาน
ข้อมลู
Key ขนาด 4 words = 16 bytes
w 27
Faculty of Information Technology Page
การท างานของ AES
กระบวนการ SubBytes
‣ เป็น non-linear substitution ซ่ึงแต่ละไบตจ์ะถกูแทนท่ีดว้ยไบตท่ี์ไดจ้าก
lookup table
‣ ขัน้ตอนน้ีมีอยู่ในรอบระหว่างกลาง และรอบสุดทา้ยของการท างาน
ข้อมลู
28
Faculty of Information Technology Page
การท างานของ AES
กระบวนการ ShiftRows
‣ เป็นการเล่ือนไบตใ์นแต่ละแถว ซ่ึงจะท าเฉพาะแถวท่ี 2, 3 และ 4
‣ ขัน้ตอนน้ีมีอยู่ในรอบระหว่างกลาง และรอบสุดทา้ยของการท างาน
ข้อมลู
29
Faculty of Information Technology Page
การท างานของ AES
กระบวนการ MixColumns
‣ เป็นการผสมรวม 4 ไบตภ์ายในคอลมัน ์ผ่านการคณูเมตริกต ์
‣ ขัน้ตอนน้ีมีอยู่ในรอบระหว่างกลางของการท างาน เท่านัน้
ข้อมลู
30