30
Faculty of Information Technology Page IT346 Information System Security Week 3-1: Symmetric-Key Cryptography .พงษ์ศักดิ ไผ่แดง 1

Information system security wk1-1

Embed Size (px)

Citation preview

Page 1: Information system security wk1-1

Faculty of Information Technology Page

IT346 Information System Security

Week 3-1: Symmetric-Key Cryptography

อ.พงษศ์กัด์ิ ไผ่แดง

1

Page 2: Information system security wk1-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 คือการสรา้งตวัแทนขอ้มลู

Page 3: Information system security wk1-1

Faculty of Information Technology Page

Cryptography

Cryptanalysis หมายถึงการพยายามวิเคราะหเ์พ่ือศึกษาประเด็นต่างๆท่ี

เก่ียวขอ้งกบั Cryptography

Sensitive Data หมายถึงขอ้มูลส าคญัท่ีถือว่าเป็นความลบัไม่สามารถ

แพร่งพรายออกสู่ภายนอกได ้

Page 4: Information system security wk1-1

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

Page 5: Information system security wk1-1

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

Page 6: Information system security wk1-1

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

Page 7: Information system security wk1-1

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

Page 8: Information system security wk1-1

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

Page 9: Information system security wk1-1

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

Page 10: Information system security wk1-1

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

Page 11: Information system security wk1-1

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

Page 12: Information system security wk1-1

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

Page 13: Information system security wk1-1

Faculty of Information Technology Page

ภาพรวม

รอบการท างานบน

Data Block

13

Page 14: Information system security wk1-1

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

Page 15: Information system security wk1-1

Faculty of Information Technology Page

DES Decryption

โดยปกติแลว้การถอดรหสั (decryption) ส าหรบั Block Cipher จะเป็น

การยอ้นการท างานของการเขา้รหสั (encryption)

แต่ DES ถกูออกแบบมาอย่างดี ท าใหอ้ลักอริทึมการถอดรหสั

(decryption) เป็นอลักอริทึมเดียวกบัการเขา้รหสั (encryption) มีล าดบั

การท างานเหมือนกนั เพียงแต่ใช ้subkeys (K1 … K16) ในล าดบักลบักนั

เท่านัน้

ดงันัน้ในการ decryption เราสามารถใช ้Hardware ชุดเดียวกนักบัการ

Encryption ไดโ้ดยป้อน subkeys ตามล าดบั K16 … K1

‣ สะดวกต่อการใชง้าน และประหยดัค่าใชจ่้าย

15

Page 16: Information system security wk1-1

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

Page 17: Information system security wk1-1

Faculty of Information Technology Page

Avalanche Effect

Avalanche Effect เป็นคณุสมบติัท่ีเป็นท่ีตอ้งการ ส าหรบั encryption

algorithm

เม่ือเปล่ียน input หรือ key ไปเพียง 1 bit ก็จะเปล่ียน bits ของ output

ไปประมาณคร่ึงหน่ึง

DES ให ้Avalanche Effect ท่ีดี

17

Page 18: Information system security wk1-1

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

Page 19: Information system security wk1-1

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

Page 20: Information system security wk1-1

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

Page 21: Information system security wk1-1

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

Page 22: Information system security wk1-1

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

Page 23: Information system security wk1-1

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

Page 24: Information system security wk1-1

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

Page 25: Information system security wk1-1

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

Page 26: Information system security wk1-1

Faculty of Information Technology Page

AES

รอบสดุท้าย (Final Round) ไม่มี Mix Columns

รอบระหว่างกลาง (Rounds)

รอบเร่ิมต้น (Initial Round)

26

Page 27: Information system security wk1-1

Faculty of Information Technology Page

การท างานของ AES

กระบวนการ AddRoundKey

‣ เป็นการเอาขอ้มูลมา XOR กบั key

‣ ขัน้ตอนน้ีมีอยู่ในทุก round ของการท างาน

ข้อมลู

Key ขนาด 4 words = 16 bytes

w 27

Page 28: Information system security wk1-1

Faculty of Information Technology Page

การท างานของ AES

กระบวนการ SubBytes

‣ เป็น non-linear substitution ซ่ึงแต่ละไบตจ์ะถกูแทนท่ีดว้ยไบตท่ี์ไดจ้าก

lookup table

‣ ขัน้ตอนน้ีมีอยู่ในรอบระหว่างกลาง และรอบสุดทา้ยของการท างาน

ข้อมลู

28

Page 29: Information system security wk1-1

Faculty of Information Technology Page

การท างานของ AES

กระบวนการ ShiftRows

‣ เป็นการเล่ือนไบตใ์นแต่ละแถว ซ่ึงจะท าเฉพาะแถวท่ี 2, 3 และ 4

‣ ขัน้ตอนน้ีมีอยู่ในรอบระหว่างกลาง และรอบสุดทา้ยของการท างาน

ข้อมลู

29

Page 30: Information system security wk1-1

Faculty of Information Technology Page

การท างานของ AES

กระบวนการ MixColumns

‣ เป็นการผสมรวม 4 ไบตภ์ายในคอลมัน ์ผ่านการคณูเมตริกต ์

‣ ขัน้ตอนน้ีมีอยู่ในรอบระหว่างกลางของการท างาน เท่านัน้

ข้อมลู

30