凱撒密文的破解程式設計實現
凱撒密文的破解程式設計實現
近來安全的發展,對密碼學的研究越來越重要,雖然我們現在大多採用的是
非對稱密碼體制,但是同時由於處理及其它的一些重要原因,對傳統密碼仍然
是在大量的使用,如移位,替代的基本思想仍然沒有改變,我個人認為,將來
的很長時間內,我們必將會花大量的時間對密碼學進行研究,從而才能促進我
們的電子政務,電子商務的健康發展,下面我要談的是對乙個古典密碼-----
凱撒(kaiser)密碼的的解密,也就是找出它的加密金鑰,從而進行解密,由於
它是一種對稱密碼體制,加解密的金鑰是一樣的,下邊簡單說明一下加解密
加密過程:
密文:c=m+k (mod 26)
解密過程:
明文:m=c-k (mod 26)
詳細過程請參考相關資料
破解時主要利用了概率統計的特性,e字母出現的概率最大。
加密的程式實現我就不說了,
下面重點說一下解密的程式實現:我是用c寫的,在vc6.0下調試執行正確
#include"stdio.h"
#include"ctype.h"
#include"stdlib.h"
main(int argc ,char *argv)
//判斷程式輸入引數是否正確
if((fp_ciper=fopen(argv[1],"r"))==null)
while((ch_ciper=fgetc(fp_ciper))!=eof)
switch(ch_ciper)
fclose(fp_ciper);
for(i=0;i<26;i++)
if(num>temp)
if(j<5)
key=(j+1+26)-5; //是按字母表的第幾位計算
//而不是按下標,故加1
//5是指e在字母表中的位序
else
key=(j+1)-5;
if((fp_ciper=fopen(argv[1],"r"))==null)
//再次開啟密文,進行解密
if((fp_plain=fopen(argv[2],"w"))==null)
//把明文存到此檔案
while((ch_ciper=fgetc(fp_ciper))!=eof)
fclose(fp_ciper);
fclose(fp_plain);
printf("解密成功,金鑰key=%d,明文已儲存到檔案中,謝謝使用!n",key);
}
凱撒密文的破解程式設計實現
由於它是一種對稱密碼體制,加解密的金鑰是一樣的,下邊簡單說明一下加解密加密過程 密文 c m k mod 26 解密過程 明文 m c k mod 26 破解時主要利用了概率統計的特性,e字母出現的概率最大。下面重點說一下解密的程式實現 我是用c寫的,在vc6.0下調試執行正確 1 include ...
Flash Builder4 6 破解方法的實踐
語言 簡體中文 simplified 2.安裝時,不用序列號,直接選擇安裝試用版 3.安裝完成後在安裝目錄下依次修改下列3個檔案 1 eclipse plugins com.adobe.flexbuilder.project 4.6.0.328916 meta inf下面的manifest.mf修改...
Flash Builder4 6 破解方法的實踐
建議 作為草根一級,買不起正版,只能先拿破解版練練手了,如果商業的話,請用正版。語言 簡體中文 simplified 2.安裝時,不用序列號,直接選擇安裝試用版 3.安裝完成後在安裝目錄下依次修改下列3個檔案 1 eclipse plugins com.adobe.flexbuilder.proje...