導航:首頁 > 文檔加密 > 移位加密法分析

移位加密法分析

發布時間:2022-12-09 01:45:22

『壹』 C語言(文件的移位與加密解密)

這道題,並不難,只是樓主,沒有說清,是就字母移位嗎?
但是看你的例子,有不全是。
程序如下:
#include <stdio.h>
#include <stdlib.h>

FILE *source;//源文件
FILE *destination;//目標文件
int key;//密鑰
char file[100];//文件名
void encryption()//加密
{
char ch;
printf("請輸入要加密的文件名\n");
scanf("%s",file);
if((source=fopen(file,"r"))==NULL)
{
printf("無法打開文件!\n");
exit(0);
}
printf("請輸入加密後的文件名\n");
scanf("%s",file);
if((destination=fopen(file,"w"))==NULL)
{
printf("無法創建文件!\n");
exit(0);
}
printf("請輸入密鑰\n");
scanf("%d",&key);
ch=fgetc(source);
while(ch!=EOF)
{
if(ch=='\n')
{
fputc(ch,destination);
ch=fgetc(source);
continue;
}
ch+=key;
fputc(ch,destination);
ch=fgetc(source);
}
fclose(source);
fclose(destination);
}

void decrypt()//解密
{
char ch;
printf("請輸入要解密的文件名\n");
scanf("%s",file);
if((source=fopen(file,"r"))==NULL)
{
printf("無法打開文件!\n");
exit(0);
}
printf("請輸入加密後的文件名\n");
scanf("%s",file);
if((destination=fopen(file,"w"))==NULL)
{
printf("無法創建文件!\n");
exit(0);
}
printf("請輸入密鑰\n");
scanf("%d",&key);
ch=fgetc(source);
while(ch!=EOF)
{
if(ch=='\n')
{
fputc(ch,destination);
ch=fgetc(source);
continue;
}
ch-=key;

fputc(ch,destination);
ch=fgetc(source);
}
fclose(source);
fclose(destination);
}

int main()//主函數提供菜單
{
int choice=0;
printf("******************\n");
printf("1 文件加密\n");
printf("2 文件解密\n");
printf("3 退出\n");
printf("******************\n");
printf("請輸入1 2 3選擇操作\n");
scanf("%d",&choice);

switch(choice)
{
case 1:encryption();break;
case 2:decrypt();break;
case 3:break;
}
return 0;
}

『貳』 C語言編程: 文件移位加密與解密。

直接對字元串按字元加減密鑰的位數就可以了。
#include
<iostream.h>
#define
MAX
1000
//加密
char
*
Encryption(char
*E,int
Key)
{
for(int
i=0;*(E+i);i++)
{
*(E+i)
+=
Key;
if(*(E+i)>'z')
*(E+i)
-=
('z'-'a')+1;
}
return
E;
}
//解密
char
*
Decryption(char
*E,int
Key)
{
for(int
i=0;*(E+i);i++)
{
*(E+i)
-=
Key;
if(*(E+i)<'a')
*(E+i)
+=
('z'-'a')+1;
}
return
E;
}
void
main()
{
char
a[MAX];
int
key;
cout<<"輸入字元串:"<<endl;
cin
>>
a;
cout<<"輸入密鑰:"<<endl;
cin
>>key;
cout<<"加密輸出:"<<Encryption(a,key)<<endl;
cout<<"解密輸出:"<<Decryption(a,key)<<endl;
}

『叄』 換位密碼的加密方法

加密換位密碼通過密鑰只需要對明文進行加密,並且重新排列裡面的字母位置即可。具體方法如下

1、基於二維數組移位的加密演算法

給定一個二維數組的列數,即該二維數組每行可以保存的字元個數。再將明文字元串按行依次排列到該二維數組中。最後按列讀出該二維數組中的字元,這樣便可得到密文。

2、換位解密演算法(基於二維數組移位的解密演算法)

先給定一個二維數組的列數,即該二維數組每行可以保存的字元個數,並且這個數應該和加密演算法中的一致。接下來將密文字元串按列一次性排列到該二維數組中。最後按行讀出該二維數組中的字元即可。

3、換位加密演算法

首先按照密鑰排列順序:將想要加密的明文加密,然後列出表格,找出對應的字母,就是密鑰。然後對他們進行換位加密,就是將表格的第二行依據密鑰排列順序進行排序以便得到加密後的密文。

(3)移位加密法分析擴展閱讀

數據加密技術的分類

1、專用密鑰

