常見加密演算法
DES(Data Encryption Standard):數據加密標准,速度較快,適用於加密大量數據的場合;
3DES(Triple DES):是基於DES,對一塊數據用三個不同的密鑰進行三次加密,強度更高;
RC2和 RC4:用變長密鑰對大量數據進行加密,比 DES 快;
IDEA(International Data Encryption Algorithm)國際數據加密演算法:使用 128 位密鑰提供非常強的安全性;
RSA:由 RSA 公司發明,是一個支持變長密鑰的公共密鑰演算法,需要加密的文件塊的長度也是可變的;
DSA(Digital Signature Algorithm):數字簽名演算法,是一種標準的 DSS(數字簽名標准);
AES(Advanced Encryption Standard):高級加密標准,是下一代的加密演算法標准,速度快,安全級別高,目前 AES 標準的一個實現是 Rijndael 演算法;
BLOWFISH,它使用變長的密鑰,長度可達448位,運行速度很快;
其它演算法,如ElGamal、Deffie-Hellman、新型橢圓曲線演算法ECC等。
比如說,MD5,你在一些比較正式而嚴格的網站下的東西一般都會有MD5值給出,如安全焦點的軟體工具,每個都有MD5。
⑵ 有哪些加密方法比較經典或者說說加密的歷史.
加密之所以安全,絕非因不知道加密解密演算法方法,而是加密的密鑰是絕對的隱藏,流行的RSA和AES加密演算法都是完全公開的,一方取得已加密的數據,就算知道加密演算法也好,若沒有加密的密鑰,也不能打開被加密保護的信息。
加密作為保障數據安全的一種方式,它不是才有的,它產生的歷史相當久遠,它是起源於要追溯於公元前2000年(幾個世紀了),雖然它不是我們所講的加密技術(甚至不叫加密),但作為一種加密的概念,確實早在幾個世紀前就誕生了。
當時埃及人是最先使用特別的象形文字作為信息編碼的,隨著時間推移,巴比倫、美索不達米亞和希臘文明都開始使用一些方法來保護他們的書面信息。
近期加密技術主要應用於軍事領域,如美國獨立戰爭、美國內戰和兩次世界大戰。最廣為人知的編碼機器是German Enigma機,在第二次世界大戰中德國人利用它創建了加密信息。此後,由於Alan Turing和Ultra計劃以及其他人的努力,終於對德國人的密碼進行了破解。
(2)圖像擴散加密演算法有哪些擴展閱讀:
相關標准
最早、最著名的保密密鑰或對稱密鑰加密演算法DES(Data Encryption Standard)是由IBM公司在70年代發展起來的,並經政府的加密標准篩選後,於1976年11月被美國政府採用,DES隨後被美國國家標准局和美國國家標准協會(American National Standard Institute,ANSI)承認。
DES使用56位密鑰對64位的數據塊進行加密,並對64位的數據塊進行16輪編碼。與每輪編碼時,一個48位的"每輪"密鑰值由56位的完整密鑰得出來。
DES用軟體進行解碼需用很長時間,而用硬體解碼速度非常快。幸運的是,當時大多數黑客並沒有足夠的設備製造出這種硬體設備。
在1977年,人們估計要耗資兩千萬美元才能建成一個專門計算機用於DES的解密,而且需要12個小時的破解才能得到結果。當時DES被認為是一種十分強大的加密方法。
⑶ AES和WPA2-PSK有什麼區別
AES是一種加密演算法:
在密碼學中又稱Rijndael加密法,是美國聯邦 *** 採用的一種區塊加密標准。
這個標准用來替代原先的DES,已經被多方分析且廣為全世界所使用。
經過五年的甄選流程,高級加密標准由美國國家標准與技術研究院(NIST)於2001年11月26日發布於FIPS PUB 197,並在2002年5月26日成為有效的標准。
2006年,高級加密標准已然成為對稱密鑰加密中最流行的演算法之一。
WPA2-PSK:
WPA2 (WPA 第二版) 是 Wi-Fi 聯盟對採用 IEEE 802.11i 安全增強功能的產品的認證計劃。
簡單一點理解,WPA2是基於WPA的一種新的加密方式。
WPA2是WPA的升級版,現在新型的網卡、AP都支持WPA2加密。
WPA2則採用了更為安全的演算法。
CCMP取代了WPA的MIC、AES取代了WPA的TKIP。
區別:
WPA2-PSK中可以使用AES演算法,但不代表WPA2就是AES。
AES演算法應用領域很廣,很多軟體的加密使用的是AES加密演算法。
WPA2-PSK主要應用於無線加密領域,是一種常見的安全性較高的認證類型。
⑷ MD5、SHA1、CRC32值是干什麼的
MD5可以產生出一個128位(16位元組)的散列值(hash value),用於確保信息傳輸完整一致。MD5由MD4、MD3、MD2改進而來,主要增強演算法復雜度和不可逆性。MD5演算法因其普遍、穩定、快速的特點,仍廣泛應用於普通數據的加密保護領域 。
SHA-1(英語:Secure Hash Algorithm 1,中文名:安全散列演算法1)是一種密碼散列函數,美國國家安全局設計,並由美國國家標准技術研究所(NIST)發布為聯邦數據處理標准(FIPS)。SHA-1可以生成一個被稱為消息摘要的160位(20位元組)散列值,散列值通常的呈現形式為40個十六進制數。
CRC32檢錯能力極強,開銷小,易於用編碼器及檢測電路實現。從其檢錯能力來看,它所不能發現的錯誤的幾率僅為0.0047%以下。從性能上和開銷上考慮,均遠遠優於奇偶校驗及算術和校驗等方式。
因而,在數據存儲和數據通訊領域,CRC無處不在:著名的通訊協議X.25的FCS(幀檢錯序列)採用的是CRC-CCITT,ARJ、LHA等壓縮工具軟體採用的是CRC32,磁碟驅動器的讀寫採用了CRC16,通用的圖像存儲格式GIF、TIFF等也都用CRC作為檢錯手段。
(4)圖像擴散加密演算法有哪些擴展閱讀:
在MD5演算法中,首先需要對信息進行填充,這個數據按位(bit)補充,要求最終的位數對512求模的結果為448。也就是說數據補位後,其位數長度只差64位(bit)就是512的整數倍。即便是這個數據的位數對512求模的結果正好是448也必須進行補位。
補位的實現過程:首先在數據後補一個1 bit; 接著在後面補上一堆0 bit, 直到整個數據的位數對512求模的結果正好為448。總之,至少補1位,而最多可能補512位 。
⑸ 當前主流的加密技術有哪些
信息安全的重要性我們就不需再繼續強調了,無論企業還是個人,都對加密軟體的穩定性和安全性提出了更高的要求。可迎面而來更讓很多人困惑的是當加密軟體遍布市場令人應接不暇時,我們該如何去選擇。下面讓我們先來看一下目前主流的加密技術都有哪些。
1、
透明加密
透明加密技術是近年來針對企業文件保密需求應運而生的一種文件加密技術。所謂透明,是指對使用者來說是未知的。當使用者在打開或編輯指定文件時,系統將自動對未加密的文件進行加密,對已加密的文件自動解密。文件在硬碟上是密文,在內存中是明文。一旦離開使用環境,由於應用程序無法得到自動解密的服務而無法打開,從而起來保護文件內容的效果。
2、
驅動透明加密
驅動加密技術基於windows的文件系統(過濾)驅動(IFS)技術,工作在windows的內核層。我們在安裝計算機硬體時,經常要安裝其驅動,如列印機、U盤驅動。文件系統驅動就是把文件作為一種設備來處理的一種虛擬驅動。當應用程序對某種後綴文件進行操作時,文件驅動會監控到程序的操作,改變其操作方式,從而達到透明加密的效果。
3、
磁碟加密技術
磁碟加密技術相對於文檔加密技術,是在磁碟扇區級採用的加密技術,一般來說,該技術與上層應用無關,只針對特點的磁碟區域進行數據加密或者解密。
選擇加密軟體首先要考慮哪種加密技術更適合自己。其考核的標準是在進行各種大量文件操作後,文件是否會出現異常而無法打開,企業可以使用各種常規和非常規的方法來仔細測試;此外透明加密產品是否支持在網路文件系統下各種應用程序的正常工作也可以作為一個考核的要點。目前受關注度比較高的是透明加密技術,主要針對文檔信息安全,這也是因為辦公自動化的普及,企業內部的信息往來及重要機密都是以文檔的方式來存儲,因此透明加密方式更適合這種以文件安全防護為主的用戶,加密方式也更安全可靠。
我們知道office文檔可以通過設置密碼來進行加密,因此有些認為這樣便能很好地保護信息安全,但是他們沒有意識到現在黑客技術也在不斷的成熟,而且密碼加密有有機可乘的漏洞,並不能讓企業機密高枕無憂。因此安全度更高的透明加密更符合人們的需要,脫離使用環境時文件得不到解密服務而以密文的形式呈現,即使盜竊者拿到文件資料也是沒有辦法破解的,也就沒有任何利用價值。
加密技術是信息安全的核心技術,已經滲透到大部分安全產品之中。鵬宇成的免費加密軟體核心文件保護工具採用的是透明加密技術,通過伺服器端驗證來對文件進行正常的加密解密過程,並且集成外發文件控制系統保證對外發文件隨時可控,歡迎廣大用戶免費下載使用。
⑹ 急求一個完整的c語言圖像置亂加密演算法!!!
#include"windows.h"
#include"stdio.h"
#include"string.h"
#include"malloc.h"
unsignedchar*pBmpBuf;//讀入圖像數據的指針
unsignedchar*pEnBmpBuf;//加密圖像數據的指針
unsignedchar*pUnBmpBuf;//解密圖像數據的指針
charkey=255;//密鑰
intbmpWidth;//圖像的寬
intbmpHeight;//圖像的高
RGBQUAD*pColorTable;//顏色表指針
intbiBitCount;//圖像類型,每像素位數
boolreadBmp(char*bmpName)
{
//二進制讀方式打開指定的圖像文件
FILE*fp=fopen(bmpName,"rb");
if(fp==0)return0;
//跳過點陣圖文件頭結構BITMAPFILEHEADER
fseek(fp,sizeof(BITMAPFILEHEADER),0);
//定義點陣圖信息頭結構變數,讀取點陣圖信息頭進內存,存放在變數head中
BITMAPINFOHEADERhead;
fread(&head,sizeof(BITMAPINFOHEADER),1,fp);
//獲取圖像寬、高、每像素所佔位數等信息
bmpWidth=head.biWidth;
bmpHeight=head.biHeight;
biBitCount=head.biBitCount;
//定義變數,計算圖像每行像素所佔的位元組數(必須是4的倍數)
intlineByte=(bmpWidth*biBitCount/8+3)/4*4;
//灰度圖像有顏色表,且顏色表表項為256
if(biBitCount==8){
//申請顏色表所需要的空間,讀顏色表進內存
pColorTable=newRGBQUAD[256];
fread(pColorTable,sizeof(RGBQUAD),256,fp);
}
//申請點陣圖數據所需要的空間,讀點陣圖數據進內存
pBmpBuf=newunsignedchar[lineByte*bmpHeight];
fread(pBmpBuf,1,lineByte*bmpHeight,fp);
//關閉文件
fclose(fp);
return1;
}
voidencrypt(chark)
{
//加密,奇數位置的像素使用位運算加密,偶數位置像素為原始值
intlineByte=(bmpWidth*biBitCount/8+3)/4*4;
pEnBmpBuf=newunsignedchar[lineByte*bmpHeight];
for(inti=0;i<lineByte*bmpHeight;i++)
{
if(i%2==0)
{
pEnBmpBuf[i]=pBmpBuf[i];
}
elsepEnBmpBuf[i]=pBmpBuf[i]^k;
}
}
voinencrypt(chark)
{
//解密
intlineByte=(bmpWidth*biBitCount/8+3)/4*4;
pUnBmpBuf=newunsignedchar[lineByte*bmpHeight];
for(inti=0;i<lineByte*bmpHeight;i++)
{
if(i%2==0)
{
pUnBmpBuf[i]=pEnBmpBuf[i];
}
elsepUnBmpBuf[i]=pEnBmpBuf[i]^k;
}
}
boolsaveBmp(char*bmpName,unsignedchar*imgBuf,intwidth,intheight,
intbiBitCount,RGBQUAD*pColorTable)
{
//如果點陣圖數據指針為0,則沒有數據傳入,函數返回
if(!imgBuf)
{printf("error !");return0;}
//顏色表大小,以位元組為單位,灰度圖像顏色表為1024位元組,彩色圖像顏色表大小為0
intcolorTablesize=0;
if(biBitCount==8)
colorTablesize=1024;
//待存儲圖像數據每行位元組數為4的倍數
intlineByte=(width*biBitCount/8+3)/4*4;
//以二進制寫的方式打開文件
FILE*fp=fopen(bmpName,"wb");
if(fp==0)return0;
//申請點陣圖文件頭結構變數,填寫文件頭信息
BITMAPFILEHEADERfileHead;
fileHead.bfType=0x4D42;//bmp類型
//bfSize是圖像文件4個組成部分之和
fileHead.bfSize=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)
+colorTablesize+lineByte*height;
fileHead.bfReserved1=0;
fileHead.bfReserved2=0;
//bfOffBits是圖像文件前3個部分所需空間之和
fileHead.bfOffBits=54+colorTablesize;
//寫文件頭進文件
fwrite(&fileHead,sizeof(BITMAPFILEHEADER),1,fp);
//申請點陣圖信息頭結構變數,填寫信息頭信息
BITMAPINFOHEADERhead;
head.biBitCount=biBitCount;
head.biClrImportant=0;
head.biClrUsed=0;
head.biCompression=0;
head.biHeight=height;
head.biPlanes=1;
head.biSize=40;
head.biSizeImage=lineByte*height;
head.biWidth=width;
head.biXPelsPerMeter=0;
head.biYPelsPerMeter=0;
//寫點陣圖信息頭進內存
fwrite(&head,sizeof(BITMAPINFOHEADER),1,fp);
//如果灰度圖像,有顏色表,寫入文件
if(biBitCount==8)
fwrite(pColorTable,sizeof(RGBQUAD),256,fp);
//寫點陣圖數據進文件
fwrite(imgBuf,height*lineByte,1,fp);
//關閉文件
fclose(fp);
return1;
}
voidmain()
{
charinFileName[90],outFileName1[90],outFileName2[90];
printf("請輸入原始點陣圖文件的文件名:");
scanf("%s",inFileName);
printf("請輸入加密程序產生的新點陣圖文件的文件名:");
scanf("%s",outFileName1);
printf("請輸入解密程序產生的新點陣圖文件的文件名:");
scanf("%s",outFileName2);
//讀入指定BMP文件進內存
readBmp(inFileName);
//輸出圖像的信息
printf("width=%d,height=%d,biBitCount=%d ",bmpWidth,bmpHeight,biBitCount);
//圖像加密
encrypt(key);
//將加密數據存檔
saveBmp(outFileName1,pEnBmpBuf,bmpWidth,bmpHeight,biBitCount,pColorTable);
//圖像解密
unencrypt(key);
//將解密數據存檔
saveBmp(outFileName2,pUnBmpBuf,bmpWidth,bmpHeight,biBitCount,pColorTable);
//清除緩沖區,pBmpBuf和pColorTable是全局變數,在文件讀入時申請的空間
delete[]pBmpBuf;
if(biBitCount==8)
delete[]pColorTable;
}
讀取BMP,使用位運算加密,你也可以自己改
dem數據的話,一般用GDAL庫讀取,加密的思路是類似的,最簡單方法是把奇數位和偶數位的高程值置換一下
⑺ 幾種簡單的圖像加密方法
給圖片文件加密有3種方法:
1 用系統自帶的EFS加密,但要注意備份加密證書,另外在加密帳號下是看不到加密效果的。
2 用winrar的壓縮加密,但速度慢,操作麻煩。
3 用超級加密3000加密文件,超級加密3000採用先進的加密演算法,使你的文件加密後,真正的達到超高的加密強度,讓你的加密文件無懈可擊,沒有密碼無法解密。
您可以根據自己的實際需求選擇一款屬於自己的文件加密方法。
⑻ 簡述加密技術的基本原理,並指出有哪些常用的加密體制及其代表演算法
1、對稱加密演算法
對稱加密演算法用來對敏感數據等信息進行加密,常用的演算法包括:
DES(Data Encryption Standard):數據加密標准,速度較快,適用於加密大量數據的場合。
3DES(Triple DES):是基於DES,對一塊數據用三個不同的密鑰進行三次加密,強度更高。
AES(Advanced Encryption Standard):高級加密標准,是下一代的加密演算法標准,速度快,安全級別高;
演算法原理
AES 演算法基於排列和置換運算。排列是對數據重新進行安排,置換是將一個數據單元替換為另一個。AES 使用幾種不同的方法來執行排列和置換運算。
2、非對稱演算法
常見的非對稱加密演算法如下:
RSA:由 RSA 公司發明,是一個支持變長密鑰的公共密鑰演算法,需要加密的文件塊的長度也是可變的;
DSA(Digital Signature Algorithm):數字簽名演算法,是一種標準的 DSS(數字簽名標准);
ECC(Elliptic Curves Cryptography):橢圓曲線密碼編碼學。
演算法原理——橢圓曲線上的難題
橢圓曲線上離散對數問題ECDLP定義如下:給定素數p和橢圓曲線E,對Q=kP,在已知P,Q 的情況下求出小於p的正整數k。可以證明由k和P計算Q比較容易,而由Q和P計算k則比較困難。
將橢圓曲線中的加法運算與離散對數中的模乘運算相對應,將橢圓曲線中的乘法運算與離散對數中的模冪運算相對應,我們就可以建立基於橢圓曲線的對應的密碼體制。