NIST Cybersecurity White Paper 2021
原文標(biāo)題《Getting Ready for Post-Quantum Cryptography: Exploring Challenges Associated with Adopting and Using Post-Quantum Cryptographic Algorithms》
原文鏈接 https://nvlpubs.nist.gov/nistpubs/CSWP/NIST.CSWP.04282021.pdf
摘要:
加密技術(shù)在整個(gè)政府和行業(yè)中都被用于驗(yàn)證來(lái)源,并保護(hù)我們通信和存儲(chǔ)的信息的機(jī)密性和完整性。本文描述了量子計(jì)算技術(shù)對(duì)經(jīng)典密碼學(xué)的影響,特別是對(duì)公鑰密碼系統(tǒng)的影響。本文還介紹了標(biāo)準(zhǔn)化過(guò)程完成后與后量子密碼學(xué)相關(guān)的采用挑戰(zhàn)。討論了遷移到后量子密碼學(xué)的規(guī)劃要求。本文最后介紹了NIST幫助向后量子密碼學(xué)遷移的下一步步驟。
加密技術(shù)
加密技術(shù)在整個(gè)政府和行業(yè)中都被用于驗(yàn)證來(lái)源,并保護(hù)我們通信和存儲(chǔ)的信息的機(jī)密性和完整性。加密技術(shù)包括廣泛的協(xié)議、方案和基礎(chǔ)設(shè)施,但它們依賴于相對(duì)較小的加密算法集合。密碼算法是這些加密技術(shù)核心的信息轉(zhuǎn)換引擎。
加密算法是轉(zhuǎn)換數(shù)據(jù)的數(shù)學(xué)函數(shù),通常使用一個(gè)稱為密鑰的變量來(lái)保護(hù)信息。這些關(guān)鍵變量的保護(hù)對(duì)受保護(hù)的數(shù)據(jù)的持續(xù)安全至關(guān)重要。在對(duì)稱加密算法的情況下,加密保護(hù)信息的發(fā)起者和接收者都使用相同的密鑰。對(duì)稱密鑰必須保持秘密以保持保密性;任何具有該密鑰的人都可以恢復(fù)未受保護(hù)的數(shù)據(jù)。不對(duì)稱算法要求發(fā)起者使用一個(gè)密鑰,而收件人使用不同但相關(guān)的密鑰。其中一個(gè)非對(duì)稱密鑰(私鑰)必須保密,但另一個(gè)密鑰(公鑰)可以在不降低加密進(jìn)程安全性的情況下公開(kāi)。這些非對(duì)稱算法通常被稱為公鑰算法。
對(duì)稱算法提供了保密性和完整性的高效處理,但密鑰管理(即建立和維護(hù)只有通信各方已知的秘密)構(gòu)成了一個(gè)挑戰(zhàn).對(duì)稱算法提供了較弱的起源證明,因?yàn)榻粨Q的任何一方都可以計(jì)算變換。非對(duì)稱算法通常需要更多的處理操作和時(shí)間,而不是提供超過(guò)非常少量的數(shù)據(jù)的保密保護(hù)。然而,這些算法對(duì)于加密密鑰的建立和數(shù)字簽名過(guò)程都是實(shí)用的。在公鑰密碼學(xué)的情況下,一對(duì)中的一個(gè)密鑰可以被公開(kāi),并且不需要分發(fā)私鑰。不對(duì)稱密鑰算法可以用于建立成對(duì)密鑰,并對(duì)多對(duì)多通信中驗(yàn)證實(shí)體和/或數(shù)據(jù)源,而不需要密鑰分發(fā)的秘密通道。因此,大多數(shù)加密實(shí)體或數(shù)據(jù)源身份驗(yàn)證和密鑰建立功能都使用公鑰加密。
量子計(jì)算技術(shù)對(duì)經(jīng)典密碼學(xué)的影響
不時(shí)地,發(fā)現(xiàn)密碼學(xué)的弱點(diǎn),依賴技術(shù)所施加的限制,或支持密碼分析的技術(shù)的進(jìn)步,使得有必要進(jìn)行替換傳統(tǒng)的加密算法。我們所依賴的大多數(shù)算法在世界各地許多不同的通信、處理和存儲(chǔ)系統(tǒng)的組件中使用。
許多信息系統(tǒng)缺乏加密貨幣的敏捷性——也就是說(shuō),它們的目的不是支持在不進(jìn)行系統(tǒng)的基礎(chǔ)設(shè)施重大改變的情況下,快速適應(yīng)新的密碼原語(yǔ)和算法。因此,一個(gè)組織可能無(wú)法完全控制其加密機(jī)制和流程(完全控制它就可以對(duì)它們進(jìn)行準(zhǔn)確的修改,而不需要密集的手工努力)。
當(dāng)一些系統(tǒng)的一些組件往往會(huì)被相對(duì)頻繁的改進(jìn)的組件所取代(如,手機(jī)),其他預(yù)計(jì)零部件將持續(xù)工作10年或更長(zhǎng)時(shí)間(如,發(fā)電配電系統(tǒng)的部件)。通信互操作性和記錄歸檔需求對(duì)系統(tǒng)組件引入了額外的限制。一般來(lái)說(shuō),在系統(tǒng)的所有組件都準(zhǔn)備好處理替換之前,加密算法不能被替換。在引入新的加密算法時(shí),通常必須實(shí)現(xiàn)對(duì)協(xié)議、方案和基礎(chǔ)設(shè)施的更新。因此,算法替換可能具有極大的破壞性,通常需要幾十年才能完成。
量子計(jì)算發(fā)展的持續(xù)進(jìn)展預(yù)示著一個(gè)特別具有破壞性的密碼轉(zhuǎn)變。所有廣泛使用的公鑰密碼算法理論上都容易受到基于Shor算法的攻擊,但該算法依賴于只能通過(guò)大規(guī)模量子計(jì)算機(jī)實(shí)現(xiàn)操作。當(dāng)實(shí)用的量子計(jì)算網(wǎng)絡(luò)對(duì)手時(shí),幾乎所有現(xiàn)代公鑰密碼系統(tǒng)的安全性都將被打破。
因此,所有現(xiàn)在使用當(dāng)前公鑰算法保護(hù)的秘密對(duì)稱密鑰和私鑰非對(duì)稱密鑰,以及這些密鑰下保護(hù)的信息,都將被暴露。這包括受這些公鑰算法保護(hù)的所有記錄的通信和其他存儲(chǔ)信息。任何仍然被認(rèn)為是私人的或其他敏感的信息都將容易受到暴露和未被發(fā)現(xiàn)的修改。
一旦利用Shor的算法成為現(xiàn)實(shí),保護(hù)存儲(chǔ)的密鑰和數(shù)據(jù)將需要使用抗量子算法重新加密它們,并刪除或物理保護(hù)“舊的” 副本(如,備份)。完整性和信息源將變得不可靠,除非它們被使用一種不易受量子計(jì)算(攻擊)影響的機(jī)制處理或封裝(例如,重新簽名或加蓋時(shí)間戳)。無(wú)法采取任何措施來(lái)保護(hù)以前由對(duì)手存儲(chǔ)的加密材料的機(jī)密性。
許多密碼學(xué)研究人員已經(jīng)為算法的發(fā)展做出了貢獻(xiàn),這些算法的安全性不會(huì)被Shor的算法或其他已知的量子計(jì)算算法所降低。這些算法有時(shí)被稱為量子抵抗,但我們對(duì)量子計(jì)算能力的理解幾乎肯定是不完整的。本文介紹了 一個(gè)為存在實(shí)際量子計(jì)算的世界設(shè)計(jì)的加密算法——后量子算法。
后量子密碼學(xué)
反映在NIST’s 2016 Report on Post-Quantum Cryptography和2020 Status Report on the Second Round of the NIST Post-Quantum Cryptography Standardization Process,后量子公鑰密碼標(biāo)準(zhǔn)的開(kāi)發(fā)工作正在進(jìn)行中,而算法的選擇過(guò)程也盡在掌握。算法的選擇預(yù)計(jì)將在未來(lái)一兩年完成,關(guān)于標(biāo)準(zhǔn)和實(shí)施準(zhǔn)則的工作將迅速進(jìn)行。然而,經(jīng)驗(yàn)表明,在最好的情況下,在密碼標(biāo)準(zhǔn)發(fā)布后將需要5到15年或更長(zhǎng)時(shí)間,才能全面實(shí)施這些標(biāo)準(zhǔn)。不幸的是,后量子公鑰標(biāo)準(zhǔn)的實(shí)現(xiàn)可能比引入新的經(jīng)典密碼算法更有問(wèn)題。在缺乏重要的實(shí)施規(guī)劃的情況下,社區(qū)可能需要幾十年才能取代目前正在使用的大多數(shù)脆弱的公鑰系統(tǒng)。
目前需要公鑰密碼學(xué)的最關(guān)鍵的功能是密鑰建立(即密鑰的安全生成、獲取和管理)和數(shù)字簽名應(yīng)用程序。理想的方法是用“插入”替換量子脆弱算法(如RSA和Diffie-helhelman)。后量子密碼學(xué)有多個(gè)候選類。不幸的是,每個(gè)類都至少有一個(gè)安全實(shí)現(xiàn)的要求使得插入替換不合適。
例如,一些候選對(duì)象具有過(guò)大的簽名大小,涉及過(guò)度的處理,需要非常大的公鑰和/或私鑰,需要在發(fā)送方和接收方之間進(jìn)行不對(duì)稱的操作以及要求應(yīng)答者根據(jù)發(fā)起者的公共價(jià)值生成消息,以及/或涉及與計(jì)算結(jié)果相關(guān)的其他不確定性。根據(jù)算法和使用該算法的操作,即使在所有參數(shù)實(shí)現(xiàn)正確的情況下,安全實(shí)現(xiàn)可能需要解決諸如公鑰驗(yàn)證、公鑰重用、解密失敗等問(wèn)題,需要選擇新的輔助功能(如哈希函數(shù)與公鑰算法一起使用的數(shù)字簽名)。即使在可能進(jìn)行安全操作的情況下,性能和可伸縮性問(wèn)題也可能需要對(duì)協(xié)議和基礎(chǔ)設(shè)施進(jìn)行重大修改。
與后量子密碼學(xué)相關(guān)的挑戰(zhàn)
正如在 Lidong Chen 的文章中所討論的那樣,由于不同的實(shí)現(xiàn)約束,未來(lái)的后量子密碼學(xué)標(biāo)準(zhǔn)很可能會(huì)為不同的應(yīng)用程序指定多種算法(如,對(duì)大簽名大小或大密鑰的敏感性)。例如,簽名或密鑰大小對(duì)于某些應(yīng)用程序可能不是問(wèn)題,但在其他應(yīng)用程序中是不可接受的。在這種情況下,NIST標(biāo)準(zhǔn)可以認(rèn)識(shí)到對(duì)不同的應(yīng)用程序來(lái)部署不同的算法的需求。另一方面,現(xiàn)有的協(xié)議可能需要進(jìn)行修改,以處理更大的簽名或密鑰大小(如,使用消息分割)。新的應(yīng)用程序的實(shí)現(xiàn)將需要適應(yīng)后量子密碼學(xué)的需求,并允許新的方案能夠適應(yīng)它們。事實(shí)上,后量子密碼學(xué)的需求實(shí)際上可能會(huì)塑造一些未來(lái)的應(yīng)用標(biāo)準(zhǔn)。
算法的替換通常需要更改或替換密碼庫(kù)、實(shí)現(xiàn)驗(yàn)證工具、實(shí)現(xiàn)或加速算法性能的硬件、依賴的操作系統(tǒng)和應(yīng)用程序代碼、通信設(shè)備和協(xié)議,以及用戶和管理程序。需要更改或更換安全標(biāo)準(zhǔn)、程序和最佳實(shí)踐文檔,安裝、配置和管理文檔也是如此。當(dāng)你決定替換一個(gè)算法時(shí),有必要開(kāi)發(fā)一本考慮到所有這些因素的劇本。劇本中的一些元素取決于被替換的算法和替換算法的特征。開(kāi)發(fā)詳細(xì)的遷移劇本所需的其他元素可以在選擇替換算法并記錄下來(lái)之前進(jìn)行確定——例如,系統(tǒng)的發(fā)現(xiàn)和文檔化 ,應(yīng)用程序、協(xié)議以及使用或依賴于被替換的算法的其他基礎(chǔ)設(shè)施和使用元素。
從當(dāng)前的一套公鑰算法遷移到后量子算法的先決條件是確定公鑰密碼學(xué)用在哪里以及用于什么目的。公鑰密碼學(xué)已經(jīng)集成到現(xiàn)有的計(jì)算機(jī)和通信硬件、操作系統(tǒng)、應(yīng)用程序、通信協(xié)議、關(guān)鍵基礎(chǔ)設(shè)施和公司中訪問(wèn)控制機(jī)制。公鑰密碼學(xué)使用的示例包括:
- 用于提供源身份驗(yàn)證和完整性身份驗(yàn)證,以及支持不否定消息、文檔或存儲(chǔ)數(shù)據(jù)的數(shù)字簽名。
- 用于建立經(jīng)過(guò)身份驗(yàn)證的通信會(huì)話或?yàn)閳?zhí)行特定操作所提供的授權(quán)的身份驗(yàn)證過(guò)程。
- 對(duì)稱密鑰(例如,密鑰包裝、數(shù)據(jù)加密和消息認(rèn)證密鑰)和其他密鑰材料(例如,初始化向量)的密鑰傳輸。
- 權(quán)限授權(quán)流程
許多信息技術(shù)(IT)和操作技術(shù)(OT)系統(tǒng)依賴于公鑰密碼學(xué),但許多組織沒(méi)有關(guān)于該密碼學(xué)使用地點(diǎn)的清單。這使得很難確定后量子算法需要在哪里以及使用什么優(yōu)先級(jí)來(lái)取代當(dāng)前的公鑰系統(tǒng)。迫切需要工具來(lái)促進(jìn)發(fā)現(xiàn)在現(xiàn)有技術(shù)基礎(chǔ)設(shè)施中使用公鑰密碼學(xué)。
同樣,網(wǎng)絡(luò)安全標(biāo)準(zhǔn)和指導(dǎo)方針以及由此產(chǎn)生的操作指令和命令一般會(huì)規(guī)定或假定使用公共密鑰密碼學(xué)。目前還沒(méi)有 這些清單可以指導(dǎo)更新標(biāo)準(zhǔn)、指南和法規(guī),以適應(yīng)向后量子密碼學(xué)的遷移。
總結(jié)
以上是生活随笔為你收集整理的NIST Cybersecurity White Paper 2021的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: zcmu-1599 卡斯丁狗的炉石传说
- 下一篇: 【圣诞来了】3分钟教你用java画一颗彩