密碼學原理筆記

2021-08-20 07:34:26 字數 1292 閱讀 6169

注:好記性不如爛筆頭。參閱《密碼編碼學與網路安全--原理與實踐》(第六版,william stallings著)和《區塊鏈原理、設計與應用》(作者楊保華、陳昌)。如有錯漏,還望斧正。

hash值在應用中又常被稱為指紋或摘要,hash演算法的核心思想也經常被應用到基於內容的編址或命名演算法中

常見的hash演算法包括md5和sha系列演算法

md5:對輸入以512位進行分組,其輸出是128位。md5被證明不具備「強抗碰撞性」

sha:乙個hash函式族。包括sha-1(輸出為160位的hash值,不具備「強抗碰撞性」);sha-2(sha-224、sha-256、sha-384和sha-512);sha-3

hash演算法分為計算敏感性(計算資源是瓶頸,主頻越高的cpu執行hash演算法的速度也越快)和非計算敏感性(如scrypt演算法,計算過程需要大量的記憶體資源,可以避免算力攻擊)

數字摘要:利用hash函式的抗碰撞性特點,可以確保內容未被篡改

hash演算法不是一種加密演算法,不能用於對資訊的保護。常用於對口令的儲存上,例如使用者登入**需要需要通過使用者名稱和密碼來進行驗證,**後台僅儲存口令的hash值。

為了防止以空間換時間的攻擊方式,如字典攻擊和彩虹表攻擊(只儲存一條hash鏈的首尾值,相對字典攻擊可以節省儲存空間),採用加鹽的方法。儲存的不是口令明文的hash值,而是口令明文再加上一段隨機字串(即「鹽」)之後的hash值。hash結果和「鹽」分別存放在不同的地方,這樣只要不是兩者同時洩漏,攻擊者就很難破解。

演算法型別

特點優勢  

缺陷  

代表演算法

對稱加密

加解密的金鑰相同

計算效率高,加密強度高

需提前共享金鑰,易洩漏

des、3des、aes、idea

非對稱加密

加解密的金鑰不相關

無需提前共享金鑰

計算效率低,仍存在中間人攻擊可能

rsa、elgamal、橢圓曲線系列演算法

對於對稱加密演算法,在不安全通道中提前分發金鑰的方式有diffie-hellman協議或非對稱加密方式

對稱加密演算法從實現原理上可以分為兩種,分組密碼和序列密碼(又稱流密碼,代表演算法rc4)

對稱加密演算法不能用於簽名場景

非對稱加密演算法:

rsa,利用了對大數進行質因子分解困難的特性,

diffie-hellman金鑰交換:基於離散對數無法快速求解,可以在不安全的通道上,雙方協商乙個金鑰

elgamal:利用模運算下求離散對數困難的特點,被應用在pgp等安全工具中。

橢圓曲線演算法(ecc):基於對橢圓曲線上特定點進行特殊乘法逆運算難以計算的特性

密碼學原理

備註 vpn 技術中的密碼學原理。用於對使用者資料進行加密,常用演算法有 des 3des aes rsa dh 演算法。根據金鑰特徵,分為對稱和非對稱演算法。使用者 a 通過網際網路向使用者 b 傳送訊息,資料如果不經過加密可能遭到竊取 篡改。採用對稱演算法對資料進行加密,所謂的對稱是指通訊雙方用...

密碼學筆記

1.加密方法可以分為兩大類。一類是單鑰加密 private key cryptography 還有一類叫做雙鑰加密 public key cryptography 前者的加密和解密過程都用同一套密碼,後者的加密和解密過程用的是兩套密碼。歷史上,人類傳統的加密方法都是前一種,比如二戰期間德軍用的eni...

密碼學筆記

定義 如果a和d是兩個自然數,d非零,可以證明存在兩個唯一的整數 q 和 r,滿足 a qd r 且0 r d。其中,q 被稱為商,r 被稱為餘數。基本定律 同餘公式也有許多我們常見的定律,比如相等律,結合律,交換律,傳遞律 如下面的表示 1 a a mod d 2 對稱性 a b mod d b ...