1.introduction
RC2是一種傳統的私鑰塊加密算法,曾經被考慮作為DES算法的替代品。輸入和輸出塊大小都是64bits。而密鑰是可變的,從1byte到128bytes,現在常用的是8字節。
1.1Algorithm description
字:16比特位;‘+’:加;‘&’:表示比特敏感的與操作;‘XOR’:表示比特敏感的與或操作;‘~’:表示換位補碼;‘^’:表示取冪運算;
2.key expansion(密鑰擴展)
對於字操作,將規定緩存位置K[0],…,K[63];each K[i] is a 16 bit word
對於比特位操作,將規定緩存位置L[0],…,L[127];each L[i] is an eight-bit字節。
轉換公式:K[i] = L[2*i] + 256*L[2*i+1].
密鑰擴張的目的就是根據提供的密鑰將其擴張成要求的密鑰長度。
3.Encryption algorithm(加密算法)
主要是兩個操作,mix和mash操作。’x rol k’表示16比特位左轉k位,高位補低位。
3.1 Mix up R[i]
3.2 Mixing round
3.3 Mash R[i]
3.4 Mashing round
3.5 Encryption operation
4.Decryption algorithm(解密算法)
4.1 R-Mix up R[i]
4.2 R-Mixing round
4.3 R-Mash R[i]
4.4 R-Mashing round
4.5 Decryption operation
參考文獻:RFC 2268