簡介
在密碼學中,一個P盒(Permutation-box,置換盒)是一個透過置換和轉置將替換盒(S-boxes)輸入進行位元洗牌的方法,在轉置的過程中保持一定程度的擴散。
原理
32位作為輸入
該置換把輸入的每位映射到輸出位,任何一位不能被映射兩次,也不能被略去,映射規則如下表:
1.32位作為輸入
2.該置換把輸入的每位映射到輸出位,任何一位不能被映射兩次,也不能被略去,映射規則如下表:
| 16 | 7 | 20 | 21 | 29 | 12 | 28 | 17 |
| 1 | 15 | 23 | 26 | 5 | 18 | 31 | 10 |
| 2 | 8 | 24 | 14 | 32 | 27 | 3 | 9 |
| 19 | 13 | 30 | 6 | 22 | 11 | 4 | 25 |
表中的數字代表原數據中此位置的數據在新數據中的位置,即原數據塊的第16位放到新數據的第1位,第7位放到第2位,……依此類推,第25位放到第32位。
舉例
例如十六進制10A1 0001進行P盒置換後變為8000 0886(十六進制)。
10A1 0001(十六進制)轉換為32位二進制為0001 0000 1010 0001 0000 0000 0000 0001,填入表中(如下)。
| 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
| 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
經P盒變換後為(原來的第16位放到輸出的第1位....)
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
經P盒變換後二進制為1000 0000 0000 0000 0000 1000 1000 0110,轉換為十六進制為8000 0886。

