如何正確地使用加密與認證技術
在密碼學專家之中,“加密並不是認證”是一個簡單的共識。但很多不瞭解密碼學的開發者,並不知道這句話的意義。如果這個知識更廣為人知和深入理解,那麼將會避免很多的設計錯誤。
這一概念本身並不困難,但在表面之下,還有更多豐富的細節和玄妙之處有待發現。本文就是講述開發者對於加密和認證二者的混淆與誤用,並附上了優秀的解決方案。
0x01 加密與認證之間有哪些區別?
加密是呈現資訊,使其在沒有正確的金鑰情況下,變得難以卒讀的過程。在簡單的對稱加密中,同一個金鑰被用於加密和解密。在非對稱加密中,可以使用使用者的公鑰對資訊加密,使得只有對應私鑰的擁有者才能讀取它。
認證是呈現資訊,使其抗篡改***通常在某一非常低的概率之內,小於1除以已知宇宙中粒子的數量***,同時也證明它起源於預期傳送者的過程。
注意:當本文提及真實性時,是專門指的資訊真實性,而不是身份真實性。這是一個PKI和金鑰管理問題,我們可能在未來的部落格中詳細說明。
就CIA triad而言:加密提供機密性,認證提供完整性。
加密不提供完整性;被篡改的資訊***通常***還能解密,但結果通常會是垃圾。單獨加密也不抑制惡意第三方傳送加密資訊。
認證不提供機密性;可以為明文資訊提供抗篡改。
在程式設計師中,常見的錯誤是混淆這兩個概念。你能很容易找到這樣的一個庫或者框架:加密cookie資料,然後在僅僅解密它之後就無條件地信任與使用之。
最近訪問
- 如何正確地使用加密與認證技術
- 愛迪生說過的名言
- 章丘書法名人作品圖片欣賞
- 狗狗為什麼老掉毛
- 巧克力豆馬芬蛋糕的做法
- 吃什麼會增加頭腦記憶
- 女人晚上盜汗的原因及治療
- 女孩子的頭像的簡筆畫繪畫教程
- 素描中速寫的概念和繪畫的特點
- 二年級自編童謠
- 清明前後養肝食譜食療方法
- 男人補精吃什麼食物
- 用人單位接收函精選
- 公司登出後還可以起訴嗎現在
- 關於以暖我心為話題優秀範文
- 新農村建設中農村資訊化發展的對策研究
- 安全知識教育講座觀後感
- 人教版三年級下冊複習資料有哪些
- 二十四節氣秋分起源於什麼時候
- 導致氣血不足的原因有哪些
- 康熙字典五行屬金的字
- 康熙字典五行屬木的字
- 康熙字典五行屬水的字
- 康熙字典五行屬火的字
- 康熙字典五行屬土的字