DES 3DES AES以及RSA加密介紹

2021-09-12 19:49:14 字數 1777 閱讀 9295

一、加密解密簡介

常見英文:

encrypted:加密

decrypt: 解密

plaintext: 明文

ciphertext:密文

二、密碼型別:

對稱密碼

在對稱密碼中,加密、解密時使用的是同乙個金鑰;

常見的對稱密碼演算法有:

des(data encryption standard):

是一種將64bit明文加密成64bit密文的對稱密碼演算法,金鑰長度是56bit;

規格上來說,金鑰長度是64bit,但每隔7bit會設定乙個用於錯誤檢查的bit,因此金鑰長度實質上是56bit;

由於des每次只能加密64bit的資料,遇到比較大的資料,需要對des加密進行迭代(反覆);

目前已經可以在短時間內破解,所以不建議使用;

3des

將des重複3次所得到的一種密碼演算法,也叫做3重des(明文—>使用金鑰3加密—>使用金鑰2解密—>使用金鑰1加密—>密文(解密反過來就好 解密—>加密—>解密));

目前還被一些銀行等機構使用,但處理速度不高,安全性逐漸暴露出問題;

如果所有金鑰都是用同乙個,則結果與普通的des是等價的;

如果金鑰1、金鑰3相同,金鑰2不同,稱為des-ede2;

aes

取代des成為新標準的一種對稱密碼演算法;

在2023年時選擇rijindael演算法作為aes的實現;

目前aes,已經逐步取代des,3des,成為首選的對稱密碼演算法;

一般來說,我們也不應該去使用任何自製的密碼演算法,而是應該使用aes,它經過了全世界密碼學家所進行的高品質驗證工作;

金鑰配送問題

事先共享金鑰;

金鑰分配中心;

diffie-hellman金鑰交換;

公鑰密碼(rsa)(非對稱密碼)(public-key cryptography)

公鑰密碼中,金鑰分為加密金鑰、解密金鑰2中,它們並不是同乙個金鑰;

公鑰密碼也被稱為非對稱密碼;

在公鑰密碼中:

加密金鑰,一般是公開的,因此該金鑰稱為公鑰;

解密金鑰,有訊息接受者自己保管的,不能公開,因此也稱為私鑰;

公鑰和私鑰是一一對應的,是不能單獨生成的,一對公鑰和私鑰統稱為金鑰對;

由公鑰加密的密文,必須使用與該公鑰對應的私鑰才能解密;

用私鑰加密的密文,必須使用與該私鑰對應的公鑰才能解密;

解決金鑰配送問題:

由訊息的接受者,生成一對公鑰、私鑰;

將公鑰傳送訊息給傳送者;

訊息的傳送者使用公鑰加密訊息;

目前使用最廣泛的公鑰密碼演算法是rsa(由它的3位開發者的姓氏首字母組成);

混合密碼系統

對稱密碼的缺點:不能很好的解決金鑰配送問題

公鑰密碼的缺點:加密解密速度比較慢

混合密碼系統,是將對稱密碼和公鑰密碼的優勢相結合的方法

加密步驟:

首先,訊息傳送者要擁有訊息接收者的公鑰;

生成會話金鑰,作為對稱密碼的金鑰,加密訊息;

用訊息接收者的公鑰,加密會話金鑰;

將前兩步生成的加密結果,一併發給訊息接收者;

傳送出去的內容包括:

用會話金鑰加密的訊息(加密方法:對稱密碼);

用公鑰加密的會話金鑰(加密方法:公鑰密碼);

三、數字簽名

在數字簽名技術中,有以下2種行為

生成簽名

有訊息的傳送者完成,通過「簽名金鑰」生成;

驗證簽名

由訊息的接受者完成通過驗證金鑰驗證;

Des與3Des加密解密

des和3des演算法 public class des b ret.tostring return ret.tostring 3des加密 金鑰不能每8位重複,例如 123456781234567812345678,如果這樣則演算法退化為des,c 會檢測,不能使用 明文 金鑰 public st...

DES 3DES 加密演算法的呼叫

初始向量 當加密第乙個明文分組時,由於不存在 前乙個密文分組 因此需要事先準備乙個長度為乙個分組的位元序列來代替 前乙個密文分組 這個位元序列稱為初始化向量 initializationvector 通常縮寫為 iv。填充方式 當明文長度不為分組長度的整數倍時,需要在最後乙個分組中填充一些資料使其湊...

3des演算法加密

實現的原理 public class encryption 執行3des加密 param secretkey 秘鑰 param datastring 明文 return base64編碼文字 public static string encryptdes string secretkey,strin...