密碼學與安全技術概要

2021-10-10 17:27:55 字數 3089 閱讀 3187

hash(雜湊或雜湊),能將任意長度的二進位制明文對映為較短的(通常是固定長度的)二進位制串(hash值),並且不同的明文很難對映為相同的hash值。

hash值在應用中又常被稱為指紋(fingerprint)或摘要(digest)。

乙個優秀的hash演算法將能實現如下功能:

1)正向快速

2)逆向困難

3)輸入敏感

4)衝突避免

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

hash演算法是計算敏感型。

加解密演算法是密碼學的核心技術,從設計理念上可以分為兩大基本型別,對稱加密非對稱加密

對稱秘鑰從實現原理上可以分為兩種:分組密碼序列密碼

分組對稱加密代表演算法包括des、3des、aes、idea等。

1) des(data encryption standard)經典的分組加密演算法

2) 3des:三重des 加密->解密->加密

3) aes(advanced encryption algorithm)

4) idea(international data encryption algorithm)

序列密碼,又稱流密碼。

非對稱加密中,私鑰一般需要通過隨機數演算法生成,公鑰可以根據私鑰生成。

非對稱加密演算法的缺點是處理速度(特別是生成金鑰和解密過程)往往比較慢,一般比對稱加解密演算法慢2~3個數量級;同時加密強度也往往不如對稱加密演算法。

非對稱加密演算法代表演算法rsa、elgamal、橢圓曲線(ecc)、sm2等系列演算法。

rsa經典的公鑰演算法,利用了對大樹進行質因子分解困難的特性。

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

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

sm2(shangmi2)國家商用密碼演算法,同樣基於橢圓曲線演算法,加密強度優於rsa系列演算法。

混合加密機制同時結合了對稱加密和非對稱加密的優點。

先用計算複雜度高的非對稱加密協商出乙個臨時的對稱加密金鑰(也稱會話金鑰),然後雙方再通過對稱加密演算法對傳遞的大量資料進行快速的加解密處理。

典型的應用案例是現在大家常用的https協議。

dh金鑰交換協議是乙個經典的協議,使用該協議可以在不安全通道完成對稱金鑰的協商,以便後續通訊採用對稱加密。

訊息認證碼基於對稱加密,可以用於對訊息完整性(integrity)進行保護。

基本過程:對某個訊息利用提前共享的對稱金鑰和hash演算法進行加密處理,得到hmac值。

典型的hmac(h,k,message)演算法包括三個因素,k為提前共享的對稱金鑰,h為提前商定的hash演算法,message為要處理的訊息內容。

數字簽名基於非對稱加密(即私鑰簽名,公鑰驗籤),既可以用於證實某數字內容的完整性,又同時可以確認**(或不可抵賴,non-repudiation)。

知名的數字簽名演算法包括dsa(digital signature algorithm)和安全強度更高的ecsda(elliptic curve digital signature algorithm)等。

根據所保護的公鑰的用途,可以分為加密數字證書(encryption certificate)和簽名驗證數字證書(signature certificate)。

兩種型別的公鑰也可以同時放在同一證書中。

乙個數字證書內容可能包括基本資料(版本、序列號)、所簽名物件資訊(簽名演算法型別、簽發者資訊、有效期、被簽發人、簽發的公開金鑰)、ca的數字簽名,等等。

目前使用最廣泛的標準是itu和iso聯合制定的x.509的v3版本規範(rfc 5280)

其中定義了如下證書資訊域:

1)版本號:規範的版本號,目前版本3,值為0x2

2)序列號:由ca維護的為它所頒發的每個證書分配的唯一的序列號

3)簽名演算法:數字簽名所採用的演算法,如sha256withrsaencryption或ecdsa-with-sha256

4)頒發者:頒發證書單位的標識資訊

5)有效者:證書的有效期限,包括起止時間

6)主體:證書擁有者的標識資訊(distinguished name)

8)頒發者唯一號:代表頒發者的唯一資訊,僅2、3版本支援,可選

9)擴充套件:可選的一些拓展。

v3中可能包含:subject key identifier,basic constraints,authority key identifier,crl distribution points,key usage

x.509規範中一般推薦使用pem(privacy enhanced mail)格式來儲存證書相關的檔案。

pem格式採用文字方式進行儲存,一般包括首尾標記和內容塊,內容採用base64進行編碼。

此外,還有der(distinguished encoding rules)格式,是採用二進位制對證書進行儲存,可以與pem格式進行相互轉換。

pki體系提供了一套完整的證書管理的框架,包括生成、頒發、撤銷過程等。

pki至少包括如下核心元件:

(1)ca(certification authority)

(2)ra(registration authority)

(3)證書資料庫

常見的操作流程為:使用者通過ra登記申請證書,提供身份和認證資訊等;ca審核後完成證書的製造,頒發給使用者。使用者如果需要撤銷證書則需要再次向ca發出申請。

使用者一般會首先自行生成乙個私鑰和證書申請檔案(certificate signing request,即csr檔案),該檔案中包括了使用者對應的公鑰和一些基本資訊,如通用名(common name即cn)、組織資訊、地理位置等。ca只需要對證書請求檔案進行簽名,生成證書檔案,頒發給使用者即可。

由於ca無法強制收回已經頒發出去的數字證書,因此為了實現證書的作廢,往往還需要維護乙個撤銷證書列表(certificate revocation list,crl),用於記錄已經撤銷的證書序號。

安全 密碼學基礎

本文 1 加密技術概述 乙個密碼系統的安全性只在於金鑰的保密性,而不在演算法的保密性。對純資料的加密的確是這樣。對於你不願意讓他看到這些資料 資料的明文 的人,用可靠的加密演算法,只要破解者不知道被加密資料的密碼,他就不可解讀這些資料。但是,軟體的加密不同於資料的加密,它只能是 隱藏 不管你願意不願...

密碼學 密碼學基礎

密碼學是研究編制密碼和破譯密碼的技術科學。密碼學的安全目標至少包含三個方面 保密性 完整性 可用性。完整性 資源只有授權方以授權的方式進行修改,所有資源沒有授權則不能修改。可用性 資源只有在適當的時候被授權方訪問,並按需求使用。密碼系統由5部分組成 1 明文空間m 全體明文的集合 2 密文空間c 全...

密碼學 密碼學中的安全性證明

安全性證明的定義是這樣的 所謂密碼演算法的安全性證明就是判定在乙個普通的攻擊模型中,密碼演算法和所依賴的可信密碼學演算法問題之間的規約關係,如果演算法的攻破 即攻擊者贏 意味著某一在密碼學中可信問題的解決,則說明該演算法是安全的,即安全性得到證明。第一次看這個概念,很懵,難道乙個可以攻破的密碼的演算...