又稱為對稱密鑰或單密鑰,加密和解密時使用同一個密鑰,即同一個演算法。單密鑰是最簡單方式,通信雙方必須交換彼此密鑰,當需給對方發信息時,用自己的加密密鑰進行加密,而在接收方收到數據後,用對方所給的密鑰進行解密。當一個文本要加密傳送時,該文本用密鑰加密構成密文,密文在信道上傳送,收到密文後用同一個密鑰將密文解出來,形成普通文體供閱讀。

2、對稱密鑰

對稱密鑰是最古老的,一般說「密電碼」採用的就是對稱密鑰。由於對稱密鑰運算量小、速度快、安全強度高,因而如今仍廣泛被採用。它將數據分成長度為64位的數據塊,其中8位用作奇偶校驗,剩餘的56位作為密碼的長度。首先將原文進行置換,得到64位的雜亂無章的數據組,然後將其分成均等兩段;第三步用加密函數進行變換,並在給定的密鑰參數條件下,進行多次迭代而得到加密密文。

3、公開密鑰

又稱非對稱密鑰,加密和解密時使用不同的密鑰,即不同的演算法,雖然兩者之間存在一定的關系,但不可能輕易地從一個推導出另一個。非對稱密鑰由於兩個密鑰(加密密鑰和解密密鑰)各不相同,因而可以將一個密鑰公開,而將另一個密鑰保密,同樣可以起到加密的作用。公開密鑰的加密機制雖提供了良好的保密性,但難以鑒別發送者,即任何得到公開密鑰的人都可以生成和發送報文。

4、非對稱加密技術

數字簽名一般採用非對稱加密技術(如RSA),通過對整個明文進行某種變換,得到一個值,作為核實簽名。接收者使用發送者的公開密鑰對簽名進行解密運算,如其結果為明文,則簽名有效,證明對方的身份是真實的。數字簽名不同於手寫簽字,數字簽名隨文本的變化而變化,手寫簽字反映某個人個性特徵,是不變的;數字簽名與文本信息是不可分割的,而手寫簽字是附加在文本之後的,與文本信息是分離的。

『肆』 求移位密碼的加密,解密過程

演算法問題,寫出來就是一個很長的程序了。

『伍』 文件移位加密與解密。

你要干什麼!

『陸』 如何使用基於統計的密碼分析方法對移位密碼進行破解

密碼分析之所以能夠成功破譯密碼,最根本的原因是明文中有冗餘度。攻擊或破譯怒那的方法主要有三種:窮舉法、統計分析攻擊、數學分析攻擊。
所謂窮舉攻擊是指,密碼分析者採用依次試遍所有可能的的秘鑰對所獲密文進行破解,直至得到正確的明文;或者用一個確定的秘鑰對所有可能的明文進行加密,直至得到所得的密文。只要有足夠的時間和存儲空間,窮舉攻擊原則上是可行的,但是集中面積算時間和存儲空間都受到限制,只要秘鑰足夠長。這種方法往往不行。
統計分析攻擊是指密碼分析者涌過分析密文和明文的統計規律來破譯密碼。密碼分析者對截獲的密文進行統計分析,總結出其間的統計規律,並與明文的統計規律進行比較,從中提取明文和密文之間的對應或變換信息。
數學分析攻擊是密碼分析者針對加解密演算法的數學基礎和某些密碼學特性,通過數學求解的方法來破譯密碼。

『柒』 移位加密是什麼意思

#include<stdio.h>
void code(char *p,int key)
{
while(*p!='\0')
{
*p=97+(*p-97+key)%26;
p++;
}
}
void uncode(char *p,int key)
{
while(*p!='\0')
{
*p=97+(*p-71-key)%26;
p++;
}
}
main()
{
char str[100];
int n,key;
printf("輸入密匙:");
scanf("%d",&key);
printf("輸入1加密,輸入2解密:");
scanf("%d",&n);
printf("輸入字元串:");
scanf("%s",str);
if(n==1)
{
code(str,key);
printf("密文為%s\n",str);
}
else if(n==2)
{
uncode(str,key);
printf("原文為%s\n",str);
}
}

『捌』 密碼那些事兒|(五)換個位置,面目全非

移位法和替代法大約5000年前出現,但直到9世紀才被阿拉伯人發明的頻率分析法破解,中間隔了足足有4000年。在另一邊的歐洲,實際上直到16世紀,都還沒掌握這種破解方法。從這里我們也能感受到,阿拉伯文明曾經的輝煌。

移位法很簡單。我舉個例子,比如你的電話號碼13911095871,把每個數字都在數列中往後加1,那麼1變2,2變3,加密後就變成了24022106982。

