祕鑰加密實現簡單概述

開始之前:只對祕鑰加密方式做簡單描述。

對稱加密:

使用同一組祕鑰對數據進行加密與解密。即加密解密都使用同一串密鑰,
常見的對稱加密的算法有:
DES: Data Encryption Standard, 56bits
3DES:
AES: Advanced (128, 192, 256bits)
Blowfish, Twofish
IDEA, RC6, CAST5
對稱加密在加密時是把原始數據分割成固定大小的塊,逐個對數據進行加密。

對稱加密的優點是加密解密都使用同一個密鑰,(單向加密解密使用不同的密鑰公鑰加密私鑰解密),加密解密算法簡單,所以執行加密與過程中相對非對稱加密算法執行效率更高。但是對稱加密出的數據體積更大。
但是由於對稱加密的特性(只有一串鑰匙),造成了祕鑰分發困難,數據來源無法確認等狀況。
對稱的密鑰交換:
1、 A: a,p 協商生成公開的整數a, 大素數p
    B: a,p
2、 A:生成隱私數據 :x (x<p ),計算得出 a^x%p,發送給B
    B:生成隱私數據 :y,計算得出 a^y%p,發送給A
3、 A:計算得出 [(a^y%p)^x] %p = a^xy%p, 生成爲密鑰
    B:計算得出 [(a^x%p)^y] %p = a^xy%p,生成爲密鑰

“`

非對稱加密:

非對稱加密共有兩把鑰匙。分爲公鑰(public key)與私鑰(private, secret key),通常情況下會將公鑰分發出去,而私鑰自己保留。從私鑰中可以提取出公鑰。
比較常見的加密算法有:RSA(加密,數字簽名) ,DSA(數字簽名) ,ELGamal
其中一把加密過的數據只能使用另外一把解開,
加密解密的祕鑰並不一致,造成了算法相對複雜,所以在加密解密過程中會需要大量的時間。但是加密過的數據體積並不會擴大。所以此類密算法比較適合對較小的數據進行加密,
當加密的一部份目的是爲了讓對方對自己的身份進行驗證時或者向對方聲明自己的身份時,加密過程與加密產生的文件稱爲數字簽名。驗證身份的過程是及使用本地保存的公鑰進行解密,解密成功則爲此公鑰對應的主機的數據。

散列算法:

算列算法的目的是將數據生成特定的特徵碼,使用散列算法生成的特徵碼的長度是固定的。但進行加密的數據可以是任意長度的(包括1bit),源數據產生細小的變換,生成的特徵碼將產生巨大的變化(雪崩效應),生成的特徵碼無法進行反推,即由特徵碼生成原始數據。散列算法多用於確定數據的完整性(對接收到的數據進行散列算計計算,生成特徵碼,與官方提供的特徵碼進行對比),散列算法又稱哈希。

常見的散列算法:
md5: 128bits、 sha1: 160bits、 sha224
sha256、 sha384、 sha512
散列算法相關命令:
sha1sum:
    簡介  sha1sum 生成160位概要值,sha1sum可以從標準輸入讀取數據,也可以指定文件。
    格式 sha1sum 選項 文件

     sha1sum 文件 > 文件 :將文件的哈希值保存在文件中。
     sha1sum 文件 >> 文件 :將文件的哈希值追加到文件中。

    --check :校驗
    sha1sum --check 保存哈希值的文件。

例:sha1sum /dev/sr0
    計算光盤的哈希值。

sha512sum
    格式同上

加密實現:

對稱密鑰交換:發送方用對方的公鑰加密一個對稱密鑰後發送給對方

非對稱祕鑰加密信息: 發送方使用接受方的公鑰加密,接收方收到數據,使用自己的私鑰進行解密。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章