你真的瞭解“密碼”嗎?
中文裡的“密碼”是個有點難以捉摸的詞彙,你認為它很簡單,其實它卻包含著幾種看似差不多但本質上卻完全不同的含義,還真的是不簡單呢。
我們平時登入淘寶或者 QQ 時都需要輸入使用者名稱和密碼,刷信用卡或者在ATM 機上取錢時也需要輸入密碼。一提到“密碼”,大多數人都會想到上面這些情形。然而很不巧的是,上面這種“密碼”跟我們在這本書中要探討的“密碼”幾乎是完全不同的兩碼事。無論是上淘寶還是刷卡時輸入的密碼,都只是一種身份驗證的憑據,換句話說,也就是向系統證明你才是這個賬號或銀行卡的主人的一種證據——跟“天王蓋地虎!”“寶塔鎮河妖!”差不多是一回事。嚴格來說,這種“密碼”應該叫作“口令”(對應英文中的 password、passcode 或者 pin),在本書中我們也是這樣叫的。
我們還習慣把 DNA 稱作“遺傳密碼”,這裡的“密碼”又代表什麼意思呢?其實,DNA 的功能是將一種資訊(主要是蛋白質的構成資訊)轉換成另一種資訊(鹼基的序列)並記錄下來。這就像將人們說的話轉換成文字,將歌曲轉換成 MP3 檔案一樣,本質上是一種“編碼”(encoding)的過程,只不過我們還沒有完全搞清楚這種編碼機制的所有細節,因此這裡的“密碼”實際上應該理解為“神祕的編碼”吧!很遺憾,這也不是我們在這本書中要探討的那個“密碼”。
那麼這本書裡所說的“密碼”到底是什麼呢?簡單來說,密碼(對應英文中的 cryptography)是一個非常龐大而複雜的資訊處理體系,涉及資訊的機密性、完整性、認證等許多方面,由此衍生出的技術無時無刻不在保衛著我們生活中的各種資訊的安全。密碼技術如此重要,但它們又是那麼的不起眼,我們很少注意到它們的存在,更鮮有人知道我們為什麼需要它們,以及它們究竟是怎樣工作的。對於密碼技術,可以說大多數人都處於一種“既不知其然,亦不知其所以然”的狀態。
在如今這個資訊爆炸的時代,我們每個人都和資訊保安脫不了干係,因此正確理解“密碼能做到什麼,不能做到什麼”對於培養安全意識是非常重要的。況且密碼技術其實並沒有那麼枯燥,密碼攻守雙方交鋒的過程更可謂是步步驚心。當然,密碼技術的背後存在著非常複雜的數學原理。不過別擔心,本書的作者結城浩曾經出版過《數學女孩》《程式設計師的數學》等多本數學方面的讀物,深諳如何將複雜的數學問題用通俗易懂的方式講給讀者,這本《圖解密碼技術》自然也不例外,比如其中用時鐘來講解數論中的模運算這一部分就十分形象,讓人印象深刻。
最後留給大家一段密文權當消遣。這是一段用經典的愷撒密碼加密的文字,大家讀完這本書之後,要破譯它應該是輕而易舉,有興趣的話來試試看吧!
ZW PFL NREK KF CVRIE DFIV RSFLK TIPGKFXIRGYP Z IVTFDDVEU RE FECZEV TFLIJV ZEJKILTKVU SPGIFWVJJFI URE SFEVY WIFD JKREWFIU LEZMVIJZKP ALJK JVRITY TIPGKFXIRGYP RK TFLIJVIR.FIX
本文來自《圖解密碼技術》一書的譯者周自恆。
推薦圖書:《圖解密碼技術》
相關文章
- ViewStub你真的瞭解嗎View
- 你真的瞭解mongoose嗎?Go
- 你真的瞭解 WebSocket 嗎?Web
- JavaScript 你真的瞭解this指向嗎JavaScript
- 你真的瞭解前端路由嗎?前端路由
- 你真的瞭解RPC嗎?RPC
- 你真的瞭解URLEncode嗎?
- 你真的瞭解nosql世界嗎?SQL
- 你的密碼真的安全嗎?密碼
- 你真的瞭解深度學習嗎?深度學習
- 你真的瞭解 Cookie 和 Session 嗎?CookieSession
- 你真的瞭解 Cookie 和 Session 嗎CookieSession
- 你真的瞭解npm-scripts嗎?NPM
- 你真的瞭解 Session 和 Cookie 嗎?SessionCookie
- 你真的瞭解js運算子嗎JS
- 你真的瞭解HTTP快取嗎HTTP快取
- 你真的瞭解 React 生命週期嗎React
- 你真的瞭解Event Loop(事件環)嗎?OOP事件
- 你真的瞭解 OkHttp 快取控制嗎?HTTP快取
- AnyForWeb分享:畫素!你真的瞭解嗎?Web
- 你真的瞭解python嗎?這篇文章帶你快速瞭解!Python
- 你真的瞭解響應式佈局嗎?
- 注意!JS的結構你真的瞭解嗎?JS
- 你真的瞭解延時佇列嗎(一)佇列
- 靈魂拷問,你真的瞭解DNS嗎?DNS
- 【UI設計師】你真的瞭解色彩嗎?UI
- 你真的瞭解Android金鑰庫嗎?Android
- platform 模組 你真的瞭解你的計算機嗎?Platform計算機
- 你真的對 Linux 中的 Inode 瞭解嗎?Linux
- 你真的瞭解 Unicode 和 UTF-8 嗎?Unicode
- Python讀寫檔案你真的瞭解嗎?Python
- 面試官:你真的瞭解Redis分散式鎖嗎?面試Redis分散式
- stl中的sort函式,你真的瞭解嗎函式
- TCP/IP、HTTP、socket 這些,你真的瞭解嗎?TCPHTTP
- 你真的瞭解JS陣列的那些方法嗎?JS陣列
- 你真的瞭解 NDK 和 jni 的區別嗎
- C++的那些事:你真的瞭解引用嗎C++
- 你真的瞭解Java記憶體模型JMM嗎?Java記憶體模型