凱撒密文的破解程式設計實

2021-03-31 08:56:29 字數 1346 閱讀 7764

凱撒密文的破解程式設計實現

凱撒密文的破解程式設計實現

近來安全的發展,對密碼學的研究越來越重要,雖然我們現在大多採用的是

非對稱密碼體制,但是同時由於處理及其它的一些重要原因,對傳統密碼仍然

是在大量的使用,如移位,替代的基本思想仍然沒有改變,我個人認為,將來

的很長時間內,我們必將會花大量的時間對密碼學進行研究,從而才能促進我

們的電子政務,電子商務的健康發展,下面我要談的是對乙個古典密碼-----

凱撒(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...