『壹』 梁、柱鋼筋的加密區怎麼計算
加密范圍是按照規范規定來的,沒有具體的計算公式。
柱箍筋加密范圍是:
底層柱(底層柱的主根系指地下室的頂面或無地下室情況的基礎頂面)的柱根加密區長度應取不小於該層柱凈高的1/3,以後的加密區范圍是按柱長邊尺寸(圓柱的直徑)、樓層柱凈高的1/6,及500mm三者數值中的最大者為加密范圍。
梁箍筋加密范圍:
加密范圍從柱邊開始,一級抗震等級的框架梁箍筋加密長度為2倍的梁高,二、三、四級抗震等級的框架梁箍筋加密長度為1.5倍的梁高,切均要滿足大於500mm,如果不滿足大於500mm,按500mm長度進行加密。
(1)圓柱換位加密演算法擴展閱讀:
加密范圍是按照規范規定來的,沒有具體的計算公式。柱子和梁的加密區箍筋的設置方法為:
1、柱箍筋加密范圍是:
底層柱(底層柱的柱根系指地下室的頂面或無地下室情況的基礎頂面)的柱根加密區長度應取不小於該層柱凈高的1/3,以後的加密區范圍是按柱長邊尺寸(圓柱的直徑)、樓層柱凈高的1/6,及500mm三者數值中的最大者為加密范圍。
2、梁箍筋加密范圍:
加密范圍從柱邊開始,一級抗震等級的框架梁箍筋加密長度為2倍的梁高,二、三、四級抗震等級的框架梁箍筋加密長度為1.5倍的梁高,而且加密區間總長均要滿足大於500mm,如果不滿足大於500mm,按500mm長度進行加密。
3、詳見國家建築標准設計圖集《16G101-1》
4、具體加密高度還應依據結構設計並應滿足規范要求。
加密區是對於抗震結構來說的。根據抗震等級的不同,箍筋加密區設置的規定也不同。一般來說,對於鋼筋混凝土框架的柱子的端部和每層梁的兩端都要進行加密。
抗震等級為一級時,加密區長度為2倍的梁高和500mm取大值,抗震等級為二~四級時,加密區長度為1.5倍的梁高和500mm取大值。柱子加密區長度應取柱截面長邊尺寸(或圓形截面直徑)、柱凈高的1/6和500mm中的最大值。
但最底層(一層)柱子的根部應取不小於1/3的該層柱凈高。當有剛性地面時,除柱端箍筋加密區外尚應在剛性地面上、下各500mm的高度范圍內加密。
『貳』 計算機密碼學中有哪些加密演算法
傳統密碼學Autokey密碼 置換密碼 二字母組代替密碼 (by Charles Wheatstone) 多字母替換密碼 希爾密碼 維吉尼亞密碼 替換密碼 凱撒密碼 ROT13 仿射密碼 Atbash密碼 換位密碼 Scytale Grille密碼 VIC密碼 (一種復雜的手工密碼,在五十年代早期被至少一名蘇聯間諜使用過,在當時是十分安全的) 分組密碼包括 DES、IDEA、SAFER、Blowfish 和 Skipjack — 最後一個是「美國國家安全局(US National Security Agency,NSA)」限制器晶元中使用的演算法。 置換加密法,將字母的順序重新排列;替換加密法,將一組字母換成其他字母或符號。 DES(Data Encryption Standard):數據加密標准,速度較快,適用於加密大量數據的場合 RSA:由 RSA 公司發明,是一個支持變長密鑰的公共密鑰演算法,需要加密的文件塊的長度也是可變的MD5。 對MD5演算法簡要的敘述可以為:MD5以512位分組來處理輸入的信息,且每一分組又被劃分為16個32位子分組,經過了一系列的處理後,演算法的輸出由四個32位分組組成,將這四個32位分組級聯後將生成一個128位散列值。
『叄』 換位加密法的詳細簡介
重新排列明文中的字母位置的加密法。
密鑰排列順序:
比如,我要對「COMMAND1」加密,密鑰是「ABCD」,可以列出一個表格:
COMMAND1
ABCDABCD
就是用ABCD分別對上這個詞語,不夠就循環對上,就像這樣,然後看到他們對應的字母:A對應C和 A,B對應O和N,C對應M和D,D對應M和1。
然後對他們進行換位加密,也就是將表格的第二行依據密鑰排列順序進行排序:
AABBCCDD
這樣,加密後的密文就出來了:CAONMDM1
如果最後一行多出來幾個密鑰字母,就用A,B,C......代替,之後再進行加密。
比較經典的是柱形的換位加密
比如說明文是: WE ARE DISCOVERED. FLEE AT ONCE.
在加密的時候,首先確定長度和順序,比如確定長度是6個一排,加密後順序是6 3 2 4 1 5,於是開始加密:
6 3 2 4 1 5
W E A R E D
I S C O V E
R E D F L E
E A T O N C
E
得到像這樣的
於是得到密文:EVLNA CDTES EAROF ODEEC WIREE
『肆』 德維亞里密碼是什麼
目 錄
譯者序
前言
第一部分 密碼編碼學
第1章 導論 5
1.1 密碼編碼學和隱寫術 5
1.2 符號碼 5
1.3 公開代碼:偽裝 8
1.4 暗示 11
1.5 公開代碼:利用虛碼掩蔽 12
1.6 公開代碼:採用柵格的隱藏 15
1.7 密碼編碼的方法的分類 16
第2章 密碼編碼學的方法和目標 18
2.1 密碼編碼學的本質 18
2.1.1 加密與解密方法 18
2.1.2 加密與解密機 20
2.1.3 密碼技術與文學 20
2.1.4 密碼研究機構 21
2.2 加密 22
2.2.1 詞彙表、字元集 22
2.2.2 加密和解密 22
2.2.3 歸納定義 23
2.3 密碼體制 23
2.3.1 基本概念 23
2.3.2 加密和編碼 24
2.3.3 文本流 24
2.4 多音碼 25
2.4.1 多音碼 25
2.4.2 字間空格 26
2.5 字元集 26
2.5.1 明文字元集 26
2.5.2 技術字元集 27
2.5.3 同態的情形 28
2.6 密鑰 28
2.6.1 密鑰需要變化 28
2.6.2 分組 28
2.6.3 同構 29
2.6.4 香農 29
第3章 加密方法:簡單代替 30
3.1 V(1)→W的情形 30
3.1.1 V→W:沒有多名碼和空字元的加密 30
3.1.2 V(1)→W:有多名碼和空字元的加密 31
3.2 特殊情況:V玍 31
3.2.1 自反置換 32
3.2.2 電路實現 33
3.2.3 單循環置換 33
3.2.4 混合密表 34
3.2.5 藉助口令字構造密表 35
3.2.6 記數 35
3.2.7 圓盤加密和滑尺加密 36
3.2.8 帶滑動窗的循環字元 36
3.3 V(1)→Wm:多葉簡單代替 36
3.3.1 m=2雙葉簡單代替:V(1)→W2 36
3.3.2 m=3三葉簡單代替:V(1)→W3 38
3.3.3 m=5五葉簡單代替:V(1)→W5 38
3.3.4 m=8八葉簡單代替:V(1)→W8 39
3.4 V(1)→W(m)的一般情況:夾叉式加密 39
3.4.1 約束條件 39
3.4.2 俄國的接合 41
第4章 加密方法:多字母代替和編碼 42
4.1 V2→W(m)的情形 42
4.1.1 字母 42
4.1.2 雙葉雙碼加密步V2玍2 42
4.1.3 三葉雙碼代替V2→W3 46
4.2 Playfair和Delastelle的特殊情況:
分層方法 47
4.2.1 Playfair密碼 47
4.2.2 修改後的PLAYFAIR 49
4.2.3 Delastelle密碼 49
4.3 V3→W(m)的情形 50
4.3.1 GioPPi 50
4.3.2 Henkels 50
4.4 V(n)→W(m)的一般情況:密本 51
4.4.1 詞彙手冊 52
4.4.2 兩部本密本 53
4.4.3 現代密本 55
4.4.4 電報代碼 56
4.4.5 商用密本 57
4.4.6 檢錯和糾錯編碼 58
4.4.7 短命的密本 58
4.4.8 戰壕密碼 58
第5章 加密方法:線性代替 60
5.1 自反線性代替 61
5.2 齊次線性代替 62
5.2.1 希爾 62
5.2.2 非齊次情況 62
5.2.3 計數 63
5.2.4 矩陣對的構造 64
5.2.5 自反矩陣的構造 65
5.3 二元線性代替 65
5.4 一般線性變換 65
5.5 線性代替的分解 66
5.6 十選一字母表 68
5.7 帶有十進制和二進制數的線性代替 69
5.7.1 N=10的情況 69
5.7.2 N=2的情況: 69
5.7.3 圖靈 70
第6章 加密方法:換位 71
6.1 最簡單的方法 71
6.1.1 Crab 71
6.1.2 首字母互換 71
6.1.3 路徑抄寫 72
6.1.4 格子變換 73
6.2 縱行換位 74
6.2.1 口令字 74
6.2.2 矩形方案 75
6.2.3 兩步法 75
6.2.4 Ubchi 76
6.2.5 置換的構造 76
6.3 變位字 77
6.3.1 歷史 77
6.3.2 惟一性 78
第7章 多表加密:加密表族 80
7.1 迭代代替 80
7.1.1 同態 80
7.1.2 循環置換 81
7.2 移位和旋轉密表 81
7.2.1 移位加密表 81
7.2.2 旋轉加密表 82
7.2.3 伴隨加密表 82
7.2.4 加密表的數量 83
7.3 轉輪密碼機 83
7.3.1 背景 84
7.3.2 自反轉輪機 85
7.3.3 國防軍的方案 86
7.3.4 TYPEX 89
7.3.5 ENIGMA代替 89
7.4 移位標准加密表:維吉尼亞密表
和博福特密表 91
7.4.1 維吉尼亞加密步 91
7.4.2 EYRAUD 92
7.4.3 博福特加密步 92
7.4.4 逆向維吉尼亞加密步和
逆向博福特加密步 92
7.4.5 波他加密步 93
7.5 非相關加密表 93
7.5.1 置換 94
7.5.2 Gripenstierna 94
7.5.3 MULTIPLEX 95
7.5.4 拉丁方要求 98
第8章 多表加密:密鑰 101
8.1 早期使用周期密鑰的方法 101
8.1.1 艾伯蒂 101
8.1.2 特理特米烏斯 101
8.2 雙密鑰 103
8.2.1 波他 103
8.2.2 維吉尼亞 103
8.2.3 三重密鑰 103
8.3 弗納姆加密 103
8.3.1 逐比特加密 104
8.3.2 弗納姆 104
8.3.3 進位問題 104
8.4 准非周期密鑰 105
8.4.1 繁瑣的多表加密 105
8.4.2 多表加密的安全性 105
8.4.3 漸進加密 106
8.4.4 「規則」的轉輪運動 106
8.5 密鑰序列的產生機器—密鑰生成器 106
8.5.1 惠斯通 106
8.5.2 不規則的嘗試 106
8.5.3 由缺口和棘輪控制的輪運動 108
8.5.4 打字密碼機 109
8.5.5 赫本 110
8.5.6 亞德利 111
8.5.7 綠密、紅密和紫密 112
8.6 線外形成密鑰序列 115
8.6.1 矩陣方冪 115
8.6.2 二元序列 115
8.7 非周期密鑰 116
8.7.1 錯覺 116
8.7.2 自身密鑰 117
8.7.3 明文函數 119
8.7.4 流密碼 119
8.8 單個的一次性密鑰 120
8.8.1 弗納姆 120
8.8.2 無盡頭和無意義 120
8.8.3 壞習慣 120
8.8.4 不可破譯的加密 121
8.8.5 不可破譯密鑰序列的生成 121
8.8.6 實際使用 121
8.8.7 誤用 121
8.9 密鑰協商和密鑰管理 122
8.9.1 背景 122
8.9.2 密鑰協商 122
8.9.3 密鑰管理 124
第9章 方法類的合成 125
9.1 群性質 125
9.1.1 密鑰群 125
9.1.2 方法的合成 126
9.1.3 T52 126
9.1.4 SZ 126
9.2 復合加密 127
9.2.1 復合加密 127
9.2.2 復台加密的需求 127
9.2.3 插接板 128
9.2.4 ADFGVX 128
9.2.5 ENIGMA復合加密 128
9.3 加密方法的相似性 128
9.4 香農的「和面團法」 128
9.4.1 混淆和擴散 129
9.4.2 Heureka 130
9.4.3 香農 133
9.4.4 分層方法 133
9.4.5 Polybios 133
9.4.6 Koehl 133
9.4.7 其他方法 134
9.5 數學運算產生的混淆和擴散 134
9.5.1 剩餘運算 134
9.5.2 方冪 135
9.5.3 雙向通信 137
9.5.4 普利尼·厄爾·蔡斯 137
9.6 DES和IDEA 137
9.6.1 DES演算法 137
9.6.2 雪崩效應 140
9.6.3 DES的操作模式 141
9.6.4 DES的安全性 141
9.6.5 DES的繼承者 142
9.6.6 密碼系統和晶元 143
第10章 公開加密密鑰體制 145
10.1 對稱和非對稱的加密方法 145
10.1.1 對稱方法 145
10.1.2 非對稱方法 146
10.1.3 加密和簽名方法 146
10.2 單向函數 147
10.2.1 嚴格單向函數 147
10.2.2 陷門單向函數 148
10.2.3 效率界限 148
10.2.4 已知單向函數的例子 149
10.3 RSA方法 152
10.4 對RSA的密碼分析攻擊 153
10.4.1 qi的分解攻擊 153
10.4.2 迭代攻擊 154
10.4.3 ei較小時的攻擊 156
10.4.4 風險 156
10.4.5 缺陷 157
10.5 保密與認證 157
10.6 公鑰體制的安全性 158
第11章 加密安全性 159
11.1 密碼錯誤 159
11.1.1 加密錯誤 159
11.1.2 技術錯誤 159
11.1.3 可能字攻擊 160
11.1.4 填充 161
11.1.5 壓縮 162
11.1.6 人為錯誤 162
11.1.7 使用容易記憶的口令和密鑰 162
11.1.8 密鑰的規律性 163
11.1.9 冒名頂替 163
11.1.10 通過非法手段獲得密碼資料 163
11.1.11 通過戰爭獲得密碼資料 163
11.1.12 細節泄露 164
11.2 密碼學的格言 164
11.2.1 格言1 165
11.2.2 格言2 166
11.2.3 格言3 166
11.2.4 格言4 167
11.2.5 格言5 167
11.3 香農的標准 168
11.4 密碼學和人權 169
11.4.1 問題 169
11.4.2 解決方案 170
11.4.3 託管加密標准 170
11.4.4 NSA 171
11.4.5 國家權力 171
11.4.6 出口政策 171
第二部分 密 碼 分 析
第12章 窮盡法的組合復雜度 175
12.1 單表簡單加密 175
12.1.1 通常的簡單代替
(12.2.1中n=1的特例) 175
12.1.2 十選一采樣字母表 176
12.1.3 CAESAR加法(12·2·3中n=1
的情況) 176
12.2 單表多字母加密 176
12.2.1 一般的多字母代替 177
12.2.2 多字母齊次線性代替 177
12.2.3 多字母變換 177
12.2.4 換位 178
12.2.5 單表代替總結 178
12.3 多表加密 179
12.3.1 d個字母表的PERMUTE加密 179
12.3.2 d張表的MULTIPLEX加密 179
12.3.3 d張表的艾伯蒂加密 179
12.3.4 d張表的維吉尼亞或博福特加密 179
12.3.5 多表加密總結 179
12.4 組合復雜度注記 180
12.4.1 傑斐遜和巴澤里埃斯的圓柱加密 180
12.4.2 雙重換位 181
12.4.3 維吉尼亞加密 181
12.5 窮盡密碼分析 181
12.6 惟一解距離 183
12.7 窮盡攻擊的實現 184
12.8 機械化窮盡 185
12.8.1 代替的窮盡 185
12.8.2 換位的窮盡 187
12.8.3 蠻力與不變性 187
第13章 語言分析:模式 188
13.1 重碼模式的不變性 188
13.2 加密方法的排除 190
13.3 模式查找 190
13.3.1 例子 190
13.3.2 Aristocrats 191
13.3.3 字母脫漏 192
13.4 多字母模式查找 193
13.5 可能字方法 194
13.5.1 對照表 194
13.5.2 Murphy和J奼er 194
13.5.3 F焗rerbefehl 194
13.5.4 代替選取的不變性 198
13.6 模式詞例的自動化窮盡 198
13.6.1 單詞列表 198
13.6.2 模式查找 199
13.6.3 模式連接 199
13.6.4 搜索空間的減小 200
13.7 Pangrams 200
第14章 多表情形:可能字 202
14.1 可能字位置的非重合窮盡 202
14.2 可能字位置的二元非重合窮盡 204
14.3 德維亞里攻擊 206
14.3.1 部分解密 206
14.3.2 完整解密 207
14.3.3 字母組合 209
14.3.4 德維亞里和吉維埃格 210
14.3.5 歷史 211
14.4 可能字位置的Z字形窮盡 212
14.5 同構方法 213
14.5.1 Knox和Candela 213
14.5.2 條形方法 214
14.5.3 部分考查 214
14.5.4 可插接反射器 217
14.5.5 對策 217
14.6 隱藏明文—密文泄露 217
第15章 語言分析:頻率 219
15.1 加密方法的排除 219
15.2 模式的不變性 220
15.3 直覺方法:頻率輪廓 220
15.4 頻率排序 222
15.4.1 頻率排序的缺陷 223
15.4.2 頻率計數 224
15.5 小集團和模式匹配 225
15.5.1 波動 225
15.5.2 小集團 228
15.5.3 例子 228
15.5.4 經驗頻率 229
15.6 最優匹配 230
15.6.1 平方距離 230
15.6.2 最優化 230
15.7 多字母頻率 231
15.7.1 頻率表 231
15.7.2 單詞頻率 233
15.7.3 位置 235
15.7.4 單詞長度 235
15.7.5 單詞的格式 235
15.7.6 空格 236
15.8 頻率匹配的結合方法 236
15.8.1 例之一 236
15.8.2 例之二 238
15.8.3 最後結果 240
15.8.4 匹配一個尾部 241
15.8.5 一個不同的方法 241
15.9 多字母代替的頻率匹配 242
15.9.1 可約情況 242
15.9.2 利用隱含的對稱性 242
15.10 各式各樣的其他方法 243
15.10.1 一個著名的密碼 243
15.10.2 注記 244
15.11 再談惟一解距離 244
第16章 Kappa和Chi 246
16.1 Kappa的定義和不變性 246
16.1.1 常用語言的Kappa值 247
16.1.2 兩個結論 247
16.1.3 Kappa的期望值 248
16.2 Chi的定義和不變性 248
16.2.1 一般結果 249
16.2.2 特殊情形 249
16.2.3 兩個結論 249
16.2.4 Chi的期望值 250
16.3 Kappa-Chi定理 250
16.4 Kappa-Phi定理 251
16.4.1 Kappa-Phi定理 251
16.4.2 Phi(T)與Psi(T)的區別 252
16.4.3 兩個結論 252
16.4.4 Phi的期望值 253
16.5 字元頻率的對稱函數 253
第17章 周期性檢驗 255
17.1 弗里德曼的Kappa試驗 256
17.2 多字母的Kappa試驗 258
17.3 用機器進行的密碼分析 259
17.3.1 穿孔卡的使用 259
17.3.2 鋸木架 260
17.3.3 Robinson方法 261
17.3.4 比較器 262
17.3.5 快速分析機RAM 262
17.4 卡西斯基試驗 263
17.4.1 早期的方法 263
17.4.2 巴貝奇對破解密碼的貢獻 264
17.4.3 例子 264
17.4.4 機器 266
17.5 建立深度和庫爾巴克的Phi試驗 267
17.5.1 列的形成 267
17.5.2 Phi試驗憂於Kappa試驗 268
17.5.3 例子 268
17.6 周期長度的估計 270
第18章 伴隨加密表的校準 272
18.1 輪廓匹配 272
18.1.1 使用深度 272
18.1.2 繪制輪廓圖 274
18.2 根據已知加密表校準 275
18.2.1 利用Chi 275
18.2.2 條形方法 276
18.2.3 額外的幫助 276
18.2.4 滑尺方法 278
18.2.5 方法總結 278
18.3 Chi試驗:伴隨字母表的互相校準 278
18.3.1 例子 279
18.3.2 獲得中間密文 279
18.3.3 一個附帶結果 282
18.4 原始加密表的恢復 282
18.5 克爾克霍夫斯的位置對稱性 284
18.5.1 例子 284
18.5.2 Volap焝 287
18.5.3 令人吃驚的例子 287
18.6 剝離復合加密:求差方法 289
18.6.1 剝離 289
18.6.2 位置的對稱性 289
18.6.3 使用機器 290
18.7 密本的破解 291
18.8 口令字的恢復 291
18.8.1 弗里德曼 291
18.8.2 再論弗里德曼 292
第19章 泄露 293
19.1 克爾克霍夫斯的重疊法 293
19.1.1 例子 293
19.1.2 位置對稱性 294
19.2 用密鑰群加密情況下的重疊法 294
19.2.1 純加密 295
19.2.2 差 296
19.2.3 循環密鑰群 296
19.2.4 其他密鑰群 299
19.2.5 特殊情況C52- 299
19.2.6 Tunny 301
19.2.7 Sturgeon 306
19.3 復合加密代碼的同相重疊法 307
19.3.1 指標的使用 307
19.3.2 孔策 309
19.4 密文-密文泄露 310
19.4.1 密鑰的密文-密文泄露 310
19.4.2 化簡為明文-明文的泄露 311
19.5 辛科夫方法 314
19.5.1 密鑰的直積 314
19.5.2 中間加密 316
19.5.3 還原 318
19.6 密文-密文泄露:雙倍法 319
19.6.1 法國 320
19.6.2 波蘭I 321
19.6.3 波蘭II 324
19.6.4 英國 327
19.7 明文-密文泄露:反饋循環 330
19.7.1 圖靈BOMBE 331
19.7.2 Turing-Welchman BOMBE 334
19.7.3 更多的BOMBE 335
19.7.4 計算機的出現 337
第20章 線性分析 339
20.1 線性多碼代替的化簡 339
20.1.1 例子 339
20.1.2 一個缺憾 340
20.2 密鑰還原 340
20.3 線性移位寄存器的還原 341
第21章 猜字法 344
21.1 換位 344
21.1.1 例子 344
21.1.2 移位的列 346
21.1.3 說明 346
21.1.4 代碼組模式 346
21.1.5 虛幻的復雜 346
21.2 雙重縱行換位 347
21.3 復合猜字法 347
21.3.1 例子 347
21.3.2 實際應用 348
21.3.3 Hassard、Grosvenor、Holden 348
第22章 總結 350
22.1 成功的破譯 350
22.1.1 海軍偵察破譯處和外交部
密碼服務處 351
22.1.2 日本的密碼分析機構 353
22.1.3 前蘇聯陸軍總情報局 354
22.2 非授權解密者的操作方式 354
22.2.1 魅力與不幸 354
22.2.2 個性 355
22.2.3 策略 355
22.2.4 隱藏的危險 356
22.2.5 解密的層次 356
22.2.6 暴力 357
22.2.7 預防 357
22.3 虛假的安全 357
22.4 密碼學的重要性 358
22.4.1 顧慮 358
22.4.2 新思想 359
22.4.3 破解秘密的實質 359
附錄A 公理化資訊理論 361
『伍』 古典密碼兩種加密方式
古典加密演算法:置換密碼
置換密碼演算法的原理是不改變明文字元,只將字元在明文中的排列順序改變,從而實現明文信息的加密。置換密碼有時又稱為換位密碼。
矩陣換位法是實現置換密碼的一種常用方法。它將明文中的字母按照給的順序安排在一個矩陣中,然後用根據密鑰提供的順序重新組合矩陣中字母,從而形成密文。例如,明文為attack
begins
at
five,密鑰為cipher,將明文按照每行6列的形式排在矩陣中,形成如下形式:
a
t
t
a
c
k
b
e
g
i
n
s
a
t
f
i
v
e
根據密鑰cipher中各字母在字母表中出現的先後順序,給定一個置換:
1
2
3
4
5
6
f
=
1
4
5
3
2
6
根據上面的置換,將原有矩陣中的字母按照第1列,第4列,第5列,第3列,第2列,第6列的順序排列,則有下面形式:
a
a
c
t
t
k
b
i
n
g
e
s
a
i
v
f
t
e
從而得到密文:aacttkbingesaivfte
『陸』 誰幫我介紹下加密對稱演算法
A.對稱加密技術 a. 描述 對稱演算法(symmetric algorithm),有時又叫傳統密碼演算法,就是加密密鑰能夠從解密密鑰中推算出來,同時解密密鑰也可以從加密密鑰中推算出來。而在大多數的對稱演算法中,加密密鑰和解密密鑰是相同的。所以也稱這種加密演算法為秘密密鑰演算法或單密鑰演算法。它要求發送方和接收方在安全通信之前,商定一個密鑰。對稱演算法的安全性依賴於密鑰,泄漏密鑰就意味著任何人都可以對他們發送或接收的消息解密,所以密鑰的保密性對通信性至關重要。 b.特點分析 對稱加密的優點在於演算法實現後的效率高、速度快。 對稱加密的缺點在於密鑰的管理過於復雜。如果任何一對發送方和接收方都有他們各自商議的密鑰的話,那麼很明顯,假設有N個用戶進行對稱加密通信,如果按照上述方法,則他們要產生N(N-1)把密鑰,每一個用戶要記住或保留N-1把密鑰,當N很大時,記住是不可能的,而保留起來又會引起密鑰泄漏可能性的增加。常用的對稱加密演算法有DES,DEA等。 B.非對稱加密技術 a.描述 非對稱加密(dissymmetrical encryption),有時又叫公開密鑰演算法(public key algorithm)。這種加密演算法是這樣設計的:用作加密的密鑰不同於用作解密的密鑰,而且解密密鑰不能根據加密密鑰計算出來(至少在合理假定的長時間內)。之所以又叫做公開密鑰演算法是由於加密密鑰可以公開,即陌生人可以得到它並用來加密信息,但只有用相應的解密密鑰才能解密信息。在這種加密演算法中,加密密鑰被叫做公開密鑰(public key),而解密密鑰被叫做私有密鑰(private key)。 b.特點分析 非對稱加密的缺點在於演算法實現後的效率低、速度慢。 非對稱加密的優點在於用戶不必記憶大量的提前商定好的密鑰,因為發送方和接收方事先根本不必商定密鑰,發放方只要可以得到可靠的接收方的公開密鑰就可以給他發送信息了,而且即使雙方根本互不相識。但為了保證可靠性,非對稱加密演算法需要一種與之相配合使用的公開密鑰管理機制,這種公開密鑰管理機制還要解決其他一些公開密鑰所帶來的問題。常用的非對稱加密演算法有RSA等。 (3) 關於密碼技術 密碼技術包括加密技術和密碼分析技術,也即加密和解密技術兩個方面。在一個新的加密演算法的研發需要有相應的數學理論證明,證明這個演算法的安全性有多高,同時還要從密碼分析的角度對這個演算法進行安全證明,說明這個演算法對於所知的分析方法來說是有防範作用的。 三、對稱加密演算法分析 對稱加密演算法的分類 對稱加密演算法可以分成兩類:一類為序列演算法(stream algorithm):一次只對明文中單個位(有時為位元組)加密或解密運算。另一類為分組演算法(block algorithm):一次明文的一組固定長度的位元組加密或解密運算。 現代計算機密碼演算法一般採用的都是分組演算法,而且一般分組的長度為64位,之所以如此是由於這個長度大到足以防止分析破譯,但又小到足以方便使用。 1.DES加密演算法 (Data Encryption Standard )
(1) 演算法簡介
1973 年 5 月 15 日,美國國家標准局 (NBS) 在「聯邦注冊」上發布了一條通知,徵求密碼演算法,用於在傳輸和存儲期間保護數據。IBM 提交了一個候選演算法,它是 IBM 內部開發的,名為 LUCIFER。在美國國家安全局 (NSA) 的「指導」下完成了演算法評估之後,在 1977 年 7 月 15 日,NBS 採納了 LUCIFER 演算法的修正版作為新的數據加密標准。
原先規定使用10年,但由於新的加密標准還沒有完成,所以DES演算法及其的變形演算法一直廣泛的應用於信息加密方面。 (2) 演算法描述 (包括加密和解密)
Feistel結構(畫圖說明)。
DES 的工作方式:可怕的細節
DES 將消息分成 64 位(即 16 個十六進制數)一組進行加密。DES 使用「密鑰」進行加密,從符號的角度來看,「密鑰」的長度是 16 個十六進制數(或 64 位)。但是,由於某些原因(可能是因為 NSA 給 NBS 的「指引」),DES 演算法中每逢第 8 位就被忽略。這造成密鑰的實際大小變成 56 位。編碼系統對「強行」或「野蠻」攻擊的抵抗力與其密鑰空間或者系統可能有多少密鑰有直接關系。使用的位數越多轉換出的密鑰也越多。密鑰越多,就意味著強行攻擊中計算密鑰空間中可能的密鑰范圍所需的時間就越長。從總長度中切除 8 位就會在很大程度上限制了密鑰空間,這樣系統就更容易受到破壞。
DES 是塊加密演算法。這表示它處理特定大小的純文本塊(通常是 64 位),然後返回相同大小的密碼塊。這樣,64 位(每位不是 0 就是 1)有 264 種可能排列,DES 將生成其中的一種排列。每個 64 位的塊都被分成 L、R 左右兩塊,每塊 32 位。
DES 演算法使用以下步驟:
1. 創建 16 個子密鑰,每個長度是 48 位。根據指定的順序或「表」置換 64 位的密鑰。如果表中的第一項是 "27",這表示原始密鑰 K 中的第 27 位將變成置換後的密鑰 K+ 的第一位。如果表的第二項是 36,則這表示原始密鑰中的第 36 位將變成置換後密鑰的第二位,以此類推。這是一個線性替換方法,它創建了一種線性排列。置換後的密鑰中只出現了原始密鑰中的 56 位。
2. 接著,將這個密鑰分成左右兩半,C0 和 D0,每一半 28 位。定義了 C0 和 D0 之後,創建 16 個 Cn 和 Dn 塊,其中 1<=n<=16。每一對 Cn 和 Dn 塊都通過使用標識「左移位」的表分別從前一對 Cn-1 和 Dn-1 形成,n = 1, 2, ..., 16,而「左移位」表說明了要對哪一位進行操作。在所有情況下,單一左移位表示這些位輪流向左移動一個位置。在一次左移位之後,28 個位置中的這些位分別是以前的第 2、3……28 位。
通過將另一個置換表應用於每一個 CnDn 連接對,從而形成密鑰 Kn,1<=n<=16。每一對有 56 位,而置換表只使用其中的 48 位,因為每逢第 8 位都將被忽略。
3. 編碼每個 64 位的數據塊。
64 位的消息數據 M 有一個初始置換 IP。這將根據置換表重新排列這些位,置換表中的項按這些位的初始順序描述了它們新的排列。我們以前見過這種線性表結構。
使用函數 f 來生成一個 32 位的塊,函數 f 對兩個塊進行操作,一個是 32 位的數據塊,一個是 48 位的密鑰 Kn,連續迭代 16 次,其中 1<=n<=16。用 + 表示 XOR 加法(逐位相加,模除 2)。然後,n 從 1 到 16,計算 Ln = Rn-1 Rn = Ln-1 + f(Rn-1,Kn)。即在每次迭代中,我們用前一結果的右邊 32 位,並使它們成為當前步驟中的左邊 32 位。對於當前步驟中的右邊 32 位,我們用演算法 f XOR 前一步驟中的左邊 32 位。
要計算 f,首先將每一塊 Rn-1 從 32 位擴展到 48 位。可以使用選擇表來重復 Rn-1 中的一些位來完成這一操作。這個選擇表的使用就成了函數 f。因此 f(Rn-1) 的輸入塊是 32 位,輸出塊是 48 位。f 的輸出是 48 位,寫成 8 塊,每塊 6 位,這是通過根據已知表按順序選擇輸入中的位來實現的。
我們已經使用選擇表將 Rn-1 從 32 位擴展成 48 位,並將結果 XOR 密鑰 Kn。現在有 48 位,或者是 8 組,每組 6 位。每組中的 6 位現在將經歷一次變換,該變換是演算法的核心部分:在叫做「S 盒」的表中,我們將這些位當作地址使用。每組 6 位在不同的 S 盒中表示不同的地址。該地址中是一個 4 位數字,它將替換原來的 6 位。最終結果是 8 組,每組 6 位變換成 8 組,每組 4 位(S 盒的 4 位輸出),總共 32 位。
f 計算的最後階段是對 S 盒輸出執行置換 P,以得到 f 的最終值。f 的形式是 f = P(S1(B1)S2(B2)...S8(B8))。置換 P 根據 32 位輸入,在以上的過程中通過置換輸入塊中的位,生成 32 位輸出。
解密只是加密的逆過程,使用以上相同的步驟,但要逆轉應用子密鑰的順序。DES 演算法是可逆的
(2) 演算法的安全性分析
在知道一些明文和密文分組的條件下,從理論上講很容易知道對DES進行一次窮舉攻擊的復雜程度:密鑰的長度是56位,所以會有 種的可能的密鑰。
在1993年的一年一度的世界密碼大會上,加拿大北方電信公司貝爾實驗室的 Michael Wiener 描述了如何構造一台專用的機器破譯DES,該機器利用一種每秒能搜索5000萬個密鑰的專用晶元。而且此機器的擴展性很好,投入的經費越多則效率越高。用100萬美元構造的機器平均3.5小時就可以破譯密碼。
如果不用專用的機器,破譯DES也有其他的方法。在1994年的世界密碼大會上,M.Matsui 提出一種攻克DES的新方法--"線性密碼分析"法。它可使用平均 個明文及其密文,在12台HP9000/735工作站上用此方法的軟體實現,花費50天時間完成對DES的攻擊。
如前所述DES作為加密演算法的標准已經二十多年了,可以說是一個很老的演算法,而在新的加密演算法的國際標准出現之前,許多DES的加固性改進演算法仍有實用價值,在本文的3.4節詳細的描述,同時考慮的以上所述DES的安全性已受到了威脅。
(4) 演算法的變體 三重DES(TDEA),使用3個密鑰,執行3次DES演算法:
加密:C = Ek3[Dk2[Ek1[P]]] 解密:P = Dk1[Ek2[Dk3[C]]]
特點:安全性得到增強,但是速度變慢。
2.AES
自 20 世紀 70 年代以來一直廣泛使用的「數據加密標准」(DES) 日益顯出衰老的痕跡,而一種新的演算法 -- Rijndael -- 正順利地逐漸變成新標准。這里,Larry Loeb 詳細說明了每一種演算法,並提供了關於為什麼會發生這種變化的內幕信息。
DES 演算法是全世界最廣泛使用的加密演算法。最近,就在 2000 年 10 月,它在其初期就取得的硬體方面的優勢已經阻礙了其發展,作為政府加密技術的基礎,它已由「高級加密標准」(AES) 中包含的另一種加密演算法代替了。AES 是指定的標准密碼系統,未來將由政府和銀行業用戶使用。AES 用來實際編碼數據的加密演算法與以前的 DES 標准不同。我們將討論這是如何發生的,以及 AES 中的 Rijndael 演算法是如何取代 DES 的演算法的。
「高級加密標准」成就
但直到 1997 年,美國國家標准技術局 (NIST) 才開始打著 AES 項目的旗幟徵集其接任者。1997 年 4 月的一個 AES 研討會宣布了以下 AES 成就的最初目標:
• 可供政府和商業使用的功能強大的加密演算法
• 支持標准密碼本方式
• 要明顯比 DES 3 有效
• 密鑰大小可變,這樣就可在必要時增加安全性
• 以公正和公開的方式進行選擇
• 可以公開定義
• 可以公開評估
AES 的草案中最低可接受要求和評估標準是:
A.1 AES 應該可以公開定義。
A.2 AES 應該是對稱的塊密碼。
A.3 AES 應該設計成密鑰長度可以根據需要增加。
A.4 AES 應該可以在硬體和軟體中實現。
A.5 AES 應該 a) 可免費獲得。
A.6 將根據以下要素評價符合上述要求的演算法:
1. 安全性(密碼分析所需的努力)
2. 計算效率
3. 內存需求
4. 硬體和軟體可適用性
5. 簡易性
6. 靈活性
7. 許可證需求(見上面的 A5)
Rijndael:AES 演算法獲勝者
1998年8月20日NIST召開了第一次AES侯選會議,並公布了15個AES侯選演算法。經過一年的考察,MARS,RC6,Rijndael,Serpent,Twofish共5種演算法通過了第二輪的選拔。2000 年 10 月,NIST 選擇 Rijndael(發音為 "Rhine dale")作為 AES 演算法。它目前還不會代替 DES 3 成為政府日常加密的方法,因為它還須通過測試過程,「使用者」將在該測試過程後發表他們的看法。但相信它可以順利過關。
Rijndael 是帶有可變塊長和可變密鑰長度的迭代塊密碼。塊長和密鑰長度可以分別指定成 128、192 或 256 位。
Rijndael 中的某些操作是在位元組級上定義的,位元組表示有限欄位 GF(28) 中的元素,一個位元組中有 8 位。其它操作都根據 4 位元組字定義。
加法照例對應於位元組級的簡單逐位 EXOR。
在多項式表示中,GF(28) 的乘法對應於多項式乘法模除階數為 8 的不可約分二進制多項式。(如果一個多項式除了 1 和它本身之外沒有其它約數,則稱它為不可約分的。)對於 Rijndael,這個多項式叫做 m(x),其中:m(x) = (x8 + x4 + x3 + x + 1) 或者十六進製表示為 '11B'。其結果是一個階數低於 8 的二進制多項式。不像加法,它沒有位元組級的簡單操作。
不使用 Feistel 結構!
在大多數加密演算法中,輪回變換都使用著名的 Feistel 結構。在這個結構中,中間 State 的位部分通常不做更改調換到另一個位置。(這種線性結構的示例是我們在 DES 部分中討論的那些表,即使用固定表的形式交換位。)Rijndael 的輪回變換不使用這個古老的 Feistel 結構。輪回變換由三個不同的可逆一致變換組成,叫做層。(「一致」在這里表示以類似方法處理 State 中的位。)
線性混合層保證了在多個輪回後的高度擴散。非線性層使用 S 盒的並行應用,該應用程序有期望的(因此是最佳的)最差非線性特性。S 盒是非線性的。依我看來,這就 DES 和 Rijndael 之間的密鑰概念差異。密鑰加法層是對中間 State 的輪回密鑰 (Round Key) 的簡單 EXOR,如以下所注。
Rijndael演算法
加密演算法
Rijndael演算法是一個由可變數據塊長和可變密鑰長的迭代分組加密演算法,數據塊長和密鑰長可分別為128,192或256比特。
數據塊要經過多次數據變換操作,每一次變換操作產生一個中間結果,這個中間結果叫做狀態。狀態可表示為二維位元組數組,它有4行,Nb列,且Nb等於數據塊長除32。如表2-3所示。
a0,0 a0,1 a0,2 a0,3 a0,4 a0,5
a1,0 a1,1 a1,2 a1,3 a1,4 a1,5
a2,0 a2,1 a2,2 a2,3 a2,4 a2,5
a3,0 a3,1 a3,2 a3,3 a3,4 a3,5
數據塊按a0,0 , a1,0 , a2,0 , a3,0 , a0,1 , a1,1 , a2,1 , a3,1 , a0,2…的順序映射為狀態中的位元組。在加密操作結束時,密文按同樣的順序從狀態中抽取。
密鑰也可類似地表示為二維位元組數組,它有4行,Nk列,且Nk等於密鑰塊長除32。演算法變換的圈數Nr由Nb和Nk共同決定,具體值列在表2-4中。
表3-2 Nb和Nk決定的Nr的值
Nr Nb = 4 Nb = 6 Nb = 8
Nk = 4 10 12 14
Nk = 6 12 12 14
Nk = 8 14 14 14
3.2.1圈變換
加密演算法的圈變換由4個不同的變換組成,定義成:
Round(State,RoundKey)
{
ByteSub(State);
ShiftRow(State);
MixColumn(State);
AddRoundKey(State,RoundKey); (EXORing a Round Key to the State)
}
加密演算法的最後一圈變換與上面的略有不同,定義如下:
FinalRound(State,RoundKey)
{
ByteSub(State);
ShiftRow(State);
AddRoundKey(State,RoundKey);
}
ByteSub變換
ByteSub變換是作用在狀態中每個位元組上的一種非線形位元組變換。這個S盒子是可逆的且由以下兩部分組成:
把位元組的值用它的乘法逆替代,其中『00』的逆就是它自己。
經(1)處理後的位元組值進行如下定義的仿射變換:
y0 1 1 1 1 1 0 0 0 x0 0
y1 0 1 1 1 1 1 0 0 x1 1
y2 0 0 1 1 1 1 1 0 x2 1
y3 0 0 0 1 1 1 1 1 x3 0
y4 = 1 0 0 0 1 1 1 1 x4 + 0
y5 1 1 0 0 0 1 1 1 x5 0
y6 1 1 1 0 0 0 1 1 x6 1
y7 1 1 1 1 0 0 0 1 x7 1
ShiftRow變換
在ShiftRow變換中,狀態的後3行以不同的移位值循環右移,行1移C1位元組,行2移C2位元組,行3移C3位元組。
移位值C1,C2和C3與加密塊長Nb有關,具體列在表2-5中:
表3-3 不同塊長的移位值
Nb C1 C2 C3
4 1 2 3
MixColumn變換
在MixColumn變換中,把狀態中的每一列看作GF(28)上的多項式與一固定多項式c(x)相乘然後模多項式x4+1,其中c(x)為:
c(x) =『03』x3 + 『01』x2 + 『01』x + 『02』
圈密鑰加法
在這個操作中,圈密鑰被簡單地使用異或操作按位應用到狀態中。圈密鑰通過密鑰編製得到,圈密鑰長等於數據塊長Nb。
在這個表示法中,「函數」(Round, ByteSub, ShiftRow,...) 對那些被提供指針 (State, RoundKey) 的數組進行操作。ByteSub 變換是非線性位元組交換,各自作用於每個 State 位元組上。在 ShiftRow 中,State 的行按不同的偏移量循環移位。在 MixColumn 中,將 State 的列視為 GF(28) 多項式,然後乘以固定多項式 c( x ) 並模除 x4 + 1,其中 c( x ) = '03' x3 + '01' x2+ '01' x + '02'。這個多項式與 x4 + 1 互質,因此是可逆的。
輪回密鑰通過密鑰計劃方式從密碼密鑰 (Cipher Key) 派生而出。它有兩個組件:密鑰擴展 (Key Expansion) 和輪回密鑰選擇 (Round Key Selection)。輪回密鑰的總位數等於塊長度乘以輪回次數加 1(例如,塊長度等於 128 位,10 次輪回,那麼就需要 1408 個輪回密鑰位)。
密碼密鑰擴充成擴展密鑰 (Expanded Key)。輪回密鑰是通過以下方法從這個擴展密鑰中派生的:第一個輪回密鑰由前 Nb(Nb = 塊長度)個字組成,第二個由接著的 Nb 個字組成,以此類推。
加密演算法由以下部分組成:初始輪回密鑰加法、Nr-1 個輪回和最後一個輪回。在偽 C 代碼中:
Rijndael(State,CipherKey)
{
KeyExpansion(CipherKey,ExpandedKey);
AddRoundKey(State,ExpandedKey);
For( i=1 ; i<Nr ; i++ ) Round(State,ExpandedKey + Nb*i);
FinalRound(State,ExpandedKey + Nb*Nr).
}
如果已經預先執行了密鑰擴展,則可以根據擴展密鑰指定加密演算法。
Rijndael(State,ExpandedKey)
{
AddRoundKey(State,ExpandedKey);
For( i=1 ; i<Nr ; i++ ) Round(State,ExpandedKey + Nb*i);
FinalRound(State,ExpandedKey + Nb*Nr);
}
由於 Rijndael 是可逆的,解密過程只是顛倒上述的步驟。
最後,開發者將仔細考慮如何集成這種安全性進展,使之成為繼 Rijndael 之後又一個得到廣泛使用的加密演算法。AES 將很快應一般商業團體的要求取代 DES 成為標准,而該領域的發展進步無疑將追隨其後。
3.IDEA加密演算法 (1) 演算法簡介 IDEA演算法是International Data Encryption Algorithmic 的縮寫,意為國際數據加密演算法。是由中國學者朱學嘉博士和著名密碼學家James Massey 於1990年聯合提出的,當時被叫作PES(Proposed Encryption Standard)演算法,後為了加強抵抗差分密碼分,經修改於1992年最後完成,並命名為IDEA演算法。 (2) 演算法描述 這個部分參見論文上的圖 (3) 演算法的安全性分析 安全性:IDEA的密鑰長度是128位,比DES長了2倍多。所以如果用窮舉強行攻擊的話, 么,為了獲得密鑰需要 次搜索,如果可以設計一種每秒能搜索十億把密鑰的晶元,並且 採用十億個晶元來並行處理的話,也要用上 年。而對於其他攻擊方式來說,由於此演算法 比較的新,在設計時已經考慮到了如差分攻擊等密碼分析的威脅,所以還未有關於有誰 發現了能比較成功的攻擊IDEA方法的結果。從這點來看,IDEA還是很安全的。
4.總結
幾種演算法的性能對比
演算法 密鑰長度 分組長度 循環次數
DES 56 64 16
三重DES 112、168 64 48
AES 128、192、256 128 10、12、14
IDEA 128 64 8
速度:在200MHz的奔騰機上的對比。
C++ DJGP(++pgcc101)
AES 30.2Mbps 68.275Mbps
DES(RSAREF) 10.6Mbps 16.7Mbps
3DES 4.4Mbps 7.3Mbps
Celeron 1GHz的機器上AES的速度,加密內存中的數據
128bits密鑰:
C/C++ (Mbps) 匯編(Mbps)
Linux 2.4.7 93 170
Windows2K 107 154
256bits密鑰:
C/C++ (Mbps) 匯編(Mbps)
Linux 2.4.7 76 148
Windows2K 92 135
安全性
1990年以來,特製的"DES Cracker"的機器可在幾個小時內找出一個DES密鑰。換句話說,通過測試所有可能的密鑰值,此硬體可以確定用於加密信息的是哪個密鑰。假設一台一秒內可找出DES密鑰的機器(如,每秒試255個密鑰),如果用它來找出128-bit AES的密鑰,大約需要149萬億年。
四、對稱加密應用 在保密通信中的應用。(保密電話) 附加內容
安全哈希演算法(SHA)
由NIST開發出來的。
此演算法以最大長度不超過264位的消息為輸入,生成160位的消息摘要輸出。主要步驟:
1. 附加填充位
2. 附加長度
3. 初始化MD緩沖區,為160位的數據
A=67452301
B=EFCDAB89
C=89BADCFE
D=10325476
E=C3D2E1F0
4. 處理512位消息塊,將緩沖虛數據和消息塊共同計算出下一個輸出
5. 輸出160位摘要
此外還有其他哈希演算法,如MD5(128位摘要),RIPEMD-160(160位摘要)等。
『柒』 某人接貨一段換位加密的密文,已知密鑰字元串為「dragon」請解出明文,並寫出詳細破譯過程
明文:
過程:
密文是
密鑰dragon 排序後是adgnor
所以密文為 a...a d....d g...g n...n o...o r...r
可見a = EOITUTRIA
d = SEUSMNKSL
g = NPVYTWOOA
n = HNRORREAA
o = ZEECEOFNA
r = HNNIPEPSA
調整次序,得:
d = SEUSMNKSL
r = HNNIPEPSA
a = EOITUTRIA
g = NPVYTWOOA
o = ZEECEOFNA
n = HNRORREAA
明文排列次序為 dragon... dragon: (第i個dragon由上面的數組各取第i個元素組成)
所以得明文:
『捌』 換位密碼的加密方法
加密換位密碼通過密鑰只需要對明文進行加密,並且重新排列裡面的字母位置即可。具體方法如下
1、基於二維數組移位的加密演算法
給定一個二維數組的列數,即該二維數組每行可以保存的字元個數。再將明文字元串按行依次排列到該二維數組中。最後按列讀出該二維數組中的字元,這樣便可得到密文。
2、換位解密演算法(基於二維數組移位的解密演算法)
先給定一個二維數組的列數,即該二維數組每行可以保存的字元個數,並且這個數應該和加密演算法中的一致。接下來將密文字元串按列一次性排列到該二維數組中。最後按行讀出該二維數組中的字元即可。
3、換位加密演算法
首先按照密鑰排列順序:將想要加密的明文加密,然後列出表格,找出對應的字母,就是密鑰。然後對他們進行換位加密,就是將表格的第二行依據密鑰排列順序進行排序以便得到加密後的密文。
(8)圓柱換位加密演算法擴展閱讀
數據加密技術的分類
1、專用密鑰
又稱為對稱密鑰或單密鑰,加密和解密時使用同一個密鑰,即同一個演算法。單密鑰是最簡單方式,通信雙方必須交換彼此密鑰,當需給對方發信息時,用自己的加密密鑰進行加密,而在接收方收到數據後,用對方所給的密鑰進行解密。當一個文本要加密傳送時,該文本用密鑰加密構成密文,密文在信道上傳送,收到密文後用同一個密鑰將密文解出來,形成普通文體供閱讀。
2、對稱密鑰
對稱密鑰是最古老的,一般說「密電碼」採用的就是對稱密鑰。由於對稱密鑰運算量小、速度快、安全強度高,因而如今仍廣泛被採用。它將數據分成長度為64位的數據塊,其中8位用作奇偶校驗,剩餘的56位作為密碼的長度。首先將原文進行置換,得到64位的雜亂無章的數據組,然後將其分成均等兩段;第三步用加密函數進行變換,並在給定的密鑰參數條件下,進行多次迭代而得到加密密文。
3、公開密鑰
又稱非對稱密鑰,加密和解密時使用不同的密鑰,即不同的演算法,雖然兩者之間存在一定的關系,但不可能輕易地從一個推導出另一個。非對稱密鑰由於兩個密鑰(加密密鑰和解密密鑰)各不相同,因而可以將一個密鑰公開,而將另一個密鑰保密,同樣可以起到加密的作用。公開密鑰的加密機制雖提供了良好的保密性,但難以鑒別發送者,即任何得到公開密鑰的人都可以生成和發送報文。
4、非對稱加密技術
數字簽名一般採用非對稱加密技術(如RSA),通過對整個明文進行某種變換,得到一個值,作為核實簽名。接收者使用發送者的公開密鑰對簽名進行解密運算,如其結果為明文,則簽名有效,證明對方的身份是真實的。數字簽名不同於手寫簽字,數字簽名隨文本的變化而變化,手寫簽字反映某個人個性特徵,是不變的;數字簽名與文本信息是不可分割的,而手寫簽字是附加在文本之後的,與文本信息是分離的。
『玖』 換位加密法的基本定義
換位加密演算法是一種較為簡單的加密演算法,由明文、密鑰得出最後的密文,就是通過密鑰對明文進行加密,換個位置。
『拾』 古典加密技術中最基本的兩種演算法是什麼
替代演算法和置換移位法。
1.替代演算法
替代演算法指的是明文的字母由其他字母或數字或符號所代替。最著名的替代演算法是愷撒密碼。凱撒密碼的原理很簡單,其實就是單字母替換。我們看一個簡單的例子:
明文:abcdefghijklmnopq
密文:defghijklmnopqrst
若明文為student,對應的密文則為vwxghqw 。在這個一一對應的演算法中,愷撒密碼將字母表用了一種順序替代的方法來進行加密,此時密鑰為3,即每個字母順序推後3個。由於英文字母為26個,因此愷撒密碼僅有26個可能的密鑰,非常不安全。
為了加強安全性,人們想出了更進一步的方法:替代時不是有規律的,而是隨機生成一個對照表。
明文:abcdefghijklmnopqrstuvwxyz
密文:xnyahpogzqwbtsflrcvmuekjdI
此時,若明文為student,對應的密文則為 vmuahsm 。這種情況下,解密函數是上面這個替代對照表的一個逆置換。
不過,有更好的加密手段,就會有更好的解密手段。而且無論怎樣的改變字母表中的字母順序,密碼都有可能被人破解。由於英文單詞中各字母出現的頻度是不一樣的,通過對字母頻度的統計就可以很容易的對替換密碼進行破譯。為了抗擊字母頻度分析,隨後產生了以置換移位法為主要加密手段的加密方法。
2.置換移位法
使用置換移位法的最著名的一種密碼稱為維吉尼亞密碼。它以置換移位為基礎的周期替換密碼。
前面介紹的替代演算法中,針對所有的明文字母,密鑰要麼是一個唯一的數,要麼則是完全無規律可尋的。在維吉尼亞密碼中,加密密鑰是一個可被任意指定的字元串。加密密鑰字元依次逐個作用於明文信息字元。明文信息長度往往會大於密鑰字元串長度,而明文的每一個字元都需要有一個對應的密鑰字元,因此密鑰就需要不斷循環,直至明文每一個字元都對應一個密鑰字元。對密鑰字元,我們規定密鑰字母a,b,c,d……y,z對應的數字n為:0,1,2,3……24,25。每個明文字元首先找到對應的密鑰字元,然後根據英文字母表按照密鑰字元對應的數字n向後順序推後n個字母,即可得到明文字元對應的密文字元。
如果密鑰字為deceptive , 明文為 wearediscoveredsaveyourself,則加密的過程為:
明文: wearediscoveredsaveyourself
密鑰: deceptivedeceptivedeceptive
密文: zicvtwqngrzgvtwavzhcqyglmgj
對明文中的第一個字元w,對應的密鑰字元為d,它對應需要向後推3個字母,w,x,y,z,因此其對應的密文字元為z。上面的加密過程中,可以清晰的看到,密鑰deceptive被重復使用。
古典密碼體制將數學的方法引入到密碼分析和研究中。這為現代加密技術的形成和發展奠定了堅實的基礎。