13911095871叫做明文,24022106982則是它對應的密文。

字母的移位也是同樣的道理,因為字母是遵循著abcdef……xyz的順序排列,一共26個,看起來會比單純的數字移位復雜一些,但本質上仍是一樣的。

比如要對iron man加密,加密規則選擇每個字母都向後移動3位, 「iron man」就變成了「lurq pdq」。

沒有經驗的人乍看一下,完全就是亂碼,實際上它只不過做了基礎加密而已。這就是最基礎的移位法。

大約在公元前700年左右,出現了用一種叫做Scytale的圓木棍來進行保密通信的方式。這種Scytale圓木棍也許是人類最早使用的文字加密解密工具,據說主要是古希臘城邦中的斯巴達人(Sparta)在使用它,所以又被叫做「斯巴達棒」。

相傳雅典和斯巴達之間的伯羅奔尼撒戰爭中,斯巴達軍隊截獲了一條寫滿雜亂無章的希臘字母的腰帶,斯巴達將軍在百思不得其解之際,胡亂將腰帶纏到自己的寶劍上,從而誤打誤撞發現了其中隱藏的軍機。這就是斯巴達密碼棒的由來。

「斯巴達棒」的加密原理就是,把長帶子狀羊皮紙纏繞在圓木棍上,然後在上面寫字;解下羊皮紙後,上面只有雜亂無章的字元,只有再次以同樣的方式纏繞到同樣粗細的棍子上,才能看出所寫的內容。

比如像上圖那樣,在纏好的布帶上寫上「 YOU ARE IN DANGER」,然後再拆下來,布帶上的文字順序就變成了「YIONUDAARNEGER」,完全看不出任何頭緒,這樣就起到了加密的作用。

2100年前,古羅馬的執政官和軍隊統帥愷撒(Julius Caesar,公元前100—前44)發明了一種把所有的字母按字母表順序循環移位的文字加密方法。例如,當規定按字母表順移3位的話,那麼a就寫成d,b寫成e,c寫成f,…,x寫成a,y寫成b,z寫成c。單詞Hello就寫成了Khoor。如果不知道加密方法,誰也不會知道這個詞的意思。解密時,只需把所有的字母逆移3位,就能讀到正確的文本了。

上圖就是根據愷撒加密法的原理而製作的字母循環移位盤。可以根據需要設定加密時移位的位數,以供加密或解密時快速查詢。據說愷撒當年就是使用這種加密方法與手下的將軍們通信的。

從密碼學的角度來看,雖然愷撒加密法的規則很簡單,然而,愷撒加密的思想對於西方古典密碼學的發展有著很大影響。

事實上,直到第二次世界大戰結束,西方所使用的加密方法原理大多與愷撒加密法類似,只是規則越來越復雜而已。

盡管移位法加密在西方得到了很普遍的應用,但在中國的史書上卻很少記載,各位朋友可以想一想是為什麼?

感興趣的朋友們不妨在評論區一起聊一聊。

下一次,我們繼續了解移位法和替代法的故事。

往期文章:

密碼那些事兒|(四)隱藏的消息

密碼那些事兒|(三)「風語者」——從未被破解的密碼

密碼那些事兒|(二)密碼學發展的七個階段

密碼那些事兒|(一)無所不在的密碼

本人是官方授權會員推廣專員,點擊 會員專屬通道 成為會員,您將會獲得鑽獎勵及諸多權益!

《鑽獎勵調整公告》

『玖』 c語言 文件移位加密與解密

您說的這個方法,我沒有操作過。 給文件加密,我使用的是超級加密3000. 超級加密3000採用國際上成熟的加密演算法和安全快速的加密方法,可以有效保障數據安全! 具體操作方法: 1 下載安裝超級加密3000。

『拾』 採用移位加密方法將明文dog變換得到的密文是多少 密鑰k為6

3)是對的。
維吉尼亞密碼引入了「密鑰」的概念,即根據密鑰來決定用哪一行的密表來進行替換,以此來對抗字頻統計。假如以上面第一行代表明文字母,左面第一列代表密鑰字母,對如下明文加密:
TO BE OR NOT TO BE THAT IS THE QUESTION
當選定RELATIONS作為密鑰時,加密過程是:明文一個字母為T,第一個密鑰字母為R,因此可以找到在R行中代替T的為K,依此類推,得出對應關系如下:
密鑰:RELAT IONSR ELATI ONSRE LATIO NSREL
明文:TOBEO RNOTT OBETH ATIST HEQUE STION
密文:KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY

閱讀全文

與移位加密法分析相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:144
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:736
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163