際際滷

際際滷Share a Scribd company logo
IT346 Information System Security
Week 3-1: Symmetric-Key Cryptography
犖.犖犖犖犢犖犖犖犖巌 犢犖犢犢犖犖
犖

Faculty of Information Technology

Page

1
Cryptography
 Cryptography 犖犖÷顕犖∇犖謹犖о鹸犖犖∇顕犖犖迦牽犖犖犖園肩犖ム険犖 犖÷顕犖犖迦犖犖迦硯犢犖 crypto 犖犖朽犢犖犖ム硯犢犖

犖犢犖犖 犢犖ム鍵犖犖迦硯犢犖 graph 犖犖朽犢犖犖ム硯犢犖迦犖迦牽犢犖犖 犖∇Cryptography 犖犖謹犖÷元犖犖о顕犖÷見犖÷顕犖
犖о犖 犖犖迦牽犢犖犖 犖∇犢犖犖劇犖犖犢犖犖犖犢犖犖÷弦犖モ
 Cryptography 犢犖犢犢犖犖犖迦牽犖犖犖犖犖園犖犢犖犖÷弦犖ム犖ム鍵犖犖迦牽犖犖犢犖犖 犢犖犖∇犖犖萎犖犖犖犢犖о権
犢
3 犢犖犖犢犖犢犖ム権犖朽見犖ム険犖
 Symmetric Key Cryptography 犖犖犖劇賢 Secret Key Cryptography犖犖劇賢犖犖迦牽犢犖犢犖迦牽犖犖園肩

犖犢犖犖÷弦犖ム犖犖 犖犖÷検犖迦犖b
 Asymmetric Key Cryptography 犖犖犖劇賢 Public Key Cryptography犖犖劇賢犖犖迦牽
犢犖犢犖迦牽犖犖園肩犖犢犖犖÷弦犖ム犖犖 犖犖犖÷検犖迦犖b
 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犖犖朽犢犖犢

Plaintext

Key
Encryption
E(P,K)  C

Faculty of Information Technology

Key

Ciphertext

Plaintext

Decryption
D(C,K)  P
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

Faculty of Information Technology

Page

5
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

Faculty of Information Technology

Page

6
DES Overview
64-bit Plaintext


64-bit Key

Initial Permutation

PC1

64 bit

Round 0
64 bit

Round 1



K1

48 bit

K2

48 bit

56 bit
PC2
PC2

Left Circular Shift
56 bit

64 bit

Round 15

56-bit Key

56-bit Key
Left Circular Shift
56-bit Key

K16

48 bit

PC2

56 bit

Left Circular Shift

64 bit

32-bit Swap
64 bit
Inverse Initial Permutation


64-bit Ciphertext
Faculty of Information Technology

Page

7
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)
犢
Faculty of Information Technology

Page

8
犖犖犖犖犖迦牽犖犖迦犖迦犖犖 Data Block
 犖犖迦牽犖犖迦犖犖 犖犖犖迦犖犖 Data Block 犢犖犢犖ム鍵犖犖犖犢犖 16 犖犖犖 犢犖犢 犖犖犖園犖犖朽
64-bit
Round 0

L0 (32 bits)

R0 (32 bits)

f

K1

XOR

Round 1

L1=R0

R1=(L0 XOR f(R0,K1))

f

K2

XOR

L2=R3

Faculty of Information Technology

R2=(L1 XOR f(R1,K2))

Page

9
犖犖犖犖犖迦牽犖犖迦犖迦犖犖 Data Block
犢犖犢犖ム鍵犖犖犖犖犖犖犖犖迦牽犖犖迦犖迦 (Round 0  15)
 犖犢犖犖÷弦犖ム犖犖犢犖о犖犖迦犖犖о顕 (Ri) 32 bits 犢犖ム鍵犖犖朽権犖∇犖犖 K 犖犖犖犖犖犖犖犖園犢 犖犖萎犖項
犢
犢
犖犖迦検犖迦犖迦犖犖 犖犖犖迦牽犖犢犖迦犖犖 犖犖犢犖犖 f 犢犖犢犖犖ム献犖園犖犢犢犖犢 犖 f(Ri,Ki-1)
犖園
 犖犖ム献犖園犖犢犖犢犖朽犖犢犖犖迦犖犖園犖犢犖о犖犖迦犖犢犖迦権 (Li) 犢犖ム鍵犖犖о顕 f(Ri,Ki-1) 犖犖萎犖項犖犖迦検犖
犢
犖犖о検犖犖園犢犖犖 XOR
 犖犖ム献犖園犖犢犖犖朽犢犖犢犖犖迦犖犖迦牽 XOR 犖犖萎犖項犢犖犢犢犖犢 犖犖犢犖犖÷弦犖ム肩犢犖о犖犖迦犖犖о顕犖犖犖犖犖犖犢犖犖÷
