密碼學 與 Node.js
Cryptography & Nodejs
掃盲
Cryptography is the art and science of making a cryptosystem that is capable of providing information security.
密碼學(Cryptography)是研究如何通過一系列相關技術手段構建一套加密系統確保系統的資訊保安。
資訊保安的目標
私密性(Confidentiality)
資料完整性(data integrity)
身份可驗證(authentication)
不可否認性(non-repudiation)
常見手段
加密(Encryption)
為了保證訊息明文不被截獲,常採取傳遞加密訊息的手段。大致流程如下圖,
加密通常需要向加密演算法提供訊息明文和加密祕鑰,加密方式常分為對稱加密和非對稱加密。
對稱加密的祕鑰只有一個,訊息傳送接收方各自擁有同一個加密祕鑰用來加解密。常見演算法有:DES、AES等。
非對稱加密的祕鑰有兩個,加解密需要同時配合兩個祕鑰進行,在通訊過程中,雙方各自向對方提供自己的加密公鑰,在向對方發訊息時使用對方的加密公鑰進行加密,而對方發過來的訊息則可以通過自己的祕鑰對進行解密。常見的機制有:RSA 、ElGamal等。
雜湊(Hash functions)
如圖示,雜湊是指把原訊息文雜湊壓縮演算法轉換成固定長度的字串。所選擇的演算法生成的字串和原文內容唯一對應,不會有兩個不同的原文輸入生成出一樣的字串,因此可以用來確保原文內容的完整性。除此以外,hash之後的結果通常無法還原成輸入的原文,即hash一般是不可逆的。
常見演算法有MD、SHA等。
訊息身份驗證碼(Message Authentication codes (MAC))
如圖示,訊息身份驗證用於驗證發訊息的來源合法,和驗證訊息原文沒被修改類似,通過訊息身份驗證碼演算法接收身份key和原文計算驗證碼,傳輸後在接收方再一次進行計算然後比較一致性。
數字簽名(Digital Signatures)
如圖示,數字簽名比訊息身份驗證更進一步,結合原始訊息文字的hash值和祕鑰對計算驗證碼進行驗證。
手段和目標之間的關係:
所以如圖示,如果要設計出一個滿足上述各種安全性目標的系統,需要結合其中的多種手段來實現。 例如,加密原始訊息內容之後再應用數字簽名機制傳遞訊息。
參考文章:Cryptography - Quick Guide
Crypto in nodejs
nodejs中的密碼相關的功能都在crypto
這個模組中。
使用時需要引入該模組var crypto = require('crypto');
根據上述的密碼相關手段,可以對應到crypto
模組中的相應方法
官方文件有各方法的詳細說明和示例程式碼,這裡只說明一下這些方法使用的場景。
加密解密
使用crypto.createCipher[vi]
及crypto.createDecipher[vi]
.
祕鑰管理
使用crypto.createDiffieHellman
,crypto.createECDH
等。
雜湊運算
訊息驗證碼運算
數字簽名
使用crypto.createSign
及crypto.createVerify
相關文章
- 密碼學與密碼安全:理論與實踐密碼學
- 古代密碼學與資訊保安密碼學
- 資訊保安與密碼學概論密碼學
- 密碼學中的愛麗絲與鮑勃密碼學
- 密碼學密碼學
- 序列密碼與分組密碼密碼
- PKCS#11:密碼裝置與應用程式的密碼學介面密碼學
- 應用密碼學——古典密碼密碼學
- 《密碼學系列》|| 密碼學中的流密碼是怎麼回事?密碼學
- 密碼學承諾原理與應用 - 概覽密碼學
- 密碼學基礎概念 — 密碼學複習(一)密碼學
- 應用密碼學 - 公鑰密碼密碼學
- 應用密碼學——分組密碼密碼學
- app直播原始碼,Node.js實現密碼雜湊加密APP原始碼Node.js密碼加密
- mysql學習之-密碼管理(預設密碼,修改密碼,解決忘記密碼)MySql密碼
- 淺議密碼強度與密碼破解(2)密碼
- 分組密碼(一) — 密碼學複習(四)密碼學
- 密碼學入門密碼學
- killBase系列 -- 密碼學密碼學
- 密碼學筆記密碼學筆記
- 古典密碼學 (一)密碼學
- 密碼學簡述密碼學
- 古典密碼的演化 (一)— 密碼學複習(二)密碼學
- 古典密碼的演化 (二)— 密碼學複習(三)密碼學
- 密碼危機:深度學習正在加速密碼破解!密碼深度學習
- Node.js原始碼學習(1) 使用cLion除錯node.js原始碼Node.js原始碼除錯
- [譯] 密碼學速成課密碼學
- 密碼學期末複習密碼學
- [密碼學複習]Cryptography密碼學
- BTC-密碼學原理密碼學
- 密碼學(原創心得)密碼學
- 密碼學常用解碼網站密碼學網站
- 【密碼學系列】|| 分組密碼的工作模式詳解密碼學模式
- 密碼學課程設計 - 混合密碼的實現密碼學
- CTF---密碼學入門第六題 古典密碼密碼學
- 【密碼學原理】流密碼和RC4演算法密碼學演算法
- RACE IPEMD:構建安全基石的密碼學原理與實踐密碼學
- 現代密碼學之加密雜湊函式與訊息認證碼密碼學加密函式