2015年1月26日 星期一

Cryptography and Network Security-ch7

Ch7 Advanced Encryption Standard

●3 version
1. AES 128(10 round, cipher key:128 bit)
2. AES 192(12 round, cipher key:192 bit)
3. AES 256(14 round, cipher key:256 bit)
●steps
1. Pre-round
    和key做XOR
2. Subbyte(Substation)
    
3. Shiftrow(Permutation)
  每個row做left shift 
 Row1: x
 Row2: 1 byte
 Row3: 2 byte
 Row4: 3 byte
4. Mix column 
 每個column獨立做(column乘constant matrix)
 最後一個column不做
5. Add round key
 每個column獨立做, plaintext 和 roundkey 做 XOR
6. 2, 3, 4, 5為一個round 依照不同version 做不同round
AES總流程圖
AES每個round的流程圖

● key expansion

1. AES 128:每個round需要4個word(wi, wi+1, wi+2, wi+3)
  (1). pre-round:w0, w1, w2, w3 為cipher key
  (2). 當i mod 4 = 0:
    wi = t + wi-4
    t = Sub(Rot(wi-1)) + Rcon[i/4]
  (3). 當i mod 4 ≠ 0:
    wi = wi-1 + wi-4
AES key產生圖

2. AES 192:每次產生6個word(wi, wi+1, wi+2, wi+3, wi+4, wi+5)
  和AES 128同,但4均改為6
  (wi = t + wi-6)
  ( wi = wi-1 + wi-6)
3. AES 256:每次產生8個word(wi, wi+1, wi+2, wi+3, wi+4, wi+5, wi+6, wi+7)
  (1). pre-round:w0, w1, w2, w3 為cipher key
  (2). 當i mod 8 = 0:
    wi = t + wi-8
    t = Sub(Rot(wi-1)) + Rcon
  (3). 當i mod 4 = 0, 且i mod 8 ≠ 0:
    wi = SubWord(wi-1) + wi-8
  (4). 當i mod 8 ≠ 0:
    wi = wi-1 + wi-8



2015年1月24日 星期六

Cryptography and Network Security-ch6

Chapter6 data encryption standard (DES)

●steps:
  1. Initial permutation 
  2. 右半Feistal cipher
       (1).expansion P-box  (32->48)
       (2).和round key XOR (48)
       (3).S-Boxes.               (48)
       (4).straight P-Box.      (48->32)
  3. 左半和右半XOR, 右半仍維持step2前的樣子
  4. swap (最後一個round不要)
  5. 重複step2, 3, 4(2, 3, 4為一個round, DES 跑16 round
  6. final permutation
DES 完整程序圖
DES中的一個round
每個round中的Feistal cipher




●key gen
1. Key input
2. Parity drop
3. Shift left.     4. Shift left.  (1, 2, 9, 16 round: 1 bit, else: 2 bit)
5. Compression P-Box
重複step 3,4,5(3, 4, 5為一個round, DES 跑16 round)

DES gen key


●DES weakness
1. Weakness in key:
(1). Weak key: 一個weak key產生16個相同的subkey。這會使得plain-text加密兩次會產生plain-text
    Ek(Ek(P)) = P
(2). Semi weak key:一個semi-weak key會產生兩個不同subkey,每個subkey個會出現8次,稱這2個key為pair,使用這兩個subkey去加密會使plain-text 和cipher-text一樣。
    Ek1(Ek2(P)) = P
(3). Possible weak key:一個possible weak key會產生4個相同的weak key(subkey)。

2. Key complement 
C = E(P, K)
/C = E(/P, K)

3. Double DES
可以用meet in the middle attack