View
188
Download
2
Category
Preview:
DESCRIPTION
If you have question Message me!
Citation preview
Faculty of Information Technology Page 1
IT346 Information System Security
Week 3-1: Symmetric-Key Cryptography
อ.พงษ์�ศั�กดิ์� ไผ่�แดิ์ง
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 หมายถึ�งการพยายามวิเคำราะห�
เพ(!อศั�กษ์าประเดิ์0นต�างๆท !เก !ยวิขี)องก�บ Cryptography
Sensitive Data หมายถึ�งขี)อม*ลัส�าคำ�ญท !ถึ(อวิ�าเป3นคำวิามลั�บไม�สามารถึแพร�งพรายออกส*�ภายนอกไดิ์)
Faculty of Information Technology Page
Symmetric-Key Cryptography
Plaintext –ขี)อม*ลัต)นฉบ�บ Encryption algorithm –ดิ์�าเนนการแทนท !
(substitutions) หร(อ แปลังขี)อม*ลั (transformations) บน plaintext
Secret Key –คำวิบคำ6มการ substitutions/transformationsท !เกดิ์ขี�7นในกระบวินการ encryption
Ciphertext – ขี)อม*ลัท !ถึ*กแปลังดิ์)วิย substitutions/transformationsแลั)วิ
Decryption – กระบวินการย)อนกลั�บขีอง encryption
คำวิามแขี0งแกร�งขีอง encryption อย*�ท !การร�กษ์าคำวิามลั�บขีอง keyท !ใช้)
4
Encryption
Decryption
Plaintext Ciphertext PlaintextKey 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 เป3นการเขี)ารห�ส แบบบลั0อคำ (Block cipher) ท !พ�ฒนามาจากอ�ลักอรท�ม Lucifer ขีอง IBM โดิ์ย Lucifer ไดิ์)ร�บการพ�ฒนาเพ!มคำวิามสามารถึแลัะเปลั !ยนช้(!อเป3น DES แลั)วิไดิ์)ร�บการน�าเสนอต�อ US NIST (US National Institute of Standards and Technology) ให)กลัายเป3นมาตรฐานการเขี)ารห�ส
DES เป3นอ�ลักอรท�มแบบบลั0อก (Block Cipher) ใช้) Key ขีนาดิ์คำวิามยาวิ 56 bits ดิ์�าเนนการบนบลั0อคำขี)อม*ลั (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 ขี�7นตอนการท�างานขีอง DES Algorithm บน
Data Block โดิ์ยส�งเขีป1)Data Block ขีนาดิ์ 64 bits จะถึ*กสลั�บต�าแหน�ง
(สลั�บบต)เร ยกขี�7นตอนน 7วิ�า Initial Permutation (IP)
2)Data Block ถึ*กดิ์�าเนนการอ ก 16 รอบ แต�ลัะรอบม การแทนท !บต (substitution) แลัะการสลั�บบต (permutation) โดิ์ยใช้) key ขีนาดิ์ 48 bits
3)Data Block ถึ*กสลั�บคำร�!งแรกขีองบลั0อคำก�บคำร�!งหลั�งขีองบลั0อคำ
4)Data Block ถึ*กสลั�บบตแบบกลั�บทศัทางก�บขี�7นตอนแรก เร ยกวิ�า Inverse Initial Permutation
ขี�7นตอนการท�างานขีอง DES Algorithm บน Key Block โดิ์ยส�งเขีปa)Key Block ขีนาดิ์ 64 bits จะถึ*กสลั�บบตเร ยกขี�7น
ตอนน 7วิ�า Permutation Choice 1 (PC1) โดิ์ยเลั(อก 56 bits ออกมาจาก 64 bits แลั)วิแบ�งคำร�!งเป3นคำร�!งลัะ 28 bits
b)Key Block ถึ*กดิ์�าเนนการอ ก 16 รอบ แต�ลัะรอบม การวินบตไปทางซ่)ายแบบเป3นวิงกลัม (Left Circular Shift) แลัะการสลั�บบต (permutation) เพ(!อสร)าง key ขีนาดิ์ 48 bits ส�าหร�บการดิ์�าเนนการบน Data Block ขี�7น 2)
8
Faculty of Information Technology Page
Round 1
Round 0
รอบการท�างานบน Data Block การดิ์�าเนนงานบน Data Block แต�ลัะรอบใน
16 รอบ เป3นดิ์�งน 7L0 (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 ขีองรอบน�7นๆ จะถึ*กน�ามาดิ์�าเนนการผ่�านฟั;งก�ช้�!น f ไดิ์)ผ่ลัลั�พธ์�เป3น f(Ri,Ki-1)
ผ่ลัลั�พธ์�ท !ไดิ์)จากท�7งส�วินทางซ่)าย (Li) แลัะขีวิา f(Ri,Ki-1) จะถึ*กน�ามารวิมก�นแบบ XOR
ผ่ลัลั�พธ์�ท !ไดิ์)จากการ XOR จะถึ*กใช้)เป3นขี)อม*ลัส�วินทางขีวิาขีองรอบใหม� (Ri+1) แลัะขี)อม*ลัขีองส�วินทางขีวิาเดิ์ม (Ri) ก0จะกลัายเป3นขี)อม*ลัส�วินซ่)ายขีองวิงรอบใหม� (Li+1)
10
Faculty of Information Technology Page
รอบการท�างานบน Data Blockฟั;งก�ช้�!น f ท�าหน)าท !ดิ์�งน 7
ฟั;งก�ช้�!น f ท�าการขียายขี)อม*ลัในส�วินทางขีวิา (Ri) 32 bitsให)กลัายเป3นขี)อม*ลัขีนาดิ์ 48 bits พร)อมท�7งเลั(!อนบตขีอง Key ซ่�!งม เพ ยง 48 bits (จากเดิ์ม 56 bits) จากน�7นจ�งน�าขี)อม*ลัมารวิมก�บ key ดิ์)วิยการ XOR
ผ่ลัลั�พธ์�ขีนาดิ์ 48 bits ท !ไดิ์)จากการรวิม จะถึ*กน�าไปท�าการแทนท ! (substitution) อ ก 8 คำร�7ง ผ่ลัลั�พธ์�จากการแทนท !จะเหลั(อขี)อม*ลัเพ ยง 32 bits เท�าน�7น
ผ่ลัลั�พธ์�จากการแทนท !จะถึ*กสลั�บต�าแหน�ง (Permutation) อ กคำร�7ง
หน�!งรอบขีองการท�าฟั;งก�ช้�!น f จะประกอบดิ์)วิยขีบวินการขี)างต)นท�7งหมดิ์ 4 คำร�7ง
11
Faculty of Information Technology Page
รอบการท�างานบน Data Block โคำรงสร)างขีองฟั;งก�ช้�!น f ในรอบการท�างาน
การท�างานขีองฟั;งก�ช้�!น f ประกอบดิ์)วิย S-box ท�7งหมดิ์ 8 กลั�อง แต�ลัะกลั�องท�าหน)าท ! map ขี)อม*ลั 6 bits ไปเป3น 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 เพ(!อใช้)ในแต�ลัะรอบ ซ่�!งประกอบดิ์)วิยขี�7นตอน ต�อไปน 7‣ การสลั�บบตขีอง key ในขี�7นต)น เร ยกวิ�าเป3น initial
permutation (Permutation Choice 1, PC1) ซ่�!งท�าการเลั(อก 56bits โดิ์ยแบ�งคำร�!งเป3น 2 ส�วิน คำร�!งลัะ 28bit
‣ รอบ 16 รอบประกอบดิ์)วิย: • หม6นส�วิน 28 bit แต�ลัะส�วินโดิ์ยเลั(!อนบตไป 1 หร(อ 2
ต�าแหน�ง ขี�7นก�บ key rotation schedule• เลั(อก 24 bits จากแต�ลัะคำร�!ง แลั)วิสลั�บบตดิ์)วิย PC2
จากน�7นจ�งน�าไปใช้)ดิ์�าเนนการก�บ data block ในรอบน�7นๆ
14
Faculty of Information Technology Page
DES Decryption โดิ์ยปกตแลั)วิการถึอดิ์รห�ส (decryption)
ส�าหร�บ Block Cipher จะเป3นการย)อนการท�างานขีองการเขี)ารห�ส (encryption)
แต� DES ถึ*กออกแบบมาอย�างดิ์ ท�าให)อ�ลักอรท�มการถึอดิ์รห�ส (decryption) เป3นอ�ลักอรท�มเดิ์ ยวิก�บการเขี)ารห�ส (encryption) ม ลั�าดิ์�บการท�างานเหม(อนก�น เพ ยงแต�ใช้) subkeys (K1 … K16) ในลั�าดิ์�บกลั�บก�นเท�าน�7น
ดิ์�งน�7นในการ decryption เราสามารถึใช้) Hardware ช้6ดิ์เดิ์ ยวิก�นก�บการ Encryption ไดิ์)โดิ์ยป-อน subkeys ตามลั�าดิ์�บ K16 … K1‣ สะดิ์วิกต�อการใช้)งาน แลัะประหย�ดิ์คำ�าใช้)จ�าย 1
5
Faculty of Information Technology Page
DES Decryption DES decryption สามารถึห�กลั)าง DES
Encryption ไดิ์)ดิ์�งน 7‣ ขี�7นตอน Initial Permutation ซ่�!งเป3นขี�7นตอน
แรกขีองการ decryption ลับลั)างขี�7นตอน Inverse Initial Permutation ซ่�!งเป3นขี�7นตอนส6ดิ์ท)ายขีองการ encryption
‣ Round 0 โดิ์ยใช้) K16 เป3นการลับลั)าง Round 15 ขีอง encryption
‣ ….‣ Round 15 โดิ์ยใช้) K1 เป3นการลับลั)าง Round 0
ขีอง encryption ‣ ขี�7นตอน Inverse Initial Permutation ซ่�!ง
เป3นขี�7นตอนส6ดิ์ท)ายขีองการ decryption ลับลั)างขี�7นตอน Initial Permutation ซ่�!งเป3นขี�7นตอนแรกขีองการ encryption
‣ ส6ดิ์ท)าย จะไดิ์) plaintext ขีนาดิ์ 64 bits กลั�บคำ(นมา
16
Faculty of Information Technology Page
Avalanche Effect Avalanche Effect เป3นคำ6ณสมบ�ตท !เป3นท !
ต)องการ ส�าหร�บ encryption algorithm เม(!อเปลั !ยน input หร(อ key ไปเพ ยง 1 bit ก0จะ
เปลั !ยน bits ขีอง output ไปประมาณคำร�!งหน�!ง DES ให) Avalanche Effect ท !ดิ์
17
Faculty of Information Technology Page
Strength of DES – Key Size
Key ขีนาดิ์ 56-bit ให)คำ�าท !เป3นไปไดิ์)ท�7งหมดิ์ 256 = 7.2 x 1016 คำ�า
การโจมต แบบ brute force search เป3นไปไดิ์)ยาก
อย�างไรก0ตาม ม การคำ)นพบวิ�า การท�า brute force search บน key ขีอง DES Algorithm เป3นไปไดิ์)‣ ป> 1997 บรษ์�ท Distribution.net ใช้)ระบบบน
Internet สามารถึท�าไดิ์)ภายในเวิลัา 41 วิ�น‣ ป> 1998 บรษ์�ท EFF สร)าง hardware เฉพาะ
ส�าหร�บแก)ป;ญหาน 7 ท�าไดิ์)ภายในเวิลัา 56 ช้�!วิโมง ‣ ป> 1999 Distribution.net แลัะบรษ์�ท EFF ก0
จ�บม(อก�นแลัะใช้)คำอมพวิเตอร�กวิ�า 100,000 เคำร(!องท�!วิโลักสามารถึแคำร0ก DES ไดิ์)ใน 22 ช้�!วิโมง 15 นาท
จ�งต)องหาทางเลั(อกในการ encryption ท !แขี0งแกร�งกวิ�า DES
18
Faculty of Information Technology Page
ทางเลั(อกท !แขี0งแกร�งกวิ�า DES
การขียาย Key ขีอง DES จาก 64 bits ให)เป3น 128 bits เพ(!อจะไดิ์)ใช้)เวิลัาในการ crack นานขี�7น‣ ป;จจ6บ�น DES แบ�งออกเป3น DES 64 Bit แลัะ
DES 128 Bit แต�ถึ�งแม)วิ�าจะใช้) 128 bit ก0ตาม DES ก0ย�ง
สามารถึถึ*ก crack ไดิ์) จ�งไดิ์)ม การพ�ฒนาให)ม Triple-DES (3DES) ท !ม คำวิามแขี0งแกร�งมากขี�7น
19
Faculty of Information Technology Page
Triple-DES (3DES) with Two-Keys
Triple-DES เป3นการเขี)ารห�สท !ถึ*กสร)างมาเพ(!อแก)ป;ญหาคำวิามอ�อนแอขีอง DES โดิ์ย Triple-DES จะช้�วิยเสรมคำวิามปลัอดิ์ภ�ยให)การเขี)ารห�สม ปลัอดิ์ภ�ยมากขี�7น
ใช้)อ�ลักอรท�ม DES เป3นจ�านวิน 3 คำร�7งเพ(!อท�าการเขี)ารห�ส
ใช้) key เพ ยง 2 คำ ย�ในการท�า Encryption ดิ์)วิยลั�าดิ์�บ Encrypt-Decrypt-Encrypt
‣ หาก K1 = K2 จะกลัายเป3น DES ธ์รรมดิ์า
คำวิามแขี0งแกร�งน 7จ�งท�าให) Triple-DES เป3นอ กหน�!งในมาตรฐานในการเขี)ารห�สในป;จจ6บ�น
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)
เป3นการเขี)ารห�สท !พ�ฒนาขี�7นมาเพ(!อใช้)ทดิ์แทน DES หลั�งจากท ! DES ถึ*ก break ไดิ์) โคำรงการพ�ฒนา AES ไดิ์)เร!มต)นเม(!อป> 1997 โดิ์ย NIST
ในป> 1998 NIST ก0ให)น�กวิทยาการห�สลั�บท�!วิโลักส�งอ�ลักอรท�มเขี)ามาเพ(!อคำ�ดิ์เลั(อกโดิ์ยก�าหนดิ์ให)ใช้) data block ขีนาดิ์ 128 bit เป3นมาตรฐาน
อ�ลักอรท�มต�างถึ*กคำ�ดิ์เลั(อกเขี)ามาท�7งส7น 15 อ�ลักอรท�ม แลัะม อย*� 5 อ�ลักอรท�มท !ผ่�านเขี)ารอบช้ง
อ�ลักอรท�มขีอง Rijndael ช้นะการคำ�ดิ์เลั(อก เน(!องจากเป3นอ�ลักอรท�มท !เร0วิกวิ�าแลัะซ่�บซ่)อนน)อยกวิ�า แต�ไดิ์)คำวิามปลัอดิ์ภ�ยเท�าก�น
Rijndael Algorithm กลัายเป3น RFC 3826 แลัะเม(!อป> 2004 ขี)อก�าหนดิ์ในมาตรฐานลั�าส6ดิ์อน6ญาตให)ใช้) AES เขี)ารห�สขี)อม*ลัโดิ์ยใช้) Key ท !ม ขีนาดิ์ต�าง ๆ ไดิ์) ซ่�!งไดิ์)แก� 128 Bit, 192 Bit แลัะ 256 Bit
22
Faculty of Information Technology Page
การท�างานขีอง AES AES เป3นการดิ์�าเนนการบน Bytes จ�งท�าให)ง�าย
ในการพ�ฒนาระบบ แลัะม คำวิามรวิดิ์เร0วิในการเขี)าแลัะถึอดิ์รห�ส
Data Block ขีนาดิ์ 128 bits = 16 bytes‣ มอง Data Block 16 bytes เป3นตารางขีนาดิ์ 4
x 4 ‣ สถึานะป;จจ6บ�นขีอง bytes ในตาราง เร ยกวิ�าเป3น
Current State‣ Current State (สถึานะขีองตาราง bytes) จะ
ถึ*กดิ์�าเนนการท�7งหมดิ์ 10 รอบ ท�าให)คำ�าให)ตารางเปลั !ยนไป เม(!อส7นส6ดิ์การท�างานตาราง Current State จะเก0บ 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 outputState Array
23
Faculty of Information Technology Page
การท�างานขีอง AES Key Block ขีนาดิ์ 128
bits = 16 bytes‣ มอง Key Block 16
bytes เป3นตารางขีนาดิ์ 4 x 4
‣ Key จะถึ*กขียาย (Key Expansion) ให)เป3นอาร�เรย�ขีอง 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 w43w1 …
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น 3 ส�วินหลั�กไดิ์)แก� รอบเร!มต)น (Initial Round)
‣ ประกอบดิ์)วิยขี�7นตอน AddRoundKey รอบระหวิ�างกลัาง (Rounds) รวิม 9 รอบ
‣ ประกอบดิ์)วิยขี�7นตอน SubBytes, ShiftRows, MixColumns แลัะ AddRoundKey
รอบส6ดิ์ท)าย (Final Rounds)‣ ประกอบดิ์)วิยขี�7นตอน SubBytes, ShiftRows
แลัะ AddRoundKey (ไม�ม MixColumns)
ท6กรอบม การใช้) round key (sub-key จาก key expansion) ขีนาดิ์ 4 words รวิม 11 รอบ ใช้)ท�7งหมดิ์ 11 sub-keys รวิม 44 words
25
Faculty of Information Technology Page
AES
รอบส6ดิ์ท)าย (Final Round) ไม�ม Mix Columns
รอบระหวิ�างกลัาง (Rounds)
รอบเร!มต)น (Initial Round)
26
Faculty of Information Technology Page
การท�างานขีอง AES กระบวินการ AddRoundKey
‣ เป3นการเอาขี)อม*ลัมา XOR ก�บ key ‣ ขี�7นตอนน 7ม อย*�ในท6ก round ขีองการท�างาน
ขี)อม*ลั
Key ขีนาดิ์ 4 words= 16 bytes
w27
Faculty of Information Technology Page
การท�างานขีอง AES กระบวินการ SubBytes
‣ เป3น non-linear substitution ซ่�!งแต�ลัะไบต�จะถึ*กแทนท !ดิ์)วิยไบต�ท !ไดิ์)จาก lookup table
‣ ขี�7นตอนน 7ม อย*�ในรอบระหวิ�างกลัาง แลัะรอบส6ดิ์ท)ายขีองการท�างานขี)อม*ลั
28
Faculty of Information Technology Page
การท�างานขีอง AES กระบวินการ ShiftRows
‣ เป3นการเลั(!อนไบต�ในแต�ลัะแถึวิ ซ่�!งจะท�าเฉพาะแถึวิท ! 2, 3 แลัะ 4
‣ ขี�7นตอนน 7ม อย*�ในรอบระหวิ�างกลัาง แลัะรอบส6ดิ์ท)ายขีองการท�างาน
ขี)อม*ลั
29
Faculty of Information Technology Page
การท�างานขีอง AES กระบวินการ MixColumns
‣ เป3นการผ่สมรวิม 4 ไบต�ภายในคำอลั�มน� ผ่�านการคำ*ณเมตรกต�
‣ ขี�7นตอนน 7ม อย*�ในรอบระหวิ�างกลัางขีองการท�างาน เท�าน�7น
ขี)อม*ลั
30
Recommended