一次一密密碼簡介

        一次一密密碼(one-time pad)最先是由Major Joseph Mauborgne和AT&T公司的Gilbert Vernam在1917年發明的。原理簡單,使用便捷,其安全原理是基於信息傳遞,雙方的密鑰是隨機變化的,每次通信雙方傳遞的明文都使用同一條臨時隨機密鑰和對稱算法進行加密後方可在線路上傳遞。由於密鑰一次一變,且沒法猜想,這就保證了線路傳遞數據的絕對安全。即便擁有再大的破解計算能力,在沒有密鑰的前提下對線路截取的密文也是無能爲力的。算法

        這套方案在當時的背景下,仍是比較完美的解決了線路數據傳遞的安全問題。但也一樣存在着不可忽略的問題,即通信雙方密鑰同步問題。這點很好理解,早先的一次一密密碼的實現,須要通信雙方保存一個相同的密碼集,每一個密碼集中擁有N條隨機密鑰,每次通信順序使用其中的密鑰。但雙方的密碼集中相同序號的密鑰必須是徹底同樣的,不然密文沒法被正確還原。因此一旦其中一個密碼集泄露,那這套加密系統天然就被破解了。這就致使密碼集的維護成本極高,且存在安全風險。編程

        時至今日,基於對稱加密算法實現的安全方案,不論加密算法自身的安全強度多高,但最核心安全的依然是密鑰安全存儲與使用,一次一密密碼技術在現今使用的很是普遍。不管是銀聯加密系統,仍是遠程視頻加密等應用都會涉及到。這其中的關鍵技術就是密鑰的下發與安全存儲和銷燬。下發過程是多種多樣的,但多數使用了密文方式進行密鑰更新。安全

        下面簡述一種應用方法。A、B雙方在已創建互信機制的前提下,分別應用LKT硬件加密芯片存儲一條線路保護密鑰KEY_pro。每次通信以前,A利用加密芯片產生N字節隨機數做爲數據加密密鑰KEY_en並存儲於RAM之中,在加密芯片內部經KEY_pro加密後生成密文C1,A將C1發送給B後,經加密芯片內部的KEY_pro解密還原出KEY_en並存儲於加密芯片RAM中。每次A、B雙方正式通信前,都通過上述操做完成密鑰同步,而後利用KEY_en對通信數據加密傳遞,這就實現了一次一密碼的安全方案,同時解決了密鑰存儲維護的難題。之因此這樣說,是由於加密芯片自身具備高安全等級,可有效防止暴力破解等數據破解方式,保證內部數據存儲與運行安全。線路傳遞數據的加解密都在芯片內部完成,保證線路安全。最主要的是加密算法可靈活選擇,利用LKT加密芯片的可編程特色,可以自由切換加密密鑰和加密算法,讓一次一密,一次多密或者屢次多密的應用都變成可能,打開了嵌入式應用開發人員的思惟模式,讓安全變得更貼近應用。加密

 

參考文獻:視頻

Applied Cryptography protocols,Algorithms,and Source Code in C Second Edition(美)Brucc Schncic著 吳世忠 祝世雄 張文政 等譯(11-12)ci

相關文章
相關標籤/搜索