323 SAFER加密算法 实验室 明文(8字节) 用64比 算法: 第1轮加密操作 KLK 2 第2轮加密操作 K3. K 第r轮加密操作 输出转换 密文(8字节
3.2.3 SAFER加密算法 瑞士联邦技术学院信号信息处理实验室 的James L. Massey提出了一种使用64 比 特密钥、安全而快速的分组加密算法: SAFER K -64 。 一、SAFER加密算法 SAFER算法主流程如图所示: K1,K2 K3,K4 K2r-1,K2r K2r+1 明文( 8 字节) 第 1 轮加密操作 第 2 轮加密操作 第 r 轮加密操作 输出转换 密文(8 字节)
密钥k(8字节) 每字节循环左移3bt 和B2按字节模256相加 每字节循环左移3bit 和B按字节模256相加 Kr 1用户输入的密钥即赋予第一个子密钥K1(八字节)。 2将用户指定的密钥循环左移3比特后与B2相加,并 对256取模,其结果赋予K2 3将已循环左移的密钥重复作第二步操作,直至生 成全部2r+1个子密钥
K1 K2 Kr 密钥 k(8 字节) 每字节循环左移 3bit 和 B2按字节模 256 相加 每字节循环左移 3bit 和 Br按字节模 256 相加 1.用户输入的密钥即赋予第一个子密钥K1(八字节)。 2.将用户指定的密钥循环左移3比特后与B2相加,并 对256取模,其结果赋予K2。 3.将已循环左移的密钥重复作第二步操作,直至生 成全部2r+1个子密 钥
226,147 190 174 120 135 56 8 148 168,107 189 27 18 191 247 入每 156 227 216 211 243 141 177 167 62 220 134 119 215 166 证没有 17,251,244,186,146,145 100 241 239 218 181 178 43 多数分 153 129 151 113 202 95 139 8 28,232 由以下 246 19 182 223 12 142,222 224 57 252 155 78 158 242 96,208,108,234,250,199,217 212 110 ··男 8), 137 254 122 93 201 194 249 248,109 21 68 233 205 23 70 66 10 204 101 172 30 41 46 14 116 80 37,123,138 240 6 71 111 112 126 16 18 213 76 214 121 104 117 128 106 144 162 118 170 197,127 175 165’94’228 253 124,183 238 115 102 179 88 105 86 15 161 9,149
B 2 、 B 3 , … , B2r + 1是用来确保馈入每一 轮的子密钥均是随机的,并且保证没有 全零的子密钥,从而消除了绝大多数分 组密码中的“弱密钥”现象。 B i由以下 规则得到: 设b[i,j] 为 B i的第 j个字节,(j = 1 , … ,8) , 则: 45 mod257 (45 mod257 ) (9i j)mod257 bij 1 , 45 , 226 , 147 , 190 , 69 , 21 , 174 , 120 , 3 , 135 , 164 , 184 , 56 , 207 , 63 , 8 , 103 , 9 , 148 , 235 , 38 , 168 , 107 , 189 , 24 , 52 , 27 , 187 , 191 , 114 , 247 , 64 , 53 , 72 , 156 , 81 , 47 , 59 , 85 , 227 , 192 , 159 , 216 , 211 , 243 , 141 , 177 , 255 , 167 , 62 , 220 , 134 , 119 , 215 , 166 , 17 , 251 , 244 , 186 , 146 , 145 , 100 , 131 , 241 , 51 , 239 , 218 , 44 , 181 , 178 , 43 , 136 , 209 , 153 , 203 , 140 , 132 , 29 , 20 , 129 , 151 , 113 , 202 , 95 , 163 , 139 , 87 , 60 , 130 , 196 , 82 , 92 , 28 , 232 , 160 , 4 , 180 , 133 , 74 , 246 , 19 , 84 , 182 , 223 , 12 , 26 , 142 , 222 , 224 , 57 , 252 , 32 , 155 , 36 , 78 , 169 , 152 , 158 , 171 , 242 , 96 , 208 , 108 , 234 , 250 , 199 , 217 , 0 , 212 , 31 , 110 , 67 , 188 , 236 , 83 , 137 , 254 , 122 , 93 , 73 , 201 , 50 , 194 , 249 , 154 , 248 , 109 , 22 , 219 , 89 , 150 , 68 , 233 , 205 , 230 , 70 , 66 , 143 , 10 , 193 , 204 , 185 , 101 , 176 , 210 , 198 , 172 , 30 , 65 , 98 , 41 , 46 , 14 , 116 , 80 , 2 , 90 , 195 , 37 , 123 , 138 , 42 , 91 , 240 , 6 , 13 , 71 , 111 , 112 , 157 , 126 , 16 , 206 , 18 , 39 , 213 , 76 , 79 , 214 , 121 , 48 , 104 , 54 , 117 , 125 , 228 , 237 , 128 , 106 , 144 , 55 , 162 , 94 , 118 , 170 , 197 , 127 , 61 , 175 , 165 , 229 , 25 , 97 , 253 , 77 , 124 , 183 , 11 , 238 , 173 , 75 , 34 , 245 , 231 , 115 , 35 , 33 , 200 , 5 , 225 , 102 , 221 , 179 , 88 , 105 , 99 , 86 , 15 , 161 , 49 , 149 , 23 , 7 , 58 , 40
K2i-1 945 4510g45 add]<.Kai 2-PHT 2-PHT/ 2-PHT 2-PHT 2-PHT 2-PHT 2-PHT 2-PHT 2-PHT 2-PHT 2-PHT 轮加密输出(八字节)
第 i 轮 加 密 输 入( 八 字 节) 01234567 xor add add xor xor add add xor <- K2i-1 45<j> log45 log45 45<j> 45<j> log45 log45 45<j> add xor xor add add xor xor add <- K2i 2-PHT 2-PHT 2-PHT 2-PHT 2-PHT 2-PHT 2-PHT 2-PHT 2-PHT 2-PHT 2-PHT 2-PHT 01234567 第 i 轮 加 密 输 出( 八 字 节)
128 0 176 185 16 18 159,228,105,186 173 248 56194 101 6,148 52 106 112,237,232,236,114,179 78,168 21 195 55 171 172 37 50 110 38 88,218,501 32,169 132 152 156 187 34,140 231,197,225,115 175,36 135 102 39 247 244150 91 177 183 92 139,213 223,170,246 163.241 202 245 209 23.123 147 131 189 82 235 174 204,214 53 180 217 80 63 98 52 72 136 181 86 76 46 107 158 210 61 3 251 151 81 95,249212 113 35 190,118,42 22 22,116,215,119,167 164 70,243 97 69103,227 12162 ,133 24,4 41,160,143,178,90,216166126, 238 141 75 154193 14 44 196 43 67,149 51 108 109,240 40 206 21,155,234 124 20 207,229 66 64 120 146,144,125,57,111224213748
128 , 0 , 176 , 9 , 96 , 239 , 185 , 253 , 16 , 18 , 159 , 228 , 105 , 186 , 173 , 248 , 192 , 56 , 194 , 101 , 79 , 6 , 148 , 252 , 25 , 222 , 106 , 27 , 93 , 78 , 168 , 130 , 112 , 237 , 232 , 236 , 114 , 179 , 21 , 195 , 255 , 171 , 182 , 71 , 68 , 1 , 172 , 37 , 201 , 250 , 142 , 65 , 26 , 33 , 203 , 211 , 13 , 110 , 254 , 38 , 88 , 218 , 50 , 15 , 32 , 169 , 157 , 132 , 152 , 5 , 156 , 187 , 34 , 140 , 99 , 231 , 197 , 225 , 115 , 198 , 175 , 36 , 91 , 135 , 102 , 39 , 247 , 87 , 244 , 150 , 177 , 183 , 92 , 139 , 213 , 84 , 121 , 223 , 170 , 246 , 62 , 163 , 241 , 17 , 202 , 245 , 209 , 23 , 123 , 147 , 131 , 188 , 189 , 82 , 30 , 235 , 174 , 204 , 214 , 53 , 8 , 200 , 138 , 180 , 226 , 205 , 191 , 217 , 208 , 80 , 89 , 63 , 77 , 98 , 52 , 10 , 72 , 136 , 181 , 86 , 76 , 46 , 107 , 158 , 210 , 61 , 60 , 3 , 19 , 251 , 151 , 81 , 117 , 74 , 145 , 113 , 35 , 190 , 118 , 42 , 95 , 249 , 212 , 85 , 11 , 220 , 55 , 49 , 22 , 116 , 215 , 119 , 167 , 230 , 7 , 219 , 164 , 47 , 70 , 243 , 97 , 69 , 103 , 227 , 12 , 162 , 59 , 28 , 133 , 24 , 4 , 29 , 41 , 160 , 143 , 178 , 90 , 216 , 166 , 126 , 238 , 141 , 83 , 75 , 161 , 154 , 193 , 14 , 122 , 73 , 165 , 44 , 129 , 196 , 199 , 54 , 43 , 127 , 67 , 149 , 51 , 242 , 108 , 104 , 109 , 240 , 2 , 40 , 206 , 221 , 155 , 234 , 94 , 153 , 124 , 20 , 134 , 207 , 229 , 66 , 184 , 64 , 120 , 45 , 58 , 233 , 100 , 31 , 146 , 144 , 125 , 57 , 111 , 224 , 137 , 48