(Ri+1) 犢犖ム鍵犖犢犖犖÷弦犖ム犖犖犖犢犖о犖犖迦犖犖о顕犢犖犖巌検 (Ri) 犖犢犖犖萎犖ム顕犖∇犖犢 犖犖犢犖犖÷弦犖ム肩犢犖о犖犢犖迦権
犖犖犖犖о犖犖犖犢犖犖÷ (Li+1)

Faculty of Information Technology

Page

10
犖犖犖犖犖迦牽犖犖迦犖迦犖犖 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
犖園
犢
犖犖犖園
犢

Faculty of Information Technology

Page

11
犖犖犖犖犖迦牽犖犖迦犖迦犖犖 Data Block
 犢犖犖犖犖犖犢犖迦犖犖犖犖犖 犖犖犢犖犖 f 犢犖犖犖犖犖犖迦牽犖犖迦犖迦
犖園
犖犖迦牽犖犖迦犖迦犖犖犖犖犖 犖犖犢犖犖 f 犖犖犖萎犖犖犖犢犖о権 S-box 犖犖園犖犖÷
犖園
犢
8 犖犖ム犖犖 犢犖犢犖ム鍵犖犖ム犖犖犖犖迦見犖犢犖迦犖朽 map 犖犢犖犖÷弦犖 6 bits 犢犖
犢犖犢 犖 4 bits 犢犖犢犖 S(18 09 12 3d 11 17 38 39) =
5fd25e03

Faculty of Information Technology

Page

12
犖犖迦犖犖о検
犖犖犖犖犖迦牽犖犖迦犖迦犖犖
Data Block

Faculty of Information Technology

Page

13
犖犖犖犖犖迦牽犖犖迦犖迦犖犖 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 犢犖犖犖犖犖犖園犢
犢

Faculty of Information Technology

Page

14
DES Decryption
 犢犖犖∇犖犖犖巌犖ム犖о犖迦牽犖犖犖犖犖犖園肩 (decryption) 犖犖迦見犖犖園 Block Cipher 犖犖萎犖犢 犖

犖犖迦牽犖∇犖犖犖犖迦牽犖犖迦犖迦犖犖犖犖犖迦牽犢犖犢犖迦牽犖犖園肩 (encryption)
 犢犖犢 DES 犖犖項犖犖犖犢犖犖犖÷顕犖犖∇犖迦犖犖 犖犖迦犖犢犖犖ム犖犖犖巌犖謹検犖犖迦牽犖犖犖犖犖犖園肩
犖
(decryption) 犢犖犢 犖犖犖園献犖犖犖犖巌犖謹検犢犖犖朽権犖о犖園犖犖迦牽犢犖犢犖迦牽犖犖園肩 (encryption) 犖÷元犖ム顕犖犖園
犖犖迦牽犖犖迦犖迦犢犖犖÷厳犖犖犖犖園 犢犖犖朽権犖犢犖犢犢犖犢 subkeys (K1  K16) 犢犖犖ム顕犖犖園犖犖ム険犖犖犖園
犢犖犢犖迦犖園
犢
 犖犖園犖犖園犢犖犖犖迦牽 decryption 犢犖犖迦肩犖迦検犖迦牽犖犢犖犢 Hardware 犖犖伍犢犖犖朽権犖о犖園犖犖園犖犖迦牽
犢
Encryption 犢犖犢犢犖犖∇犖犖 subkeys 犖犖迦検犖ム顕犖犖園 K16  K1
犢
 犖犖萎犖о犖犢犖犖犖迦牽犢犖犢犖犖迦 犢犖ム鍵犖犖犖萎見犖∇険犖犖犢犖迦犖犢犖犢犖迦権

Faculty of Information Technology

Page

15
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 犖犖ム険犖犖犖劇犖÷顕

Faculty of Information Technology

Page

16
Avalanche Effect
 Avalanche Effect 犢犖犢 犖犖犖伍犖犖÷犖園犖巌犢犖朽犖犢 犖犖犖朽犖犖犖犖犖迦牽 犖犖迦見犖犖園 encryption
犢

algorithm
 犢犖÷厳犢犖犢犖犖ム元犢 犖∇ input 犖犖犖劇賢 key 犢犖犢犖犖朽権犖 1 bit 犖犢犖犖萎犖犖ム元犢 犖∇ bits 犖犖犖 output
犢犖犖犖犖萎検犖迦犖犖犖謹犖犖犖犖謹 犖
 DES 犢犖犢 Avalanche Effect 犖犖朽犖犖

Faculty of Information Technology

Page

