RSA與AES的區別


RSA

非對稱加密,公鑰加密,私鑰解密,反之亦然。由於需要大數的乘冪求模等算法,運行速度慢,不易於硬件實現。

通常私鑰長度有512bit,1024bit,2048bit,4096bit,長度越長,越安全,但是生成密鑰越慢,加解密也越耗時。

既然是加密,那肯定是不希望別人知道我的消息,所以只有我才能解密,所以可得出公鑰負責加密,私鑰負責解密;

同理,既然是簽名,那肯定是不希望有人冒充我發消息,只有我才能發布這個簽名,所以可得出私鑰負責簽名,公鑰負責驗證。

AES

對稱加密,密鑰最長只有256個bit,執行速度快,易於硬件實現。由於是對稱加密,密鑰需要在傳輸前通訊雙方獲知。

基於以上特點,通常使用RSA來首先傳輸AES的密鑰給對方,然后再使用AES來進行加密通訊。

 

 

AES加密數據塊分組長度必須為128比特,密鑰長度可以是128比特、192比特、256比特中的任意一個(如果數據塊及密鑰

長度不足時,會補齊)。AES加密有很多輪的重復和變換。大致步驟如下:

1、密鑰擴展(KeyExpansion),

2、初始輪(Initial Round),

3、重復輪(Rounds),每一輪又包括:SubBytes、ShiftRows、MixColumns、AddRoundKey,

4、最終輪(Final Round),最終輪沒有MixColumns

 

AES加密過程是在一個4×4的字節矩陣上運作,這個矩陣又稱為“狀態(state)”,其初值就是一個明文區塊(矩陣中一個元

素大小就是明文區塊中的一個Byte)。加密時,各輪AES加密循環(除最后一輪外)均包含4個步驟:

AddRoundKey (加輪秘鑰)— 矩陣中的每一個字節都與該次輪秘鑰(round key)做XOR運算。

SubBytes (字節代換)— 通過非線性的替換函數,用查找表的方式把每個字節替換成對應的字節。

ShiftRows (行移位)— 將矩陣中的每個橫列進行循環式移位。

MixColumns (列混淆)— 使用線性轉換來混合每列的四個字節。

 

字節代換

代換表(S盒)被設計成能夠抵擋所有已知的攻擊
例如,十六進制{95}對應的的行值是9,列值是5,S盒中此處的值是{2A}。因此{95}被映射為{2A}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM