999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺析加密算法及應用

2008-01-01 00:00:00劉洪江
智能計算機與應用 2008年1期

摘要:提出了加密數據的通信過程,并分析了兩個加密算法,同時給出了算法的代碼。

關鍵詞:密碼學 解密 加密 加密算法

中圖分類號:TP309.7 文獻標識碼:B 文章編號:1002-2422(2008)01-0049-02

1 加密數據的通信過程

通過一個例子來說明:如果A向B發送一份重要數據p,而T卻想中途截獲該數據,并且有可能發送假數據。為了保證數據的安全,A必須對數據進行加密,將加密后的密文發送給B。該過程如圖1所示:

說明:(1)e=Ek(p)為加密過程,k為密鑰,c為加密后的密文;(2)p=Dk(c)為解密過程;(3)加密與解密過程可表述為Dk(Ek(p))=p。

密鑰k是進行數據加密的關鍵部分,是經過A,B雙方共同約定的,不能外泄。這樣即使T掌握了加密算法和解密算法,也不能得到真正的數據p,從而達到數據保密目的。

保密系統應當滿足下述要求:

(1)系統即使達不到理論上不可突破的程度,也應當是破解起來有相當大難度的:

(2)系統的保密性不應依賴于對加密體制或算法的保密,而是依賴于密鑰;

(3)加密算法和解密算法適用于所有密鑰空間中的元素,更換密鑰不影響加密強度;

(4)系統便于實現和方便使用。

2 加密算法分析

2.1矩陣旋轉

矩陣旋轉的原理是設置一個8x8的矩陣,根據所給密碼的情況旋轉不同的圈數,這有四種情況。主要思想是重新排列數據,排列的順序由密碼來決定。程序流程及說明;

(1)要求用戶選擇被加密文件和輸出文件,并讀入用戶輸入的密碼;

(2)讀入被加密文件的數據至緩沖區;

(3)對密碼單個字符除4取余,得到旋轉90度的次數;

(4)根據余數進行順時針旋轉,并寫入到輸出文件中;

(5)對于不足8x8字節部分用密碼中第一個字符對其進行異或;

(6)緩沖區中某個字符位置(x,y)確定方法為xx8+y,其中x,y∈{0,1,…7}。

下面是加密部分的完整代碼:

void Cmy101 DIg::OnButton2()