17
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
Faculty of Information Technology

Page

18
犖犖迦犢犖ム厳犖犖犖犖朽犢犖犢 犖犢犖犖犢犖犖犖о犖 DES
 犖犖迦牽犖犖∇顕犖 Key 犖犖犖 DES 犖犖迦 64 bits 犢犖犢犢犖犢 犖 128 bits 犢犖犖劇犖犖犖萎犖犢犢犖犢犢犖о献犖

犢犖犖犖迦牽 crack 犖犖迦犖犖謹犖
 犖犖 犖犖犖伍犖 DES 犢犖犢犖犖犖犖犢犖犢 犖 DES 64 Bit 犢犖ム鍵 DES 128 Bit
犖

 犢犖犢犖犖謹犢犖÷犖о犖迦犖萎犖犢 128 bit 犖犢犖犖迦検 DES 犖犢犖∇犖犖迦検犖迦牽犖犖犖項 crack 犢犖犢 犖犖謹犢犖犢犖÷元
犖

犖犖迦牽犖犖園犖犖迦犖犢犖÷元 Triple-DES (3DES) 犖犖朽犖÷元犖犖о顕犖÷犖犢 犖犢犖犖犢犖犖÷顕犖犖犖謹 犖

Faculty of Information Technology

Page

19
Triple-DES (3DES) with Two-Keys
 Triple-DES 犢犖犢 犖犖犖迦牽犢犖犢犖迦牽犖犖園肩犖犖朽犖犖犖犖犢犖迦犖÷顕犢犖犖劇犖犢犖犢犖犖園犖犖迦犖о顕犖÷賢犢犖犖犢犖犖犖犖
犖

DES 犢犖犖 Triple-DES 犖犖萎犢犖о権犢犖犖犖巌検犖犖о顕犖÷犖ム賢犖犖犖園権犢犖犢犖犖迦牽犢犖犢犖迦牽犖犖園肩犖÷元
犖犖ム賢犖犖犖園権犖÷顕犖犖犖謹犖
 犢犖犢犖犖ム犖犖犖巌犖謹検 DES 犢犖犢 犖犖犖迦犖о 3 犖犖犖園犢犖犖劇犖犖犖迦犖迦牽犢犖犢犖迦牽犖犖園肩
犖
犢
 犢犖犢 key 犢犖犖朽権犖 2 犖犖朽権犢犖犖犖迦牽犖犖 Encryption 犖犢犖о権犖ム顕犖犖園 Encrypt-Decrypt犢
Encrypt
C = EK1(DK2(EK1(P)))
 犖犖迦 K1 = K2 犖犖萎犖ム顕犖∇犖犢 犖 DES 犖犖犖犖÷犖

 犖犖о顕犖÷犖犢 犖犢犖犖犢犖犖犖朽 犖犖謹犖犖迦犖犢 Triple-DES 犢犖犢 犖犖犖 犖犖犖犖謹 犖犢犖犖÷顕犖犖犖犖迦犢犖犖犖迦牽

犢犖犢犖迦牽犖犖園肩犢犖犖犖 犖犖犖伍犖
犖
Faculty of Information Technology

Page

20
Triple-DES (3DES) with Two-Keys
 犖犖犖萎犖о犖犖迦牽 Encryption 犢犖犖 3DES 犖犖迦犢犖犢 Key 犢犖犖朽権犖 2 犖犖朽権 犢
64-bit Plaintext

DES Encryption

Key 1

DES Decryption

Key 2

DES Encryption

Key 1

64-bit Ciphertext
Faculty of Information Technology

Page

21
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

Faculty of Information Technology

Page

22
犖犖迦牽犖犖迦犖迦犖犖犖 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 in4 in8 in12

s0,0 s0,1 s0,2 s0,3

s0,0 s0,1 s0,2 s0,3

out0 out4 out8 out12

in1 in5 in9 in13

s10 s1,1 s1,2 s1,3

s10 s1,1 s1,2 s1,3

out1 out5 out9 out13

in2 in6 in10 in14

s2,0 s2,1 s2,2 s2,3

s2,0 s2,1 s2,2 s2,3

out2 out6 out10 out14

in3 in7 in11 in15

s3,0 s3,1 s3,2 s3,3

s3,0 s3,1 s3,2 s3,3

out3 out7 out11 out15

input
Faculty of Information Technology

State Array

output
Page

23
犖犖迦牽犖犖迦犖迦犖犖犖 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

k4

k8 k12

k1

k5

k9 k13

k2

k6 k10 k14

k3

k7 k11 k15

w0 w1 w2 w3

犢犖犢犖ム鍵犖犖犖犖犖犖
Key Expansion

f

+ + + +
w4 w5 w6 w7

