1. 對稱密碼術的對稱密碼的類型
現在,通常使用分組密碼(block cipher)或序列密碼(stream cipher)實現對稱密碼,我們將在此討論這兩種密碼。這一特性中還要考慮稱為「消息認證代碼(Message Authentication Code,MAC)」的一種使 用秘鑰的校驗和機制。MAC 與消息摘要 是完全不同的,消息摘要是在數字簽名中使用的,將在關於非對稱密碼術(第 3 部分)的特性中討論。 分組密碼將定長的明文塊轉換成等長的密文,這一過程在秘鑰的控制之下。使用逆向變換和同一密鑰來實現解密。對於當前的許多分組密碼,分組大小是 64 位,但這很可能會增加。
明文消息通常要比特定的分組大小長得多,而且使用不同的技術或操作方式。這樣的方式示例有:電子編碼本(ECB)、密碼分組鏈接(CBC)或密碼反饋(CFB)。ECB 使用同一個密鑰簡單地將每個明文塊一個接一個地進行加密;在 CBC 方式中,每個明文塊在加密前先與前一密文塊進行「異或」運算,從而增加了復雜程度,可以使某些攻擊更難以實施。 「輸出反饋」方式(OFB)類似 CBC 方式,但是進行「異或」的量是獨立生成的。 CBC 受到廣泛使用,例如在 DES(qv)實現中,而且在有關密碼術的技術性方面的相應書籍中深入討論了各種方式。請注意:您自己建立的 密碼系統的普遍弱點就是以簡單的形式來使用某些公開的演算法,而不是以提供了額外保護的特定方式使用。
迭代的分組密碼是那些其加密過程有多次循環的密碼,因此提高了安全性。在每個循環中,可以通過使用特殊的函數從初始秘鑰派生出的子密鑰來應用適當的變換。該附加的計算需求必然會影響可以管理加密的速度,因此在安全性需要和執行速度之間存在著一種平衡。天下沒有免費的午餐,密碼術也是如此;與其它地方一樣,應用適當方法的技巧中有一部分是源於對需要進行的權衡以及它們與需求平衡的關系如何的理解。
分組密碼包括 DES、IDEA、SAFER、Blowfish 和 Skipjack — 最後一個是「美國國家安全局(US National Security Agency,NSA)」限制器晶元中使用的演算法。 與分組密碼相比,序列密碼可以是非常快速的,盡管某些方式下工作的一些分組密碼(如 CFB 或 OFB 中的 DES)可以與序列密碼一樣有效地運作。序列密碼作用於由若干位組成的一些小型組,通常使用稱為密鑰流的一個位序列作為密鑰對它們逐位應用「異或」運算。有些序列密碼基於一種稱作「線形 反饋移位寄存器(Linear Feedback Shift Register,LFSR)」的機制,該機制生成一個二進制位序列。
序列密碼是由一種專業的密碼,Vernam 密碼(也稱為一次性密碼本(one-time pad)),發展而來的。序列密碼的示例包括 RC4 和「軟體優化加密演算法(Software Optimized Encryption Algorithm,SEAL)」,以及 Vernam 密碼或一次性密碼本的特殊情形。 消息認證代碼(MAC)並不是密碼,而是校驗和(通常是 32 位)的一種特殊形式,它是通過使用一個秘鑰並結合一個特定認證方案而生成的,並且附加在一條消息後。消息摘要是使用單向散列函數生成的,緊密聯系的數字簽名是使用非對稱密鑰對生成並進行驗證的。與這兩者相比,預期的接收 方需要對秘鑰有訪問權,以便驗證代碼。
2. 替代密碼的替代密碼的分類
根據密碼演算法加解密時使用替換表多少的不同,替代密碼又可分為單表替代密碼和多表替代密碼。
單表替代密碼的密碼演算法加解密時使用一個固定的替換表。單表替代密碼又可分為一般單表替代密碼、移位密碼、仿射密碼、密鑰短語密碼。
多表替代密碼的密碼演算法加解密時使用多個替換表。 多表替代密碼有弗吉尼亞密碼、希爾(Hill)密碼、一次一密鑰密碼、Playfair密碼。 單表替代密碼對明文中的所有字母都使用一個固定的映射(明文字母表到密文字母表)。設A={a0, a1,…, an-1}為包含了n個字母的明文字母表;
B={b0, b1,…, bn-1} 為包含n個字母的密文字母表,單表替代密碼使用了A到B的映射關系:f:A→B, f ( ai )= bj
一般情況下,f 是一一映射,以保證加密的可逆性。加密變換過程就是將明文中的每一個字母替換為密文字母表的一個字母。而單表替代密碼的密鑰就是映射f或密文字母表。經常密文字母表與明文字母表的字元集是相同的,這時的密鑰就是映射f。下面給出幾種典型的單表替代密碼。
⒈一般單表替代密碼
一般單表替代密碼的原理是以26個英文字母集合上的一個置換π為密鑰,對明文消息中的每個字母依次進行變換。可描述為:明文空間M和密文空間C都是26個英文字母的集合,密鑰空間K={π:Z26→Z26|π是置換},是所有可能置換的集合。
對任意π∈K,定義:
加密變換:eπ(m)=π(m)=c
解密變換:dπ(c) = π-1(c)=m, π-1是π的逆置換。
例:設置換π的對應關系如下:
a b c d e f g h i j k l m n o p q r s t u v w x y z
q w e r t y u i o p a s d f g h j k l z x c v b n m
試用單表替代密碼以π為密鑰對明文消息message加密,然後寫出逆置換 ,並對密文解密。
解:以π為密鑰用單表替代密碼對明文消息message加密,所得
密文消息為: π(m) π(e) π(s) π(s) π(a) π(g) π(e)=dtllqut
一般單表替代密碼演算法特點:
▲密鑰空間K很大,|K|=26!=4×10^26 ,破譯者窮舉搜索計算不可行,1微秒試一個密鑰,遍歷全部密鑰需要1013 年。
▲移位密碼體制是替換密碼體制的一個特例,它僅含26個置換做為密鑰空間。
密鑰π不便記憶。
▲針對一般替換密碼密鑰π不便記憶的問題,又衍生出了各種形式單表替代密碼。
⒉移位密碼
明文空間M、密文空間C都是和密鑰空間K滿足,即把26個英文字母與整數0,1,2,…,25一一對應。
加密變換,E={E:Z26→Z26, Ek (m) = m + k (mod26)| m∈M, k∈K }
解密變換,D={D:Z26→Z26, Dk (c) = c-k (mod26)| c∈C, k∈K }
解密後再把Z26中的元素轉換英文字母。
顯然,移位密碼是前面一般單表替代密碼的一個特例。當移位密碼的 密鑰k=3時,就是歷史上著名的凱撒密碼(Caesar)。根據其加密函數特 點,移位密碼也稱為加法密碼。
⒊仿射密碼
仿射密碼也是一般單表替代密碼的一個特例,是一種線性變換。仿射密碼的明文空間和密文空間與移位密碼相同,但密鑰空間為 K={(k1,k2)| k1,k2∈Z26,gcd(k1,26)=1}
對任意m∈M,c∈C,k = (k1,k2)∈K,定義加密變換為 c = Ek (m) = k1 m +k2 (mod 26)
相應解密變換為: m = Dk (c) = k1 (c-k2) (mod 26)
其中,K1 k1=1mod26 。很明顯,k1=1時即為移位密碼,而k2=1則稱為乘法密碼。
⒋密鑰短語密碼
選用一個英文短語或單詞串作為密鑰,去掉其中重復的字母得到一個無重復字母的字元串,然後再將字母表中的其它字母依次寫於此字母串後,就可構造出一個字母替代表。當選擇上面的密鑰進行加密時,若明文為「china」,則密文為「yfgmk」。顯然,不同的密鑰可以得到不同的替換表,對於明文為英文單詞或短語的情況時,密鑰短語密碼最多可能有26!=4×1026個不同的替換表。 單表替代密碼表現出明文中單字母出現的頻率分布與密文中相同, 多表替代密碼使用從明文字母到密文字母的多個映射來隱藏單字母出現 的頻率分布,每個映射是簡單替代密碼中的一對一映射多表替代密碼將 明文字母劃分為長度相同的消息單元,稱為明文分組,對明文成組地進 行替代,同一個字母有不同的密文,改變了單表替代密碼中密文的唯一 性,使密碼分析更加困難。
多表替代密碼的特點是使用了兩個或兩個以上的替代表。著名的維吉尼亞密碼和Hill密碼等均是多表替代密碼。
⒈維吉尼亞密碼
維吉尼亞密碼是最古老而且最著名的多表替代密碼體制之一,與位移密碼體制相似,但維吉尼亞密碼的密鑰是動態周期變化的。
該密碼體制有一個參數n。在加解密時,同樣把英文字母映射為0-25的數字再進行運算,並按n個字母一組進行變換。明文空間、密文空間及密鑰空間都是長度為n的英文字母串的集合,因此可表示
加密變換定義如下:
設密鑰 k=(k1,k2,…,kn), 明文m=(m1,m2,…,mn), 加密變換為:
Ek(m)=(c1,c2,…,cn),
其中ci(mi + ki)(mod26),i =1,2,…,n
對密文 c=(c1,c2,…,cn), 解密變換為:
Dk(c)=(m1,m2,…,mn), 其中 mi=(ci -ki)(mod26),i =1,2,…,n
⒉希爾(Hill)密碼
Hill密碼演算法的基本思想是將n個明文字母通過線性變換,將它們轉換為n個密文字母。解密只需做一次逆變換即可。
⒊一次一密密碼(One Time Pad)
若替代碼的密鑰是一個隨機且不重復的字元序列,這種密碼則稱為一次一密密碼,因為它的密鑰只使用一次。該密碼體制是美國電話電報公司的Joseph Mauborgne在1917年為電報通信設計的一種密碼,所以又稱為Vernam密碼。Vernam密碼在對明文加密,前首先將明文編碼為(0,1)序列,然後再進行加密變換。
設m=(m1 m2 m3 … mi …)為明文,k=(k1 k2 k3 … ki …)為密鑰,其中mi,ki ∈(0,1), i≥1, 則加密變換為: c=(c1 c2 c3 … ci …) ,其中ci = mi Å ki , i≥1,
這里為模2加法(或異或運算)
解密變換為:
m=(m1 m2 m3 … mi …) ,其中mi = ci Å ki , i≥1,
在應用Vernam密碼時,如果對不同的明文使用不同的隨機密鑰,這時Vernam密碼為一次一密密碼。由於每一密鑰序列都是等概率隨機產生的,敵手沒有任何信息用來對密文進行密碼分析。香農(Claude Shannon)從資訊理論的角度證明了這種密碼體制在理論上是不可破譯的。但如果重復使用同一個密鑰加密不同的明文,則這時的Vernam密碼就較為容易破譯。
若敵手獲得了一個密文c=(c1 c2 c3 … ci …) 和對應明文m=(m1 m2 m3 … mi …) 時,就很容易得出密鑰 k=(k1 k2 k3 … ki …) ,其中ki = ciÅ mi,i≥1。 故若重復使用密鑰,該密碼體制就很不安全。
實際上Vernam密碼屬於序列密碼,加密解密方法都使用模2加,這使軟
硬體實現都非常簡單。但是,這種密碼體制雖然理論上是不可破譯的,然而
在實際應用中,真正的一次一密系統卻受到很大的限制,其主要原因在於該
密碼體制要求:
① 密鑰是真正的隨機序列;
② 密鑰長度大於等於明文長度;
③ 每個密鑰只用一次(一次一密)。
這樣,分發和存儲這樣的隨機密鑰序列,並確保密鑰的安全都是很因難
的;另外,如何生成真正的隨機序列也是一個現實問題。因此,人們轉而尋
求實際上不對攻破的密碼系統。
⒋Playfair密碼
Playfair密碼是一種著名的雙字母單表替代密碼,實際上Playfair密碼屬於一種多字母替代密碼,它將明文中的雙字母作為一個單元對待,並將這些單元轉換為密文字母組合。替代時基於一個5×5的字母矩陣。字母矩陣構造方法同密鑰短語密碼類似,即選用一個英文短語或單詞串作為密鑰,去掉其中重復的字母得到一個無重復字母的字元串,然後再將字母表中剩下的字母依次從左到右、從上往下填入矩陣中,字母I,j占同一個位置。
3. asp加密的加密方式
它的基本原理是,需要有一個需要加密的明文和一個隨機生成的解密鑰匙文件。然後使用這兩個文件組合起來生成密文。
我們首先從密鑰文件中得到密鑰值,然後從這段密鑰中截取和我們需要加密的明文同樣長度的密鑰。然後使用一個簡單的異或操作將明文和密鑰進行運算,那麼得到的結果就是加密後的密文了。過程很簡單的。由於是使用了異或操作,所以解密將非常簡單,只要使用同樣的密鑰對密文再次進行異或操作就能夠解密了。在上面介紹的基礎上,你可以少加改動,就可以使用同樣的方法加密一個文件。唯一需要注意的是,對於一個二進制文件,你需要做一些完整性檢查以保證轉換回來的字元不要越界。現在你需要做的就是把密鑰保存在伺服器上的一個安全的地方。
Vernam密碼是由Gilbert Vernam (他是AT&T的工程師)在1918年發明的。這是一種使用異或方法進行加密解密的方法。 主要功能
徹底加密源代碼,可達到徹底保護知識產權的目的,加密效果優於非編譯型的腳本加密工具。非編譯型的加密工具要在運行時在內存中還原腳本執行,編譯型代碼不可還原,直接二進制的執行方式。
產品特點
1.支持各種ASP伺服器腳本默認語言。
2.能夠完全正確識別後綴名為ASP的偽ASP文件。
3.不論多麼復雜的語法結構,都能正確加密並解析。
4.完美處理多種特殊ASP語法在DLL中異常情況...
系統要求
WindowsNT4.0 + IIS
WindowsXP + IIS
Windows 7 + IIS
Windows2000 + IIS
Windows2003 + IIS
Windows2008 + IIS Script Encoder的特點是:
它只加密頁面中嵌入的腳本代碼,其他部分,如HTML的TAG仍然保持原樣不變。處理後的文件中被加密過的部分為只讀內容,對加密部分的任何修改都將導致整個加密後的文件不能使用。Script Encoder加密過的ASP文件還將使Script Debugger之類的腳本調試工具失效。
Script Encoder是可以對Client Side Script加密,也可以對Server Side Script加密。
二、使用簡介
Script Encoder是個命令行工具,執行文件為SCRENC.EXE。它的操作非常簡單:
SCRENC [/s] [/f] [/xl] [/l defLanguage ] [/e defExtension] inputfile outputfile
/s 可選。讓Script Encoder「安靜」的工作,即執行過程沒有屏幕輸出。
/f 可選。指定輸出文件是否覆蓋同名輸入文件。忽略,將不執行覆蓋。
/e defExtension 可選。指定待加密文件的文件擴展名。 ASP加密解密軟體(Asp EnCoder):國人自己編寫的軟體,持MicroSoft Script Encoder加密解密,移位、逆位加密解密演算法,可保護我們辛辛苦苦編寫的ASP代碼,也可以躲避殺毒軟體的查殺。
AspToDll風火輪:能夠將ASP代碼封裝成DLL,利用DLL無法還原的特性確保ASP代碼加密之後不可解,保護ASP開發者的知識產權不受侵害。
ASP加密鎖(AspApp):將IIS + ASP(Active Server Page)實現的網站進行打包、加密、壓縮,打包後的應用仍然可以在IIS下使用,但是他人已經無法直接閱讀ASP腳本內容,徹底保護您的辛苦勞動成果和知識產權,您可以用來製作WEB系統的試用版本、功能限製版本和發行版本等。
4. 什麼是古典密碼
http://ke..com/view/2296594.html?wtp=tt