㈠ 簡述加密技術的基本原理,並指出有哪些常用的加密體制及其代表演算法
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則比較困難。
將橢圓曲線中的加法運算與離散對數中的模乘運算相對應,將橢圓曲線中的乘法運算與離散對數中的模冪運算相對應,我們就可以建立基於橢圓曲線的對應的密碼體制。
㈡ 數據在網路上傳輸為什麼要加密現在常用的數據加密演算法主要有哪些
數據傳輸加密技術的目的是對傳輸中的數據流加密,通常有線路加密與端—端加密兩種。線路加密側重在線路上而不考慮信源與信宿,是對保密信息通過各線路採用不同的加密密鑰提供安全保護。
端—端加密指信息由發送端自動加密,並且由TCP/IP進行數據包封裝,然後作為不可閱讀和不可識別的數據穿過互聯網,當這些信息到達目的地,將被自動重組、解密,而成為可讀的數據。
數據存儲加密技術的目的是防止在存儲環節上的數據失密,數據存儲加密技術可分為密文存儲和存取控制兩種。前者一般是通過加密演算法轉換、附加密碼、加密模塊等方法實現;後者則是對用戶資格、許可權加以審查和限制,防止非法用戶存取數據或合法用戶越權存取數據。
常見加密演算法
1、DES(Data Encryption Standard):對稱演算法,數據加密標准,速度較快,適用於加密大量數據的場合;
2、3DES(Triple DES):是基於DES的對稱演算法,對一塊數據用三個不同的密鑰進行三次加密,強度更高;
3、RC2和RC4:對稱演算法,用變長密鑰對大量數據進行加密,比 DES 快;
4、IDEA(International Data Encryption Algorithm)國際數據加密演算法,使用 128 位密鑰提供非常強的安全性;
5、RSA:由 RSA 公司發明,是一個支持變長密鑰的公共密鑰演算法,需要加密的文件塊的長度也是可變的,非對稱演算法; 演算法如下:
首先, 找出三個數,p,q,r,其中 p,q 是兩個不相同的質數,r 是與 (p-1)(q-1) 互為質數的數。
p,q,r這三個數便是 private key。接著,找出 m,使得 rm == 1 mod (p-1)(q-1).....這個 m 一定存在,因為 r 與 (p-1)(q-1) 互質,用輾轉相除法就可以得到了。再來,計算 n = pq.......m,n 這兩個數便是 public key。
6、DSA(Digital Signature Algorithm):數字簽名演算法,是一種標準的 DSS(數字簽名標准),嚴格來說不算加密演算法;
7、AES(Advanced Encryption Standard):高級加密標准,對稱演算法,是下一代的加密演算法標准,速度快,安全級別高,在21世紀AES 標準的一個實現是 Rijndael 演算法。
8、BLOWFISH,它使用變長的密鑰,長度可達448位,運行速度很快;
9、MD5:嚴格來說不算加密演算法,只能說是摘要演算法;
對MD5演算法簡要的敘述可以為:MD5以512位分組來處理輸入的信息,且每一分組又被劃分為16個32位子分組,經過了一系列的處理後,演算法的輸出由四個32位分組組成,將這四個32位分組級聯後將生成一個128位散列值。
(2)加密技術原理及分類擴展閱讀
數據加密標准
傳統加密方法有兩種,替換和置換。上面的例子採用的就是替換的方法:使用密鑰將明文中的每一個字元轉換為密文中的一個字元。而置換僅將明文的字元按不同的順序重新排列。單獨使用這兩種方法的任意一種都是不夠安全的,但是將這兩種方法結合起來就能提供相當高的安全程度。
數據加密標准(Data Encryption Standard,簡稱DES)就採用了這種結合演算法,它由IBM制定,並在1977年成為美國官方加密標准。
DES的工作原理為:將明文分割成許多64位大小的塊,每個塊用64位密鑰進行加密,實際上,密鑰由56位數據位和8位奇偶校驗位組成,因此只有56個可能的密碼而不是64個。
每塊先用初始置換方法進行加密,再連續進行16次復雜的替換,最後再對其施用初始置換的逆。第i步的替換並不是直接利用原始的密鑰K,而是由K與i計算出的密鑰Ki。
DES具有這樣的特性,其解密演算法與加密演算法相同,除了密鑰Ki的施加順序相反以外。
參考資料來源:網路-加密演算法
參考資料來源:網路-數據加密
㈢ 加密技術有哪幾種分類
加密技術分為私用密鑰加密技術和公開密鑰加密技術。其中私用密鑰加密技術中最具有代表性的演算法是IBM公司提出的DES演算法、三重DES演算法(是DES加強版)、日本密碼學家提出隨機化數據加密標准(RDES)、瑞士學者發明的IDEA國際信息加密演算法;公開密鑰加密技術的核心是運用一種特殊的數學函數(單向陷門函數)。演算法有很多,比如著名的背包演算法等。目前公認比較安全的是RSA演算法及其變種和離散對數演算法等等。
數據來源《小議數據加密技術》
㈣ 常見加密技術的分類和特點是什麼
常見的加密技術有對稱加密和非對稱加密這兩類,他們的特點是對稱加密使用同樣的密碼來做加密和解密,非對稱演算法採用不同的密碼來做加密和解密。另外還有一些離散數據的信息處理技術比如MD5或者是SHA的運算,他們的目的是為了知道數據的完整性,就是原始的數據有沒有被人修改而出現的。
㈤ 數據加密演算法可以分為幾大類型,個舉一例說明
分為三類:
1、對稱加密;
2、不對稱加密;
3、不可逆加密。
對稱加密是指加密密鑰和解密密鑰相同;
不對稱加密演算法使用不同的加密密鑰和解密密鑰;
不可逆加密演算法的特徵是加密過程不需要密鑰,並且經過加密的數據無法被解密,只有同樣輸入的輸入數據經過同樣的不可逆演算法才能得到同樣的加密數據。
㈥ 網路現代加密技術分幾種
1 數據加密原理
1.1數據加密
在計算機上實現的數據加密,其加密或解密變換是由密鑰控制實現的。密鑰(Keyword)是用戶按照一種密碼體制隨機選取,它通常是一隨機字元串,是控制明文和密文變換的唯一參數。
例:明文為字元串:
AS KINGFISHERS CATCH FIRE
(為簡便起見,假定所處理的數據字元僅為大寫字母和空格符)。
假定密鑰為字元串: ELIOT
加密演算法為:
(1)將明文劃分成多個密鑰字元串長度大小的塊(空格符以″+″表示)
AS+KI NGFIS HERS+ CATCH +FIRE
(2)用00~26范圍的整數取代明文的每個字元,空格符=00,A=01,...,Z=26:
0119001109 1407060919 0805181900 0301200308 0006091805
(3) 與步驟2一樣對密鑰的每個字元進行取代:
0512091520
(4) 對明文的每個塊,將其每個字元用對應的整數編碼與密鑰中相應位置的字元的整數編碼的和模27後的值取代:
(5) 將步驟4的結果中的整數編碼再用其等價字元替換:
FDIZB SSOXL MQ+GT HMBRA ERRFY
理想的情況是採用的加密模式使得攻擊者為了破解所付出的代價應遠遠超過其所獲得的利益。實際上,該目的適用於所有的安全性措施。這種加密模式的可接受的最終目標是:即使是該模式的發明者也無法通過相匹配的明文和密文獲得密鑰,從而也無法破解密文。
1.2數字簽名
密碼技術除了提供信息的加密解密外,還提供對信息來源的鑒別、保證信息的完整和不可否認等功能,而這三種功能都是通過數字簽名實現。
數字簽名是涉及簽名信息和簽名人私匙的計算結果。首先,簽名人的軟體對發送信息進行散列函數運算後,生成信息摘要(message digest)--這段信息所特有的長度固定的信息表示,然後,軟體使用簽名人的私匙對摘要進行解密,將結果連同信息和簽名人的數字證書一同傳送給預定的接收者。而接收者的軟體會對收到的信息生成信息摘要(使用同樣的散列函數),並使用簽名人的公匙對簽名人生成的摘要進行解密。接收者的軟體也可以加以配置,驗證簽名人證書的真偽,確保證書是由可信賴的CA頒發,而且沒有被CA吊銷。如兩個摘要一樣,就表明接收者成功核實了數字簽名。
2 加密體制及比較
根據密鑰類型不同將現代密碼技術分為兩類:一類是對稱加密(秘密鑰匙加密)系統,另一類是公開密鑰加密(非對稱加密)系統。
2.1對稱密碼加密系統
對稱鑰匙加密系統是加密和解密均採用同一把秘密鑰匙,而且通信雙方都必須獲得這把鑰匙,保持鑰匙的秘密。
對稱密碼系統的安全性依賴於以下兩個因素。第一,加密演算法必須是足夠強的,僅僅基於密文本身去解密信息在實踐上是不可能的;第二,加密方法的安全性依賴於密鑰的秘密性,而不是演算法的秘密性。因為演算法不需要保密,所以製造商可以開發出低成本的晶元以實現數據加密。這些晶元有著廣泛的應用,適合於大規模生產。
對稱加密系統最大的問題是密鑰的分發和管理非常復雜、代價高昂。比如對於具有n個用戶的網路,需要n(n-1)/2個密鑰,在用戶群不是很大的情況下,對稱加密系統是有效的。但是對於大型網路,當用戶群很大,分布很廣時,密鑰的分配和保存就成了大問題。對稱加密演算法另一個缺點是不能實現數字簽名。
對稱加密系統最著名的是美國數據加密標准DES、AES(高級加密標准)和歐洲數據加密標准IDEA。1977年美國國家標准局正式公布實施了美國的數據加密標准DES,公開它的加密演算法,並批准用於非機密單位和商業上的保密通信。DES成為全世界使用最廣泛的加密標准。
但是,經過20多年的使用,已經發現DES很多不足之處,對DES的破解方法也日趨有效。AES將會替代DES成為新一代加密標准。DES具有這樣的特性,其解密演算法與加密演算法相同,除了密鑰Key的施加順序相反以外。
2.2 公鑰密碼加密系統
公開密鑰加密系統採用的加密鑰匙(公鑰)和解密鑰匙(私鑰)是不同的。由於加密鑰匙是公開的,密鑰的分配和管理就很簡單,比如對於具有n個用戶的網路,僅需要2n個密鑰。公開密鑰加密系統還能夠很容易地實現數字簽名。因此,最適合於電子商務應用需要。在實際應用中,公開密鑰加密系統並沒有完全取代對稱密鑰加密系統,這是因為公開密鑰加密系統是基於尖端的數學難題,計算非常復雜,它的安全性更高,但它實現速度卻遠趕不上對稱密鑰加密系統。在實際應用中可利用二者的各自優點,採用對稱加密系統加密文件,採用公開密鑰加密系統加密″加密文件″的密鑰(會話密鑰),這就是混合加密系統,它較好地解決了運算速度問題和密鑰分配管理問題。
根據所基於的數學難題來分類,有以下三類系統目前被認為是安全和有效的:大整數因子分解系統(代表性的有RSA)、橢圓曲線離散對數系統(ECC)和離散對數系統(代表性的有DSA)。
當前最著名、應用最廣泛的公鑰系統RSA是由Rivet、Shamir、Adelman提出的(簡稱為RSA系統),它加密演算法使用了兩個非常大的素數來產生公鑰和私鑰。現實中加密演算法都基於RSA加密演算法。pgp演算法(以及大多數基於RSA演算法的加密方法)使用公鑰來加密一個對稱加密演算法的密鑰,然後再利用一個快速的對稱加密演算法來加密數據。這個對稱演算法的密鑰是隨機產生的,是保密的,因此,得到這個密鑰的唯一方法就是使用私鑰來解密。
RSA方法的優點主要在於原理簡單,易於使用。隨著分解大整數方法的進步及完善、計算機速度的提高以及計算機網路的發展(可以使用成千上萬台機器同時進行大整數分解),作為RSA加解密安全保障的大整數要求越來越大。為了保證RSA使用的安全性,其密鑰的位數一直在增加,比如,目前一般認為RSA需要1024位以上的字長才有安全保障。但是,密鑰長度的增加導致了其加解密的速度大為降低,硬體實現也變得越來越難以忍受,這對使用RSA的應用帶來了很重的負擔,對進行大量安全交易的電子商務更是如此,從而使得其應用范圍越來越受到制約。
DSA(DataSignatureAlgorithm)是基於離散對數問題的數字簽名標准,它僅提供數字簽名,不提供數據加密功能。它也是一個″非確定性的″數字簽名演算法,對於一個報文M,它的簽名依賴於隨機數r ?熏 這樣,相同的報文就可能會具有不同的簽名。另外,在使用相同的模數時,DSA比RSA更慢(兩者產生簽名的速度相同,但驗證簽名時DSA比RSA慢10到40倍)。
2.3 橢圓曲線加密演算法ECC技術優勢
安全性更高、演算法實現性能更好的公鑰系統橢圓曲線加密演算法ECC(EllipticCurveCryptography)基於離散對數的計算困難性。
㈦ 什麼叫加密技術
以某種特殊的演算法改變原有的信息數據,使得未授權的用戶即使獲得了已加密的信號,但因不知解密的方法,仍然無法了解信息的內容。
加密建立在對信息進行數學編碼和解碼的基礎上。加密類型分為兩種,對稱加密與非對稱加密,對稱加密雙方採用共同密鑰,(當然這個密鑰是需要對外保密的),這里講一下非對稱加密,這種加密方式存在兩個密鑰,密鑰 -- 一種是公共密鑰(正如其名,這是一個可以公開的密鑰值),一種是私人密鑰(對外保密)。 您發送信息給我們時,使用公共密鑰加密信息。 一旦我們收到您的加密信息,我們則使用私人密鑰破譯信息密碼(被我們的公鑰加密的信息,只有我們的唯一的私鑰可以解密,這樣,就在技術上保證了這封信只有我們才能解讀——因為別人沒有我們的私鑰)。 使用私人密鑰加密的信息只能使用公共密鑰解密(這一功能應用與數字簽名領域,我的私鑰加密的數據,只有我的公鑰可以解讀,具體內容參考數字簽名的信息)反之亦然,以確保您的信息安全。
舉例如下:
代碼如下:
/* Secure.c
Copyright (c) 2002, 2006 by ctu_85
All Rights Reserved.
*/
#include "stdio.h"
#include "string.h"
#define right 5
void Create();
void Load();
char secure(char);
char desecure(char);
void main()
{
int choice;
printf("Please enter your choice:\n");
printf("0:To quit;\n");
printf("1:To create a security file;\n");
printf("2:To load a security file .\n");
cir:
printf("Your choice:");
scanf("%d",&choice);
if(choice==0)
return;
if(choice==1)
{
Create();
printf("\n");
goto cir;
}
else
if(choice==2)
{
Load();
printf("\n");
goto cir;
}
else
{
printf("Invalid input!\n");
goto cir;
}
}
void Create()
{
FILE *fp;
char *p,ch,*s;
recre:
printf("Please enter the path where you wanna the file to be:");
scanf("%s",p);
if(*p<'C'||*p>'F'||*(p+1)!=':'||*(p+2)!=92||strlen(p)>30||strlen(p)<4)
{
printf("Invalid input!\n");
goto recre;
}
if((fp=fopen(p,"wb"))==NULL)
{
printf("Error!");
return;
}
an:
printf("Please set the password:");
scanf("%s",s);
if(strlen(s)>16||strlen(s)<6)
{
printf("The password is too long or too short,please reinput!\n");
goto an;
}
while(*s!='')
{
ch=*s;
ch=secure(ch);
s++;
fputc(ch,fp);
}
ch='\n';
ch=secure(ch);
fputc(ch,fp);
printf("Please enter the information,end with char '#':");
ch=getchar();
ch=getchar();
while(ch!='#')
{
ch=secure(ch);
fputc(ch,fp);
ch=getchar();
}
ch=secure(ch);
fputc(ch,fp);
fclose(fp);
}
void Load()
{
FILE *fp;
char *p,ch,*s,temp[18],pass[18],sign=secure('\n');
int i=0,t=0,lenth=0;
rece:
printf("Please enter the path where you wanna to load:");
scanf("%s",p);
if(*p<'C'||*p>'F'||*(p+1)!=':'||*(p+2)!=92||strlen(p)>30||strlen(p)<4)
{
printf("Invalid input!\n");
goto rece;
}
if((fp=fopen(p,"rb"))==NULL)
{
printf("Error!");
return;
}
ant:
printf("Please input the password:");
scanf("%s",s);
lenth=strlen(s);
if(lenth>16||lenth<6)
{
printf("The password is obviously incorrect!\n");
goto ant;
}
while(*s!='')
{
temp=secure(*s);
s++;
i++;
}
temp='';
ch=fgetc(fp);
while(ch!=sign)
{
pass[t]=ch;
t++;
ch=fgetc(fp);
}
pass[t]='';
ch=desecure(ch);
if(!strcmp(temp,pass))
{
while(ch!='#')
{
ch=fgetc(fp);
ch=desecure(ch);
if(ch!='#')
putchar(ch);
}
}
else
printf("The password is incorrect!\n");
fclose(fp);
}
char secure(char c)
{
if(c+right>254)
return c-255+right;
else
return c+right;
}
char desecure(char c)
{
if(c<right)
return 255-right;
else
return c-right;
}
㈧ 簡要說說對稱加密和非對稱加密的原理以及區別是什麼
對稱加密的原理是數據發送方將明文(原始數據)和加密密鑰一起經過特殊加密演算法處理後,使其變成復雜的加密密文發送出去。接收方收到密文後,若想解讀原文,則需要使用加密密鑰及相同演算法的逆演算法對密文進行解密,才能使其恢復成可讀明文。
非對稱加密的原理是甲方首先生成一對密鑰同時將其中的一把作為公開密鑰;得到公開密鑰的乙方再使用該密鑰對需要加密的信息進行加密後再發送給甲方;甲方再使用另一把對應的私有密鑰對加密後的信息進行解密,這樣就實現了機密數據傳輸。
對稱加密和非對稱加密的區別為:密鑰不同、安全性不同、數字簽名不同。
一、密鑰不同
1、對稱加密:對稱加密加密和解密使用同一個密鑰。
2、非對稱加密:非對稱加密加密和解密所使用的不是同一個密鑰,需要兩個密鑰來進行加密和解密。
二、安全性不同
1、對稱加密:對稱加密如果用於通過網路傳輸加密文件,那麼不管使用任何方法將密鑰告訴對方,都有可能被竊聽。
2、非對稱加密:非對稱加密因為它包含有兩個密鑰,且僅有其中的「公鑰」是可以被公開的,接收方只需要使用自己已持有的私鑰進行解密,這樣就可以很好的避免密鑰在傳輸過程中產生的安全問題。
三、數字簽名不同
1、對稱加密:對稱加密不可以用於數字簽名和數字鑒別。
2、非對稱加密:非對稱加密可以用於數字簽名和數字鑒別。
㈨ 目前常用的加密方法主要有兩種是什麼
目前常用的加密方法主要有兩種,分別為:私有密鑰加密和公開密鑰加密。私有密鑰加密法的特點信息發送方與信息接收方均需採用同樣的密鑰,具有對稱性,也稱對稱加密。公開密鑰加密,又稱非對稱加密,採用一對密鑰,一個是私人密鑰,另一個則是公開密鑰。
私有密鑰加密
私有密鑰加密,指在計算機網路上甲、乙兩用戶之間進行通信時,發送方甲為了保護要傳輸的明文信息不被第三方竊取,採用密鑰A對信息進行加密而形成密文M並發送給接收方乙,接收方乙用同樣的一把密鑰A對收到的密文M進行解密,得到明文信息,從而完成密文通信目的的方法。
這種信息加密傳輸方式,就稱為私有密鑰加密法。
私有密鑰加密的特點:
私有密鑰加密法的一個最大特點是:信息發送方與信息接收方均需採用同樣的密鑰,具有對稱性,所以私有密鑰加密又稱為對稱密鑰加密。
私有密鑰加密原理:
私有加密演算法使用單個私鑰來加密和解密數據。由於具有密鑰的任意一方都可以使用該密鑰解密數據,因此必須保證密鑰未被授權的代理得到。
公開密鑰加密
公開密鑰加密(public-key cryptography),也稱為非對稱加密(asymmetric cryptography),一種密碼學演算法類型,在這種密碼學方法中,需要一對密鑰,一個是私人密鑰,另一個則是公開密鑰。
這兩個密鑰是數學相關,用某用戶密鑰加密後所得的信息,只能用該用戶的解密密鑰才能解密。如果知道了其中一個,並不能計算出另外一個。因此如果公開了一對密鑰中的一個,並不會危害到另外一個的秘密性質。稱公開的密鑰為公鑰;不公開的密鑰為私鑰。