{

riffle Fi,Fo;

CHAR*lpBuf1,*lpBuf2;

lpBuff=new CHAr[64];

lpBur2=new CHAP,[64];

int i=0,Size;

if(m_Input==_T(“”)llm_Output==_T(“”)llm_Pwd==_T(“”)){

AfxMessageBox(_T(“請檢查文件名或密碼是否為空!”));

Return;}

Fi.Open(m_Input,Cfile::modeRead);

Fo.Open(m_Output,Cfile::modeCreatelCfile::modeWrite);

For(DWORD t=0;t

if((Size=Fi.Read(lpBuf1,sizeof(CHAR)*64))==64)

for(int j=0;j<=(m_Pwd.Cet,GetAt(i)%4);j++){

for(int k=0;k<8;k++)

for(int z=0;z<8;z++)

lpBuf2[z*8+k]=lpBuf1[k*8+z];

for(k=0;k<64;k++)

lpBuf1[k]=lpBuf2[k];

}

else

for(int j=0.J

{

lpBuf2[j]=(IpBuff[j])^(m_Pwd.GetAt(0));

}

Fo.Write(IpBuf2,Size);

i++;

if(i==m_Pwd.GetLength())i=0:

}

}

解密部分代碼和加密相似,只是逆時針旋轉回原來的位置就可以了,把lpBuf2[z*8+k]=lpBuf1[k*8+z]換成lpBuf2[k*8+z]=lpBun[z*8+k]即可,一定要保證密碼正確,否則會造成錯誤的結果.

2.2愷撒密碼

加密方法是把a換成D,b換成E,c換成F,……,z換成C。這樣,明文和密文的字母就建立了一一對應的等價關系。愷撒密碼其實是對明文加上了一個偏移值29,即“a”對應的ASCII碼為97,“D”對應的ASCII碼為68,相減可得。Heavyd就可以變換為KHDYBG。由此可以對其進行擴展,增強其保密性。

下面是對愷撒密碼的自行擴展,對明文進行異或運算,并加上一個偏移值:

(1)加密過程

c=(p XOR k)+k,當所得c的值大于255時,

c=(p XOR k)+k-256,c為密文,p為明文,k為密鑰(密碼)。c,p,k∈{0,1,…,255}

(2)解密過程

P=(c-k)XOR k,當(c-k)小于零時,

p=(c-k+256)XOR k,c為密文,p為明文,k為密鑰(密碼)。

下面是加密部分的C代碼描述:

void main()

{while(buff=NULL)

{

*bur=(*buf)^k ;

if(*bur>255)*bur-=256;

buf++;

}

}

buf為存儲明文的緩沖區,對其進行變換后bur變為存儲密文的緩沖區。k為加密的密鑰。

下面是解密部分的C代碼描述:

void main(){

while(buf!=NULL){

if((*buf-k)<0) *bur+=256;

*buf=(*buf-k)^k;

buf++;}}

bur為存儲密文的緩沖區,對其進行變換后成為存儲明文的緩沖區。k為解密的密鑰。

3 結束語

密碼學是計算機安全領域的重要內容,而加密和解密又是密碼學最重要的概念。數據加密算法是先進加密技術的基礎和核心,只有在牢固掌握基本加密算法的基礎上,才能更徹底的研究密碼學的相關技術。

主站蜘蛛池模板: 日韩欧美国产成人| 国产女人18毛片水真多1| 久久综合亚洲色一区二区三区| 99偷拍视频精品一区二区| 精品小视频在线观看| 亚洲VA中文字幕| 国产成年女人特黄特色大片免费| 国产91在线免费视频| 天天躁狠狠躁| 久久黄色视频影| 性喷潮久久久久久久久| 欧美69视频在线| 特级做a爰片毛片免费69| 97成人在线视频| 福利在线不卡| 精品1区2区3区| 国产精品美女在线| 国产丝袜一区二区三区视频免下载| 四虎影视库国产精品一区| 亚洲中文无码av永久伊人| 日韩高清欧美| 成人午夜天| 亚洲永久色| 国产微拍精品| 国产成人夜色91| 国产农村1级毛片| 国产成人AV综合久久| 青青国产视频| 强乱中文字幕在线播放不卡| 亚洲有无码中文网| 国产无码制服丝袜| 欧美区一区| 国产精品99一区不卡| 久久综合AV免费观看| 国产拍在线| 久久国产亚洲欧美日韩精品| 欧美国产综合色视频| 国产无码精品在线播放| 国产日韩欧美中文| 网友自拍视频精品区| 欧美一级高清片欧美国产欧美| 国产经典在线观看一区| 成年人国产网站| 日韩123欧美字幕| 青青青视频免费一区二区| 国产精品9| 成人在线观看不卡| 中国国产高清免费AV片| 欧美第二区| 精品无码人妻一区二区| 国产一二三区视频| 日本国产精品一区久久久| 精品国产香蕉在线播出| 99热国产在线精品99| 91成人在线观看视频| 操国产美女| 国产在线八区| aaa国产一级毛片| 亚洲精品亚洲人成在线| 欧美α片免费观看| 国产精品视频观看裸模 | 欧美一区二区精品久久久| 亚洲精品无码不卡在线播放| 欧美日韩亚洲国产主播第一区| 青青久视频| 欧美三级日韩三级| 亚洲香蕉在线| 特级aaaaaaaaa毛片免费视频| 91口爆吞精国产对白第三集| 美女无遮挡免费网站| 中文字幕永久视频| 久久男人资源站| 成人91在线| 青青草原国产av福利网站| 欧美无专区| 亚洲欧美天堂网| 国产一线在线| 亚洲欧洲自拍拍偷午夜色| 亚洲欧美极品| 婷婷午夜影院| 欧美一级片在线| 网久久综合|