Key Expansion
k0

k4

k8 k12

k1

k5

k9 k13

k2

k6 k10 k14

k3

k7 k11 k15

Faculty of Information Technology

w0 w1



w43

Page

24
犖犖迦牽犖犖迦犖迦犖犖犖 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
犖園
Faculty of Information Technology

Page

25
AES

犖犖犖犢犖犖巌犖÷犢犖
(Initial Round)

犖犖犖犖犖萎見犖о犖迦犖犖ム顕犖 (Rounds)

犖犖犖犖犖伍犖犢犖迦権 (Final Round)
犢犖÷犖÷元 Mix Columns

Faculty of Information Technology

Page

26
犖犖迦牽犖犖迦犖迦犖犖犖 AES
 犖犖犖萎犖о犖犖迦牽 AddRoundKey
 犢犖犢 犖犖犖迦牽犢犖犖迦犢犖犖÷弦犖ム検犖 XOR 犖犖園 key
 犖犖園犖犖犖犖犖朽 犖÷元犖犖∇弦犢犢犖犖犖伍 round 犖犖犖犖犖迦牽犖犖迦犖迦
犢
犖犢犖犖÷弦犖

Key 犖犖犖迦 4 words
= 16 bytes

w
Faculty of Information Technology

Page

27
犖犖迦牽犖犖迦犖迦犖犖犖 AES
 犖犖犖萎犖о犖犖迦牽 SubBytes
 犢犖犢 犖 non-linear substitution 犖犖謹犖犢犖犢犖ム鍵犢犖犖犢犖犖萎犖項犢犖犖犖犖朽犖犖о権犢犖犖犢犖犢犖朽犖犢犖犖迦
犢
lookup table
 犖犖園犖犖犖犖犖朽 犖÷元犖犖∇弦犢犢犖犖犖犖犖犖萎見犖о犖迦犖犖ム顕犖 犢犖ム鍵犖犖犖犖犖伍犖犢犖迦権犖犖犖犖犖迦牽犖犖迦犖迦
犢
犖犢犖犖÷弦犖

Faculty of Information Technology

Page

28
犖犖迦牽犖犖迦犖迦犖犖犖 AES
 犖犖犖萎犖о犖犖迦牽 ShiftRows
 犢犖犢 犖犖犖迦牽犢犖ム厳犢犖犖犢犖犖犢犢犖犢犖犢犖ム鍵犢犖犖 犖犖謹犖犖犖萎犖迦犖犖犖迦鍵犢犖犖о犖朽 2, 3 犢犖ム鍵 4
 犖犖園犖犖犖犖犖朽 犖÷元犖犖∇弦犢犢犖犖犖犖犖犖萎見犖о犖迦犖犖ム顕犖 犢犖ム鍵犖犖犖犖犖伍犖犢犖迦権犖犖犖犖犖迦牽犖犖迦犖迦
犢
犖犢犖犖÷弦犖

Faculty of Information Technology

Page

29
犖犖迦牽犖犖迦犖迦犖犖犖 AES
 犖犖犖萎犖о犖犖迦牽 MixColumns
 犢犖犢 犖犖犖迦牽犖犖犖÷牽犖о検 4 犢犖犖犢犖犖迦権犢犖犖犖犖ム険犖÷犢 犖犢犖迦犖犖迦牽犖犖項犢犖÷犖犖巌犖犢
 犖犖園犖犖犖犖犖朽 犖÷元犖犖∇弦犢犢犖犖犖犖犖犖萎見犖о犖迦犖犖ム顕犖犖犖犖犖犖迦牽犖犖迦犖迦 犢犖犢犖迦犖園
犢
犢

犖犢犖犖÷弦犖

Faculty of Information Technology

Page

30

More Related Content

