S-DES加密演算法介紹與實現
阿新 • • 發佈:2019-02-12
為了更好地理解DES演算法,美國聖克拉拉大學的Edward Schaefer教授於1996年開發了Simplfied DES方案,簡稱S-DES方案。它是一個供教學而非安全使用的加密演算法,它與DES的特性和結構類似,但引數小,明文分組為8位,主金鑰分組為10位,採用兩輪選代。
S-DES的加密原理圖如上圖所示
S-DES的具體實現步驟:
- 初始置換IP:將8位的明文按照置換順序分為左4位和右4位
- 第1輪運算,一方面直接輸出作為下一輪的,另一方面作為f函式的輸入與8位的子金鑰參與函式運算,運算結果與異或,結果作為下一輪的
- 第2輪運算,一方面直接輸出作為下一輪的
- 逆置換
S-DES子金鑰生成過程的步驟:
- 主金鑰K進行P10置換(35274,10,1986)
- 分成左5位和右5位,再進行操作(左迴圈1位),其結果一方面作為下一輪的初始值,一方面進行P8置換(637485,10,9),得到
- 將上一輪結果分佈左迴圈2位,經過P8置換,得到
S-DES的f函式結構如上圖所示
S-DES的f函式結構的具體實現步驟:
- E/P擴充套件及置換: 將4位擴充套件為8位
- 擴充套件後的8位與金鑰
- 左邊4位作為,輸入,右邊4位作為輸入
- 在和中,分別將第1位與第4位結合,形成2位代表S盒的行號,分別將第2位與第3位結合,形成2位代表S盒的列號,從而得到S盒的輸出。S-DES的S盒如下表所示
- 進行置換,得到函式的輸出
S-DES的S盒
01 | 00 | 11 | 10 | 00 | 01 | 10 | 11 | ||
11 | 10 | 01 | 00 | 10 | 00 | 01 | 11 | ||
00 | 10 | 01 | 11 | 11 | 10 | 01 | 00 | ||
11 | 01 | 00 | 10 | 10 | 01 | 00 | 11 |
S-DES解密的步驟:
- IP置換(26314857)
- 如圖一逆過程從和開始倒著來
- 置換(41357286)
如設主金鑰=1010000010,用S-DES加密明文字母
- 先求得和,主金鑰經過P10置換的到:1000001100
- 操作:0000111000
- P8置換產生:10100100
- 操作:0010000011
- P8置換產生