Information system security wk1-1

  • 1. IT346 Information System Security Week 3-1: Symmetric-Key Cryptography 犖.犖犖犖犢犖犖犖犖巌 犢犖犢犢犖犖 犖 Faculty of Information Technology Page 1
  • 2. Cryptography Cryptography 犖犖÷顕犖∇犖謹犖о鹸犖犖∇顕犖犖迦牽犖犖犖園肩犖ム険犖 犖÷顕犖犖迦犖犖迦硯犢犖 crypto 犖犖朽犢犖犖ム硯犢犖 犖犢犖犖 犢犖ム鍵犖犖迦硯犢犖 graph 犖犖朽犢犖犖ム硯犢犖迦犖迦牽犢犖犖 犖∇Cryptography 犖犖謹犖÷元犖犖о顕犖÷見犖÷顕犖 犖о犖 犖犖迦牽犢犖犖 犖∇犢犖犖劇犖犖犢犖犖犖犢犖犖÷弦犖モ Cryptography 犢犖犢犢犖犖犖迦牽犖犖犖犖犖園犖犢犖犖÷弦犖ム犖ム鍵犖犖迦牽犖犖犢犖犖 犢犖犖∇犖犖萎犖犖犖犢犖о権 犢 3 犢犖犖犢犖犢犖ム権犖朽見犖ム険犖 Symmetric Key Cryptography 犖犖犖劇賢 Secret Key Cryptography犖犖劇賢犖犖迦牽犢犖犢犖迦牽犖犖園肩 犖犢犖犖÷弦犖ム犖犖 犖犖÷検犖迦犖b Asymmetric Key Cryptography 犖犖犖劇賢 Public Key Cryptography犖犖劇賢犖犖迦牽 犢犖犢犖迦牽犖犖園肩犖犢犖犖÷弦犖ム犖犖 犖犖犖÷検犖迦犖b Hash Function 犖犖劇賢犖犖迦牽犖犖犢犖迦犖犖園硯犢犖犖犖犢犖犖÷弦犖 Faculty of Information Technology Page
  • 3. Cryptography Cryptanalysis 犖犖÷顕犖∇犖 犖犖犖迦牽犖犖∇顕犖∇顕犖÷硯犖巌犖犖犖迦鍵犖犢犢犖犖劇犖犖犖 犖犖犖迦犖犖萎犖犢 犖犖犢犖迦犢犖犖朽 犢犖犖朽犖∇硯犖犢犖犖犖犖園 Cryptography Sensitive Data 犖犖÷顕犖∇犖 犖犖犢犖犖÷弦犖ム肩犖迦犖園犖犖朽犖犖劇賢犖о犖迦犖犢 犖犖犖о顕犖÷献犖園犢犖÷犖犖迦検犖迦牽犖 犢犖犖犢犖犖犖犖迦権犖犖犖犖犖項犖犖迦権犖犖犖犢犖犢 Faculty of Information Technology Page
  • 4. Symmetric-Key Cryptography Plaintext 犖犢犖犖÷弦犖ム犢犖犖犖犖園 Encryption algorithm 犖犖迦犖犖 犖犖犖迦牽犢犖犖犖犖朽 (substitutions) 犖犖犖劇賢 犢犖犖ム犖犢犖犖÷弦犖 (transformations) 犖犖 plaintext Secret Key 犖犖о犖犖伍検犖犖迦牽 substitutions/transformations犖犖朽犢犖犖巌犖犖謹犖犢犖 犖犖犖萎犖о犖犖迦牽 encryption Ciphertext 犖犢犖犖÷弦犖ム犖朽犖犖犢犖犖ム犖犢犖о権 substitutions/transformations犢犖ム犖 犖 Decryption 犖犖犖萎犖о犖犖迦牽犖∇犖犖犖犖ム険犖犖犖犖 encryption 犖犖о顕犖÷犖犢犖犢犖犖犢犖犖犖犖 encryption 犖犖∇弦犢犖犖朽犖犖迦牽犖犖園犖犖迦犖о顕犖÷献犖園犖犖犖 key犖犖朽犢犖犢 Plaintext Key Encryption E(P,K) C Faculty of Information Technology Key Ciphertext Plaintext Decryption D(C,K) P Page
  • 5. 犖犖園献犖犖犖犖巌犖謹検犖÷顕犖犖犖犖迦犖犖迦見犖犖園犖犖迦牽犢犖犢犖迦牽犖犖園肩 犖犖園献犖犖犖犖巌犖謹検 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 Faculty of Information Technology Page 5
  • 6. 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 Faculty of Information Technology Page 6
  • 7. DES Overview 64-bit Plaintext 64-bit Key Initial Permutation PC1 64 bit Round 0 64 bit Round 1 K1 48 bit K2 48 bit 56 bit PC2 PC2 Left Circular Shift 56 bit 64 bit Round 15 56-bit Key 56-bit Key Left Circular Shift 56-bit Key K16 48 bit PC2 56 bit Left Circular Shift 64 bit 32-bit Swap 64 bit Inverse Initial Permutation 64-bit Ciphertext Faculty of Information Technology Page 7
  • 8. 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) 犢 Faculty of Information Technology Page 8
  • 9. 犖犖犖犖犖迦牽犖犖迦犖迦犖犖 Data Block 犖犖迦牽犖犖迦犖犖 犖犖犖迦犖犖 Data Block 犢犖犢犖ム鍵犖犖犖犢犖 16 犖犖犖 犢犖犢 犖犖犖園犖犖朽 64-bit Round 0 L0 (32 bits) R0 (32 bits) f K1 XOR Round 1 L1=R0 R1=(L0 XOR f(R0,K1)) f K2 XOR L2=R3 Faculty of Information Technology R2=(L1 XOR f(R1,K2)) Page 9
  • 10. 犖犖犖犖犖迦牽犖犖迦犖迦犖犖 Data Block 犢犖犢犖ム鍵犖犖犖犖犖犖犖犖迦牽犖犖迦犖迦 (Round 0 15) 犖犢犖犖÷弦犖ム犖犖犢犖о犖犖迦犖犖о顕 (Ri) 32 bits 犢犖ム鍵犖犖朽権犖∇犖犖 K 犖犖犖犖犖犖犖犖園犢 犖犖萎犖項 犢 犢 犖犖迦検犖迦犖迦犖犖 犖犖犖迦牽犖犢犖迦犖犖 犖犖犢犖犖 f 犢犖犢犖犖ム献犖園犖犢犢犖犢 犖 f(Ri,Ki-1) 犖園 犖犖ム献犖園犖犢犖犢犖朽犖犢犖犖迦犖犖園犖犢犖о犖犖迦犖犢犖迦権 (Li) 犢犖ム鍵犖犖о顕 f(Ri,Ki-1) 犖犖萎犖項犖犖迦検犖 犢 犖犖о検犖犖園犢犖犖 XOR 犖犖ム献犖園犖犢犖犖朽犢犖犢犖犖迦犖犖迦牽 XOR 犖犖萎犖項犢犖犢犢犖犢 犖犖犢犖犖÷弦犖ム肩犢犖о犖犖迦犖犖о顕犖犖犖犖犖犖犢犖犖÷ (Ri+1) 犢犖ム鍵犖犢犖犖÷弦犖ム犖犖犖犢犖о犖犖迦犖犖о顕犢犖犖巌検 (Ri) 犖犢犖犖萎犖ム顕犖∇犖犢 犖犖犢犖犖÷弦犖ム肩犢犖о犖犢犖迦権 犖犖犖犖о犖犖犖犢犖犖÷ (Li+1) Faculty of Information Technology Page 10
  • 11. 犖犖犖犖犖迦牽犖犖迦犖迦犖犖 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 犖園 犢 犖犖犖園 犢 Faculty of Information Technology Page 11
  • 12. 犖犖犖犖犖迦牽犖犖迦犖迦犖犖 Data Block 犢犖犖犖犖犖犢犖迦犖犖犖犖犖 犖犖犢犖犖 f 犢犖犖犖犖犖犖迦牽犖犖迦犖迦 犖園 犖犖迦牽犖犖迦犖迦犖犖犖犖犖 犖犖犢犖犖 f 犖犖犖萎犖犖犖犢犖о権 S-box 犖犖園犖犖÷ 犖園 犢 8 犖犖ム犖犖 犢犖犢犖ム鍵犖犖ム犖犖犖犖迦見犖犢犖迦犖朽 map 犖犢犖犖÷弦犖 6 bits 犢犖 犢犖犢 犖 4 bits 犢犖犢犖 S(18 09 12 3d 11 17 38 39) = 5fd25e03 Faculty of Information Technology Page 12
  • 14. 犖犖犖犖犖迦牽犖犖迦犖迦犖犖 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 犢犖犖犖犖犖犖園犢 犢 Faculty of Information Technology Page 14
  • 15. DES Decryption 犢犖犖∇犖犖犖巌犖ム犖о犖迦牽犖犖犖犖犖犖園肩 (decryption) 犖犖迦見犖犖園 Block Cipher 犖犖萎犖犢 犖 犖犖迦牽犖∇犖犖犖犖迦牽犖犖迦犖迦犖犖犖犖犖迦牽犢犖犢犖迦牽犖犖園肩 (encryption) 犢犖犢 DES 犖犖項犖犖犖犢犖犖犖÷顕犖犖∇犖迦犖犖 犖犖迦犖犢犖犖ム犖犖犖巌犖謹検犖犖迦牽犖犖犖犖犖犖園肩 犖 (decryption) 犢犖犢 犖犖犖園献犖犖犖犖巌犖謹検犢犖犖朽権犖о犖園犖犖迦牽犢犖犢犖迦牽犖犖園肩 (encryption) 犖÷元犖ム顕犖犖園 犖犖迦牽犖犖迦犖迦犢犖犖÷厳犖犖犖犖園 犢犖犖朽権犖犢犖犢犢犖犢 subkeys (K1 K16) 犢犖犖ム顕犖犖園犖犖ム険犖犖犖園 犢犖犢犖迦犖園 犢 犖犖園犖犖園犢犖犖犖迦牽 decryption 犢犖犖迦肩犖迦検犖迦牽犖犢犖犢 Hardware 犖犖伍犢犖犖朽権犖о犖園犖犖園犖犖迦牽 犢 Encryption 犢犖犢犢犖犖∇犖犖 subkeys 犖犖迦検犖ム顕犖犖園 K16 K1 犢 犖犖萎犖о犖犢犖犖犖迦牽犢犖犢犖犖迦 犢犖ム鍵犖犖犖萎見犖∇険犖犖犢犖迦犖犢犖犢犖迦権 Faculty of Information Technology Page 15
  • 16. 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 犖犖ム険犖犖犖劇犖÷顕 Faculty of Information Technology Page 16
  • 17. Avalanche Effect Avalanche Effect 犢犖犢 犖犖犖伍犖犖÷犖園犖巌犢犖朽犖犢 犖犖犖朽犖犖犖犖犖迦牽 犖犖迦見犖犖園 encryption 犢 algorithm 犢犖÷厳犢犖犢犖犖ム元犢 犖∇ input 犖犖犖劇賢 key 犢犖犢犖犖朽権犖 1 bit 犖犢犖犖萎犖犖ム元犢 犖∇ bits 犖犖犖 output 犢犖犖犖犖萎検犖迦犖犖犖謹犖犖犖犖謹 犖 DES 犢犖犢 Avalanche Effect 犖犖朽犖犖 Faculty of Information Technology Page 17
  • 18. 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 Faculty of Information Technology Page 18
  • 19. 犖犖迦犢犖ム厳犖犖犖犖朽犢犖犢 犖犢犖犖犢犖犖犖о犖 DES 犖犖迦牽犖犖∇顕犖 Key 犖犖犖 DES 犖犖迦 64 bits 犢犖犢犢犖犢 犖 128 bits 犢犖犖劇犖犖犖萎犖犢犢犖犢犢犖о献犖 犢犖犖犖迦牽 crack 犖犖迦犖犖謹犖 犖犖 犖犖犖伍犖 DES 犢犖犢犖犖犖犖犢犖犢 犖 DES 64 Bit 犢犖ム鍵 DES 128 Bit 犖 犢犖犢犖犖謹犢犖÷犖о犖迦犖萎犖犢 128 bit 犖犢犖犖迦検 DES 犖犢犖∇犖犖迦検犖迦牽犖犖犖項 crack 犢犖犢 犖犖謹犢犖犢犖÷元 犖 犖犖迦牽犖犖園犖犖迦犖犢犖÷元 Triple-DES (3DES) 犖犖朽犖÷元犖犖о顕犖÷犖犢 犖犢犖犖犢犖犖÷顕犖犖犖謹 犖 Faculty of Information Technology Page 19
  • 20. Triple-DES (3DES) with Two-Keys Triple-DES 犢犖犢 犖犖犖迦牽犢犖犢犖迦牽犖犖園肩犖犖朽犖犖犖犖犢犖迦犖÷顕犢犖犖劇犖犢犖犢犖犖園犖犖迦犖о顕犖÷賢犢犖犖犢犖犖犖犖 犖 DES 犢犖犖 Triple-DES 犖犖萎犢犖о権犢犖犖犖巌検犖犖о顕犖÷犖ム賢犖犖犖園権犢犖犢犖犖迦牽犢犖犢犖迦牽犖犖園肩犖÷元 犖犖ム賢犖犖犖園権犖÷顕犖犖犖謹犖 犢犖犢犖犖ム犖犖犖巌犖謹検 DES 犢犖犢 犖犖犖迦犖о 3 犖犖犖園犢犖犖劇犖犖犖迦犖迦牽犢犖犢犖迦牽犖犖園肩 犖 犢 犢犖犢 key 犢犖犖朽権犖 2 犖犖朽権犢犖犖犖迦牽犖犖 Encryption 犖犢犖о権犖ム顕犖犖園 Encrypt-Decrypt犢 Encrypt C = EK1(DK2(EK1(P))) 犖犖迦 K1 = K2 犖犖萎犖ム顕犖∇犖犢 犖 DES 犖犖犖犖÷犖 犖犖о顕犖÷犖犢 犖犢犖犖犢犖犖犖朽 犖犖謹犖犖迦犖犢 Triple-DES 犢犖犢 犖犖犖 犖犖犖犖謹 犖犢犖犖÷顕犖犖犖犖迦犢犖犖犖迦牽 犢犖犢犖迦牽犖犖園肩犢犖犖犖 犖犖犖伍犖 犖 Faculty of Information Technology Page 20
  • 21. Triple-DES (3DES) with Two-Keys 犖犖犖萎犖о犖犖迦牽 Encryption 犢犖犖 3DES 犖犖迦犢犖犢 Key 犢犖犖朽権犖 2 犖犖朽権 犢 64-bit Plaintext DES Encryption Key 1 DES Decryption Key 2 DES Encryption Key 1 64-bit Ciphertext Faculty of Information Technology Page 21
  • 22. 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 Faculty of Information Technology Page 22
  • 23. 犖犖迦牽犖犖迦犖迦犖犖犖 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 in4 in8 in12 s0,0 s0,1 s0,2 s0,3 s0,0 s0,1 s0,2 s0,3 out0 out4 out8 out12 in1 in5 in9 in13 s10 s1,1 s1,2 s1,3 s10 s1,1 s1,2 s1,3 out1 out5 out9 out13 in2 in6 in10 in14 s2,0 s2,1 s2,2 s2,3 s2,0 s2,1 s2,2 s2,3 out2 out6 out10 out14 in3 in7 in11 in15 s3,0 s3,1 s3,2 s3,3 s3,0 s3,1 s3,2 s3,3 out3 out7 out11 out15 input Faculty of Information Technology State Array output Page 23
  • 24. 犖犖迦牽犖犖迦犖迦犖犖犖 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 k4 k8 k12 k1 k5 k9 k13 k2 k6 k10 k14 k3 k7 k11 k15 w0 w1 w2 w3 犢犖犢犖ム鍵犖犖犖犖犖犖 Key Expansion f + + + + w4 w5 w6 w7 Key Expansion k0 k4 k8 k12 k1 k5 k9 k13 k2 k6 k10 k14 k3 k7 k11 k15 Faculty of Information Technology w0 w1 w43 Page 24
  • 25. 犖犖迦牽犖犖迦犖迦犖犖犖 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 犖園 Faculty of Information Technology Page 25
  • 27. 犖犖迦牽犖犖迦犖迦犖犖犖 AES 犖犖犖萎犖о犖犖迦牽 AddRoundKey 犢犖犢 犖犖犖迦牽犢犖犖迦犢犖犖÷弦犖ム検犖 XOR 犖犖園 key 犖犖園犖犖犖犖犖朽 犖÷元犖犖∇弦犢犢犖犖犖伍 round 犖犖犖犖犖迦牽犖犖迦犖迦 犢 犖犢犖犖÷弦犖 Key 犖犖犖迦 4 words = 16 bytes w Faculty of Information Technology Page 27
  • 28. 犖犖迦牽犖犖迦犖迦犖犖犖 AES 犖犖犖萎犖о犖犖迦牽 SubBytes 犢犖犢 犖 non-linear substitution 犖犖謹犖犢犖犢犖ム鍵犢犖犖犢犖犖萎犖項犢犖犖犖犖朽犖犖о権犢犖犖犢犖犢犖朽犖犢犖犖迦 犢 lookup table 犖犖園犖犖犖犖犖朽 犖÷元犖犖∇弦犢犢犖犖犖犖犖犖萎見犖о犖迦犖犖ム顕犖 犢犖ム鍵犖犖犖犖犖伍犖犢犖迦権犖犖犖犖犖迦牽犖犖迦犖迦 犢 犖犢犖犖÷弦犖 Faculty of Information Technology Page 28
  • 29. 犖犖迦牽犖犖迦犖迦犖犖犖 AES 犖犖犖萎犖о犖犖迦牽 ShiftRows 犢犖犢 犖犖犖迦牽犢犖ム厳犢犖犖犢犖犖犢犢犖犢犖犢犖ム鍵犢犖犖 犖犖謹犖犖犖萎犖迦犖犖犖迦鍵犢犖犖о犖朽 2, 3 犢犖ム鍵 4 犖犖園犖犖犖犖犖朽 犖÷元犖犖∇弦犢犢犖犖犖犖犖犖萎見犖о犖迦犖犖ム顕犖 犢犖ム鍵犖犖犖犖犖伍犖犢犖迦権犖犖犖犖犖迦牽犖犖迦犖迦 犢 犖犢犖犖÷弦犖 Faculty of Information Technology Page 29
  • 30. 犖犖迦牽犖犖迦犖迦犖犖犖 AES 犖犖犖萎犖о犖犖迦牽 MixColumns 犢犖犢 犖犖犖迦牽犖犖犖÷牽犖о検 4 犢犖犖犢犖犖迦権犢犖犖犖犖ム険犖÷犢 犖犢犖迦犖犖迦牽犖犖項犢犖÷犖犖巌犖犢 犖犖園犖犖犖犖犖朽 犖÷元犖犖∇弦犢犢犖犖犖犖犖犖萎見犖о犖迦犖犖ム顕犖犖犖犖犖犖迦牽犖犖迦犖迦 犢犖犢犖迦犖園 犢 犢 犖犢犖犖÷弦犖 Faculty of Information Technology Page 30