




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
iCS35.030
CCSL80GM
中華人民共和國密碼行業(yè)標(biāo)準(zhǔn)
GM/T0105—2021
軟件隨機(jī)數(shù)發(fā)生器設(shè)計(jì)指南
Designguideforsoftwarebasedrandomnumbergenerators
2021-10-18發(fā)布2022-05-01實(shí)施
罪加/T0105—2021
目次
前言.........................................................................................m
弓I言........................................................................................IV
1范圍.....................................................................................1
2規(guī)范性引用文件...........................................................................1
3術(shù)語和定義...............................................................................1
4縮略語....................................................................................3
5軟件隨機(jī)數(shù)發(fā)生器設(shè)計(jì)....................................................................3
5.13
5.2瀛.....................................................................................................................................................................4
5.3融.................................................................................................5
5.4煽古計(jì)................................................................................5
5.5健康則試..............................................................................5
5.6DRNG.................................................................................................................................................................6
6安全分級(jí)方法.............................................................................7
6.1觸.................................................................................................7
6.2GB/T37092"題一級(jí)..............................................................8
6.3GB/T37092^...........................................................................................................................8
7實(shí)現(xiàn)......................................................................................8
7.1通用.................................................................................................8
7.2關(guān)鍵總...................................................................8
7.3嫡源獨(dú)占性...........................................................................8
附錄A(資料性)烯源和燧池結(jié)構(gòu)示例......................................................9
附錄B(規(guī)范性)基于SM3算法的RNG設(shè)計(jì).................................................11
附錄C(資料性)燧估計(jì)方法................................................................16
附錄D(規(guī)范性)連續(xù)健康測試方法..........................................................20
附錄E(規(guī)范性)基于SM4算法的RNG設(shè)計(jì)..................................................23
參考文獻(xiàn)....................................................................................29
I
罪加/T0105—2021
_1.
刖百
本文件按照GB/T1.1—2020《標(biāo)準(zhǔn)化工作導(dǎo)則第1部分:標(biāo)準(zhǔn)化文件的結(jié)構(gòu)和起草規(guī)則》的規(guī)定
起草。
請注意本文件的某些內(nèi)容可能涉及專利。本文件的發(fā)布機(jī)構(gòu)不承擔(dān)識(shí)別專利的責(zé)任。
本文件由密碼行業(yè)標(biāo)準(zhǔn)化技術(shù)委員會(huì)提出并歸口。
本文件起草單位:中國科學(xué)院數(shù)據(jù)與通信保護(hù)研究教育中心、中國科學(xué)院軟件研究所、浙江大學(xué)、深
圳技術(shù)大學(xué)、深圳市紐創(chuàng)信安科技開發(fā)有限公司、成都衛(wèi)士通信息產(chǎn)業(yè)股份有限公司、中國科學(xué)技術(shù)大
學(xué)網(wǎng)絡(luò)空間安全學(xué)院、成都信息工程大學(xué)、中國金融認(rèn)證中心、北京宏思電子技術(shù)有限公司、北京智芯微
電子科技有限公司、智巡密碼(上海)檢測技術(shù)有限公司。
域熬彈人:砥、呂娜、畔、沈徽猷儂、嘛宇、弓腰五匏舞、郴?缸螂、霞、
辣、弓出、踴皮、堿、艇。
m
嘏M/T0105—2021
引言
隨機(jī)數(shù)的質(zhì)量直接影響到密鑰生成、數(shù)字簽名以及其他密碼算法和協(xié)議的實(shí)際安全性。隨著軟件
密碼模塊使用越來越廣泛,其中的隨機(jī)數(shù)發(fā)生器設(shè)計(jì)備受關(guān)注。
本文件為軟件隨機(jī)數(shù)發(fā)生器的設(shè)計(jì)提供了通用的基本模型,描述了其基本部件的設(shè)計(jì)指導(dǎo)和建議,
以指導(dǎo)軟件隨機(jī)數(shù)發(fā)生器的設(shè)計(jì)者、開發(fā)者和測試者。
IV
GM/T0105—2021
軟件隨機(jī)數(shù)發(fā)生器設(shè)計(jì)指南
1范圍
本文件給出了軟件隨機(jī)數(shù)發(fā)生器設(shè)計(jì)的基本模型、基本部件的設(shè)計(jì)指南以及安全分級(jí)方法,并在附
錄中給出了基于SM3算法和基于SM4算法的設(shè)計(jì)實(shí)例。
本文件適用于軟件隨機(jī)數(shù)發(fā)生器的設(shè)計(jì)、開發(fā)、檢測和評估。
2規(guī)范性引用文件
下列文件中的內(nèi)容通過文中的規(guī)范性引用而構(gòu)成本文件必不可少的條款。其中,注日期的引用文
件,僅該日期對應(yīng)的版本適用于本文件;不注日期的引用文件,其最新版本(包括所有的修改單)適用于
本文件o
GB/T15852.1信息技術(shù)安全技術(shù)消息鑒別碼第1部分:采用分組密碼的機(jī)制
GB/T17964信息安全技術(shù)分組密碼算法的工作模式
GB/T32905信息安全技術(shù)SM3密碼雜湊算法
GB/T32907信息安全技術(shù)SM4分組密碼算法
GB/T32915—2016信息安全技術(shù)二元序列隨機(jī)性檢測方法
GB/T37092—2018信息安全技術(shù)密碼模塊安全要求
GM/Z4001密碼術(shù)語
3術(shù)語和定義
和界定的以及下列術(shù)語和定義適用于本
GB/T32915—2016xGB/T37092—2018GM/Z4001
文件。
3.I
脩entropy
對一個(gè)封閉系統(tǒng)的無序性、隨機(jī)性或變化性等狀態(tài)的度量。
注:隨機(jī)變量金的帽是對通過觀測簿所獲得信息量的一個(gè)數(shù)學(xué)度量。
3,2
■entropysource
產(chǎn)生輸出的部件、設(shè)備或事件。當(dāng)該輸出以某種方法捕獲和處理時(shí),產(chǎn)生包含烯的比特串。
3,3
已酷麴試known-answertest
一種測試確定性機(jī)制的方法,即通過該機(jī)制處理給定的輸入,然后將所得到的輸出與已知值進(jìn)行
比較。
3.4
融entropypol
臨時(shí)保存椅的存儲(chǔ)區(qū)域。
1
GM/T0105—2021
最小埼minentropy
嫡的下界,是對確定樣本嫡最壞情況的估值。
注:如果抬最存值,使得凡需=物42-〃,/那么比特串翻:或更準(zhǔn)確地說,是形成此類隨機(jī)比特串的相應(yīng)的隨機(jī)變
量)的最小燧為Ko也就是說,煽至少包含此匕特的燧或隨機(jī)性。
3.6
WMrandomnumbergenerator;.
產(chǎn)生隨機(jī)二元序列的器件或程序。
[顆:GB/T32915-2016/2.2]
3.7
幗sed
用作隨機(jī)數(shù)發(fā)生器的輸入的比特串。
3.8
蠲譴resedfunction
一種特定的內(nèi)部狀態(tài)轉(zhuǎn)移函數(shù),該函數(shù)在提供新種子值的情況下更新內(nèi)部狀態(tài)。
3.9
關(guān)鍵安全參數(shù)criticalsecurityparameter
與安全相關(guān)的秘密信息,這些信息被泄露或被修改后會(huì)危及密碼模塊的安全性。
注:關(guān)鍵字全參數(shù)可以是明文形式的也可以是經(jīng)過加密的。
【顆:GB/T37092-2018,3.3]
3.10
確定性隨機(jī)數(shù)發(fā)生器deterministicrandomnumbergenerator;賺
一種隨機(jī)數(shù)生成器,通過將確定性算法應(yīng)用于適當(dāng)?shù)碾S機(jī)初始值(稱為"種子")產(chǎn)生隨機(jī)樣式的比
特序列O
3.11
瞬entropyrate
平均每比特?cái)?shù)據(jù)包含的燧的大小。
3.12,
cryptographicboundary
明確定義的邊線,該邊線建立了密碼模塊的物理和/或邏輯邊界,并包括了密碼模塊的所有硬件、軟
佛口/期曲箱的。
[顆:GB/T37092-2018/3.4]
3.13
軟件隨機(jī)數(shù)發(fā)生器softwarebasedRNG
軟件密碼模塊(或混合密碼模塊的軟件部件)中的隨機(jī)數(shù)發(fā)生器部件,可以單獨(dú)作為軟件密碼模塊,
也可以作為軟件密碼模塊(或混合密碼模塊的軟件部件)的一部分。
3.14
?cryptographicmodule
實(shí)現(xiàn)了安全功能的硬件、軟件和/或固件的集合,并且被包含在密碼邊界內(nèi)。
注:密碼模塊根據(jù)其組成,可分為硬件密碼模塊、固件密碼模塊、軟件密碼模塊以及混合密碼模塊。
[顆:GB/T37092-2018/3.5]
3.15
公開安全參數(shù)publicsecurityparameter
與安全性相關(guān)的公開信息,一旦被修改,會(huì)威脅到密碼模塊安全。
2
GM/T0105—2021
注:例如,公鑰、公鑰證書、自簽名證書、信任錨、與計(jì)數(shù)器和內(nèi)部保持日期和時(shí)間相關(guān)聯(lián)的一次性口令。公開安
全參數(shù)如果不能被修改或者修改后能夠被密碼模塊發(fā)現(xiàn),此時(shí)可以認(rèn)為該公開安全參數(shù)是受保護(hù)的。
[顆:GB/T37092-2018,3.14]
3.16
敏感安全參數(shù)sensitivesecurityparameter
包括關(guān)鍵安全參數(shù)和公開安全參數(shù)。
[顆:GB/T37092-2018,3.17]
3.17
1?鵬直resedcounter
一種內(nèi)部狀態(tài)計(jì)數(shù)器變量,表明自初始化或重播種期間獲得新的嫡輸入以來,請求隨機(jī)數(shù)生成的
次數(shù)。
3.18
上次重播種時(shí)間值timevalueoflastresed
軟件隨機(jī)數(shù)發(fā)生器上一次重播種的時(shí)間值,單位為秒。
3.19
■wtm器閾直resedcounterthreshold
在軟件隨機(jī)數(shù)發(fā)生器重播種前,能夠產(chǎn)生隨機(jī)數(shù)的最大請求次數(shù)。
3.20
WM醯resedtimethreshold
距離軟件隨機(jī)數(shù)發(fā)生器上一次重播種的最大時(shí)間間隔,單位為秒。
4縮略語
下列縮略語適用于本文件。
CPU:中蝴理器(centralprocessingunit)
RNG:隨機(jī)數(shù)發(fā)生器(Random順向Generator
SRNG:軟件隨機(jī)數(shù)發(fā)生器(soft^aeba$ed啊
DRNG:確定性隨機(jī)數(shù)發(fā)生器(DeterministicRandomNumberGenerator)
iv:初始向量(initialvector
5軟件隨機(jī)數(shù)發(fā)生器設(shè)計(jì)
5.1
本文件給出的軟件隨機(jī)數(shù)發(fā)生器基本模型見圖1,主要包含系統(tǒng)嫡源、牖估計(jì)、嫡池、DRNG和健康
測試等部分。其中,DRNG主要由內(nèi)部狀態(tài)、初始化函數(shù)、種函數(shù)、輸出函數(shù)、自測試等基本部件
組成。
3
嘏M/T0105—2021
健
康
費(fèi)
M
初始化的敢垂播神的數(shù)
自
測
試
物出函數(shù)
策諛指示機(jī)敏
圖1軟件隨機(jī)數(shù)發(fā)生器的基本模型
軟件隨機(jī)數(shù)發(fā)生器收集系統(tǒng)精源的隨機(jī)性作為其隨機(jī)性的來源(隨機(jī)性的來源也可以來自系統(tǒng)或
硬件隨機(jī)數(shù)發(fā)生器)。系統(tǒng)精源的數(shù)據(jù)進(jìn)入燧池進(jìn)行精累積,等待收集足夠的烯源數(shù)據(jù),在對精池中的
數(shù)據(jù)經(jīng)擴(kuò)展函數(shù)壓縮后,與系統(tǒng)或硬件隨機(jī)數(shù)發(fā)生器的輸出數(shù)據(jù)(可選)經(jīng)數(shù)據(jù)拼接后一同作為DRNG
的輸入產(chǎn)生種子。DRNG經(jīng)過初始化,開始內(nèi)部狀態(tài)的迭代以及必要的重播種操作,以產(chǎn)生所需數(shù)量
的隨機(jī)數(shù)。除精輸入外,DRNG輸入還包括nonee(必選)、個(gè)性化字符串(可選)和額夕解入(可選)。
為保證軟件隨機(jī)數(shù)發(fā)生器的安全性,需要對嫡源的燧進(jìn)行嫡估計(jì),以及對嫡源的狀態(tài)進(jìn)行必要的健
康測試。對于一個(gè)關(guān)鍵安全參數(shù),其收集的最小嫡值應(yīng)符合GB/T37092—2018的要求,本文件以256
比特的最小嫡值為基準(zhǔn)來給出軟件隨機(jī)數(shù)發(fā)生器的參數(shù)信息。
5.2播源
燧源是軟件隨機(jī)數(shù)發(fā)生器隨機(jī)性的來源。由于軟件密碼模塊運(yùn)行在通用操作系統(tǒng)上,因此其隨機(jī)
性的來源也一般依賴操作系統(tǒng)提供,包括系統(tǒng)時(shí)間、特定的系統(tǒng)中斷事件、磁盤狀態(tài)、人機(jī)交互輸入事件
(如按鍵、鼠標(biāo)移動(dòng)等動(dòng)作)等。為了保障軟件隨機(jī)數(shù)發(fā)生器的可靠性,建議隨機(jī)性來源不少于3種。
A.2以操作系統(tǒng)中的中斷事件為例,給出如何從中斷事件中提取隨機(jī)性。
此外,在特定的軟硬件平臺(tái)上,燧源也可以是平臺(tái)已有的隨機(jī)數(shù)發(fā)生器,包括硬件隨機(jī)數(shù)發(fā)生器和
系統(tǒng)隨機(jī)數(shù)發(fā)生器(見圖1),如基于CPU抖動(dòng)的隨機(jī)數(shù)發(fā)生器、CPU內(nèi)置的硬件隨機(jī)數(shù)發(fā)生器、外部
硬件隨機(jī)數(shù)發(fā)生器部件等。軟件隨機(jī)數(shù)發(fā)生器也可以用這些特定軟硬件平臺(tái)上的燧源作為嫡輸入來增
大隨機(jī)性,但仍然需要保證在沒有這些嫡源時(shí),輸入的帽仍然是充足的。不同的是,為了考慮效率和安
全性,圖1中的系統(tǒng)烯源的輸出數(shù)據(jù)需要在牖池中累積并經(jīng)過擴(kuò)展函數(shù)輸出后再作為DRNG的燧
輸入O
4
假M(fèi)/T0105—2021
5.3勵(lì)
燧池作為軟件隨機(jī)數(shù)發(fā)生器中保證睛采集的重要部件,在空閑時(shí),RNG可以把崎源輸出收集起來;
當(dāng)需要時(shí),可以及時(shí)從燧池中讀取所需的數(shù)據(jù),從而減少產(chǎn)生隨機(jī)數(shù)的延遲。此外,為增加精源數(shù)據(jù)混
淆、節(jié)省燧池空間,精池內(nèi)可采用迭代壓縮函數(shù)來增加燧率,如通過循環(huán)移位寄存器實(shí)現(xiàn)。如果熔池太
小會(huì)導(dǎo)致累積的精不足,如果燧池太大則浪費(fèi)內(nèi)存空間。出于以上考慮,嫡池大小應(yīng)大于或等于512字
節(jié),但不宜超過4096字節(jié)。A.3給出了一種基于循環(huán)移位寄存器的牖池結(jié)構(gòu)示例。
在收到DRNG初始化或重播種請求時(shí),在嫡池中的嫡值大于256比特后(根據(jù)5.4的燧估計(jì)結(jié)
果),所有燃池中的數(shù)據(jù)進(jìn)行壓縮后與圖1中的系統(tǒng)RNG(可選)或硬件RNG(可選)的輸出數(shù)據(jù)經(jīng)數(shù)據(jù)
拼接后一同作為DRNG的輸入。同時(shí),擴(kuò)展函數(shù)壓縮后的結(jié)果也反饋回燧池中,以保證后向安全性。
為保證燧池中的嫡率夠阜大限度的保持,可使用密鑰擴(kuò)展函數(shù)作為壓縮算法,僅使用密碼雜;塞去無法
保證j詢結(jié)果是滿熠(fiiILentropy)的。一種基于SM3密碼雜湊算法的密鑰擴(kuò)展函數(shù)(sM3_df)按附錄
B,輸出長度可設(shè)置為440比特。有關(guān)SM3密碼雜湊算法的計(jì)算方法按GB/T32905。
5.4斕古計(jì)
燧估計(jì)是保證隨機(jī)數(shù)發(fā)生器安全性的關(guān)鍵。系統(tǒng)精源一般屬于非物理嫡源,因此難以建立一個(gè)可
靠的數(shù)學(xué)模型對精源的隨機(jī)行為進(jìn)行刻畫,也難以進(jìn)一步通過理論建模的方法對燧源的楠進(jìn)行估計(jì)。
本文件給出了一種離線統(tǒng)計(jì)烯估計(jì)的方法,對系統(tǒng)燧源的最小燧進(jìn)行估計(jì)(見附錄C),其中包含了一種
較為通用的基于馬爾可夫預(yù)測器的燧估計(jì)器,更多的精估計(jì)器可以參考文獻(xiàn)此外,對使用外部
隨機(jī)數(shù)發(fā)生器作為燧輸入的情況(如系統(tǒng)RNG或硬件RNG),統(tǒng)計(jì)嫡估計(jì)也適用于對這些隨機(jī)數(shù)發(fā)生
器輸出的燧估計(jì)。
5.5式
健康測試用于監(jiān)測烯源的狀態(tài),以保證隨機(jī)數(shù)發(fā)生器運(yùn)行時(shí)的安全。健康測試包括上電健康測試、
連續(xù)健康測試和按需健康測試三種。
3)上電健康測試:
?在軟件隨機(jī)數(shù)發(fā)生器或其所在的密碼模塊上電或重啟,以及首次使用精源之前執(zhí)行;
.上電健康測試可以確保精源在正常運(yùn)行條件下使用前可以按預(yù)期工作,并且自上次上電
健康測試以來沒有發(fā)生任何故障;
?上電健康測試需要對至少1024個(gè)連續(xù)樣本執(zhí)行連續(xù)健康測試;
.在上電健康測試期間,燧源的輸出不能用于其他操作;
?在測試完成后且沒有發(fā)現(xiàn)任何故障或錯(cuò)誤,那么可以考慮使用測試期間的嫡源的輸出。
b)連續(xù)健康測試:
?連續(xù)健康測試關(guān)注嫡源的行為,在牖源工作時(shí),持續(xù)地檢測從嫡源得到的所有數(shù)字化的樣
本,目的是當(dāng)燧源輸出時(shí)能夠及時(shí)發(fā)現(xiàn)燧源潛在的多種故障,執(zhí)行該測試時(shí)無需禁止嫡源
的輸出;
?在精源正常運(yùn)行時(shí),該測試的誤警率應(yīng)非常低,在許多系統(tǒng)中,一個(gè)合理的誤警率策略可
以保證即便在很長的使用時(shí)間內(nèi)也幾乎不會(huì)發(fā)生故障報(bào)警;
.連續(xù)健康測試會(huì)受到資源限制,這個(gè)限制將影響檢測到燧源故障的能力,因此,連續(xù)健康
測試通常被設(shè)計(jì)成檢測嚴(yán)重故障。
C)按需健康測試:
?可以在任何時(shí)候被執(zhí)行;
.在按需健康測試的過程中,從嫡源收集的數(shù)據(jù)在測試完成前不應(yīng)使用,可以隨時(shí)丟棄,也
5
嘏M/轍0105—2021
可以在測試完成后且未發(fā)生任何錯(cuò)誤的情況下使用。
上述三種健康測試方法中,上電健康測試和連續(xù)健康測試是應(yīng)做的。附錄D給出了連續(xù)健康測試
方法,包含2個(gè)測試算法:重復(fù)計(jì)數(shù)測試和自適應(yīng)比例測試。除了附錄D中的兩種算法外,設(shè)計(jì)者也可
以遵循如下兩個(gè)要求,根據(jù)具體設(shè)計(jì)提出其他的連續(xù)健康測試方法。
3)如果一個(gè)樣本在嫡源采樣序列中連續(xù)出現(xiàn)超過I次(奉為通過附錄c估計(jì)的樣本最小
燧),那么連續(xù)健康測試方法應(yīng)至少以99%的概率檢測到該值;
b)令2.拿,如果燧源的行為發(fā)生了變化,使得觀察到特定樣本值的概率至少增繆戶?=
2Tl2,那么當(dāng)檢查來自該燧源的5萬個(gè)連續(xù)樣本時(shí),連續(xù)健康測試方法應(yīng)至少以50%的概率
檢測到這種變化。
5.6DRN嘏
5.6.1觸
本文件給出的DRNG架構(gòu)見圖1,對外接口包括初始化函數(shù)、重播種函數(shù)、輸出函數(shù)。DRNG還在
內(nèi)部維持了內(nèi)部狀態(tài),同時(shí)利用自測試模塊對自身進(jìn)行測試,確保DRNG在運(yùn)行過程中能夠及時(shí)檢測
出故障。本文件給出了兩種DRNG的設(shè)計(jì)實(shí)例,包括基于SM3算法(見GB/T32905)的DRNG和基
于SM4算法(見GB/T32907)的DRNG,分別見附錄B和附錄E。根據(jù)使用的密碼算法不同,其內(nèi)部狀
態(tài)組成、函數(shù)計(jì)算過程以及參數(shù)要求等不同,下面給出了DRNG中的內(nèi)部狀態(tài)以及相關(guān)函數(shù)的總體設(shè)
計(jì)說明,關(guān)于具體參數(shù)要求、賦值要求等按附錄B和附錄E。
5.6.2內(nèi)部燃
DRNG的內(nèi)部狀態(tài)可視為軟件隨機(jī)數(shù)發(fā)生器的內(nèi)部(臨時(shí))存儲(chǔ),由DRNG所使用或執(zhí)行的所有參
數(shù)、變量以及其他存儲(chǔ)的值組成。DRNG的內(nèi)部狀態(tài)包括:
8)敏感狀態(tài)信息:DRNG的燧輸入數(shù)據(jù)直接決定了DRNG的敏感狀態(tài)信息的初始值,DRNG根
據(jù)敏感狀態(tài)信息借助偽隨機(jī)數(shù)生成算法直接產(chǎn)生隨機(jī)數(shù),并在每次生成隨機(jī)數(shù)時(shí)按照一定規(guī)
則不斷迭代更新敏感狀態(tài)信息,由于敏感內(nèi)部狀態(tài)直接決定了當(dāng)前以及下一次重播種之前的
所有隨機(jī)數(shù),它應(yīng)看作GB/T37092—2018中的關(guān)鍵安全參數(shù)受到保護(hù),不能被非授權(quán)地訪
風(fēng)跳;?x修^蹴;
b)管理狀態(tài)信息:即與DRNG孽行相關(guān)的管理狀態(tài)信息,包括重播種計(jì)數(shù)器值、上次重播種時(shí)間
值,管理狀態(tài)信息應(yīng)看作GB/T37092—2018中的公開安全參數(shù)受到保護(hù),不能被非授權(quán)地修
改和替換;
C)常量值:重播種計(jì)數(shù)器閾值和重播種時(shí)間閾值,該常量值與安全等級(jí)有關(guān),不同安全等級(jí)的
SRNG,同S種計(jì)數(shù)器閾值和重播種時(shí)間閾值有所不同(見6.2和6.3)o
5.6.3豳援?dāng)?shù)
宋砥nonce木的囹nonce硼圄殿
據(jù)之外的額外安全保障,在軟件RNG的嫡源存在故障時(shí)提供額外的安全防護(hù),降低DRNG在多次實(shí)例
化過程中可能存在的風(fēng)險(xiǎn)。例如,一個(gè)存在故障的系統(tǒng)每次開機(jī)后在崎池中總是累積相同的燧源數(shù)據(jù),
止觸斛解nonce值,另陷每陶錠?圈朦,nonceBMWB-
緩解這一問題。個(gè)性化字符串的使用,可以降低不同平臺(tái)上同一個(gè)軟件RNG機(jī)制產(chǎn)生隨機(jī)數(shù)過程中
的安全風(fēng)險(xiǎn)。例如,存在故障的多個(gè)系統(tǒng)可能在精池中累積了相同的崎源數(shù)據(jù),如果沒有使用個(gè)性化字
符串,它們將會(huì)產(chǎn)生相同的隨機(jī)數(shù)。
DRNG自身的安全性應(yīng)不依賴于noncem性化字符串的保密性。對nonce和個(gè)性化字符串的設(shè)
6
嘏M/轍0105—2021
計(jì)建議如下。
9)nonee(必則:
?nonce應(yīng)至少具有128匕綢嫡,或者獺重復(fù)瞬不大于2心;
?nonce可以是隨機(jī)值、時(shí)間戳、單調(diào)遞增的計(jì)數(shù)器值^者它們的組合。
b)個(gè)性化字符串(可選輸入):
?如果使用個(gè)性化字符串,則個(gè)性化字符串與嫡源數(shù)據(jù)以及nonce一起生成DRNG的初始
種子;
?對于相同DRNG機(jī)制在不同平臺(tái)的各個(gè)實(shí)例,個(gè)性化字符串需要具有唯一性;
,個(gè)性化字符串可包含的內(nèi)容包括但不限于:設(shè)備序列號(hào)、公鑰信息、用戶標(biāo)識(shí)、時(shí)間戳、網(wǎng)
絡(luò)地址、應(yīng)用程序標(biāo)識(shí)符、協(xié)議版本標(biāo)識(shí)符。
5.6.4as腌數(shù)
重播種函數(shù)利用燧源數(shù)據(jù)、額外輸入(可選)對內(nèi)部狀態(tài)進(jìn)行更新。
額外輸入可以是秘密的,也可以是公開的,但DRNG自身的安全性應(yīng)不依賴于額外輸入的保密性。
額外輸入可以為DRNG提供更多精,如果額外輸入是非公開的并且有充足的燧,可以為DRNG提供更
多的安全保證。
除了可以在調(diào)用重播種函數(shù)時(shí)注入額外輸入外,也可以在每次調(diào)用輸出函數(shù)時(shí)注入額外輸入。
5.6.5輸出通
輸出函數(shù)利用DRNG的內(nèi)部狀態(tài)和額外輸入(可選)通過特定的密碼計(jì)算產(chǎn)生隨機(jī)數(shù)據(jù),同時(shí)更新
DRNG的內(nèi)部狀態(tài)??蛇x的額外輸入的要求與重播種函數(shù)中的額外輸入要求一致。
本文件建議輸出函數(shù)每次調(diào)用只能輸出一組隨機(jī)數(shù)據(jù),其中基于SM3算法的DRNG輸出一組隨
機(jī)數(shù)據(jù)的長度為256比特,基于SM4算法的DRNG輸出一組隨機(jī)數(shù)據(jù)的長度為128比特。
5.6.6DRN嘏自踴
類似于GB/T37092—2018中密碼模塊的自測試,DRNG也需要執(zhí)行自測試以確保設(shè)計(jì)的DRNG
能夠持續(xù)按照所設(shè)計(jì)和實(shí)現(xiàn)的方式正確運(yùn)行。
本文件給出的DRNG采用已知答案測試,即DRNG實(shí)例利用已知的輸入調(diào)用初始化函數(shù)、重播種
函數(shù)和輸出函數(shù),并確認(rèn)輸出與預(yù)期答案是否一致,如果一致,則通過自測試;否則DRNG需要進(jìn)入錯(cuò)
誤狀態(tài),并返回錯(cuò)誤指示信號(hào)。
對DRNG的自測試可以作為其所在軟件密碼模塊自測試的一部分,也可以單獨(dú)執(zhí)行。但無論以何
種形式進(jìn)行,對DRNG的自測試需要滿足與所在軟件密碼模塊的安全等級(jí)相對應(yīng)的自測試要求(按
GB/T37092—2018中7.10)。矽I行自測試時(shí),應(yīng)禁止從DRNG邊界內(nèi)輸出數(shù)據(jù);在DRNG正常運(yùn)行
期間,已知答案測試的結(jié)果不能作為隨機(jī)數(shù)據(jù)輸出。
6安全分級(jí)方法
6.1觸
由于不同級(jí)別的密碼模塊的安全防護(hù)要求不相同,本文件針對DRNG重播種機(jī)制,從種子的使用
時(shí)長和使用次數(shù)兩方面考慮,對滿足GB/T37092—2018安全等級(jí)一級(jí)和安全等級(jí)二級(jí)密碼模塊中的
軟件隨機(jī)數(shù)發(fā)生器給出分級(jí)方法。
7
嘏M/轍0105—2021
6.2嘏B/撤37092安全等級(jí)一級(jí)
在GB/T37092—2018安全等級(jí)一級(jí)的密碼模塊中,對于DRNG每一組新輸入的熔(通過初始化
或種子更新獲得),當(dāng)以下任意條件滿足時(shí),需要對DRNG執(zhí)行重播種操作:
3)距離上一次DRNG重播種時(shí)間超過600S(即,重播種時(shí)間閾值為600S);
b)輸出函數(shù)已被調(diào)用22。次(即,重播種計(jì)數(shù)器閾值為22。)。
6.34期/擻37092安鈣RZ級(jí)
在GB/T37092—2018安全等級(jí)二級(jí)的密碼模塊中,對于DRNG每一組新輸入的燧(通過初始化
或種子更新獲得),當(dāng)以下任意條件滿足時(shí),需要對DRNG執(zhí)行重播種操作:
3)距離上一次DRNG重播種時(shí)間超過了60s(即,重播種時(shí)間閾值為60S);
b)輸出函數(shù)已被調(diào)用2次(即,重播種計(jì)數(shù)器閾值為2i°)。
7實(shí)現(xiàn)
7.1M
軟件隨機(jī)數(shù)發(fā)生器既可以是單獨(dú)的軟件密碼模塊,也可以作為軟件密碼模塊(或混合密碼模塊的軟
件部件)的一部分,在實(shí)現(xiàn)時(shí)應(yīng)符合GB/T37092—2018的所有適用指標(biāo)。
7.2瘦^^^54
軟件隨機(jī)數(shù)發(fā)生器相關(guān)部件的關(guān)鍵安全參數(shù)見表1,包括嫡源、燧池和DRNG所涉及的關(guān)鍵安全
參數(shù)。
表1軟件隨機(jī)數(shù)發(fā)生器的關(guān)鍵安全參數(shù)
軟件隨機(jī)數(shù)發(fā)生器部件關(guān)鍵安全參數(shù)
施源燧源產(chǎn)生的燧
嫡池循環(huán)移位寄存器的狀態(tài)
內(nèi)部狀態(tài)中的敏感狀態(tài)信息
DRNG燧輸入
輸出的隨機(jī)數(shù)
7.3嫡凰蟲占
精源同一時(shí)刻只能被一個(gè)軟件隨機(jī)數(shù)發(fā)生器獨(dú)占訪問,以保證軟件隨機(jī)數(shù)發(fā)生器獨(dú)占過程中所讀
取的嫡源數(shù)據(jù)無法被其他實(shí)體(例如,同一運(yùn)行環(huán)境下的其他進(jìn)程)獲取,可以通過如下機(jī)制來保證燧源
獨(dú)占性:
一軟件隨機(jī)數(shù)發(fā)生器本身的機(jī)制,例如,煙源本身是軟件隨機(jī)數(shù)發(fā)生器的一部分,軟件隨機(jī)數(shù)發(fā)
生器自身的機(jī)制保證嫡源訪問的獨(dú)占性;
一睛源本身的機(jī)制,例如,燧源同一時(shí)刻只能為一個(gè)實(shí)例提供嫡,當(dāng)?shù)赵幢徽加脮r(shí),將拒絕其他實(shí)
體的訪問;
一運(yùn)行環(huán)境的安全機(jī)制,例如,操作系統(tǒng)通過互斥鎖的機(jī)制,保證只有一個(gè)實(shí)體可以訪問該崎源。
8
嘏M/轍0105—2021
附錄A
(資料性)
烯源和嫡池結(jié)構(gòu)示例
A.1觸
本附錄給出了一種基于操作系統(tǒng)中斷事件的楠源示例,以及一種基于循環(huán)移位寄存器實(shí)現(xiàn)燧池更
新的方案,供軟件隨機(jī)數(shù)發(fā)生器的設(shè)計(jì)者作為參考。
A.2燧麻例
這里選擇中斷事件發(fā)生的時(shí)間作為燧源,可以采用如下兩種模式對中斷事件發(fā)生時(shí)間的隨機(jī)性進(jìn)
行數(shù)字化。
—獲取中斷事件發(fā)生時(shí)的系統(tǒng)時(shí)間作為嫡源數(shù)據(jù):任何一個(gè)中斷事件的發(fā)生都會(huì)促使操作系統(tǒng)
生成兩個(gè)字符串,其中第一個(gè)字符串表示事件發(fā)生的時(shí)間(自從系統(tǒng)啟動(dòng)以來所經(jīng)過的毫秒
數(shù)),第二個(gè)字符串表示所發(fā)生事件的類型,可以將第一個(gè)字符串或同時(shí)將這兩個(gè)字符串輸入
燧池作為隨機(jī)數(shù)據(jù),在計(jì)算中斷事件燧值時(shí),只考慮中斷事件的發(fā)生時(shí)間,不關(guān)注事件的類型。
—通過CPU獲取中斷事件發(fā)生時(shí)的高精度時(shí)間值作為嫡源數(shù)據(jù):現(xiàn)代CPU-般會(huì)有高精度計(jì)
時(shí)部件,該部件以64位無符號(hào)整型數(shù)的格式,記錄了自CPU上電以來所經(jīng)過的時(shí)鐘周期數(shù)。
由于目前的CPU主頻都非常高,因此這個(gè)部件可以達(dá)到納秒級(jí)的計(jì)時(shí)精度,根據(jù)燧提取的方
式不同,有時(shí)可能僅處理高精度時(shí)間值的最低有效位而丟棄最高有效位,因?yàn)樽畹陀行皇强?/p>
速變化的位。
A.3燔也示例
一種基于循環(huán)移位寄存器實(shí)現(xiàn)楠池更新的方案如下:
隨機(jī)數(shù)發(fā)生器的精池更新基于一個(gè)本原多項(xiàng)式,本原多項(xiàng)式的階數(shù)為埔池的大?。ㄒ宰譃閱挝唬?。
假設(shè)燧池大小為128個(gè)字(512字節(jié)),其本原多項(xiàng)式為128階,即^+肥。3+疲6+皴1+皴5+數(shù)+1
嫡池更新的過程可以看作使用循環(huán)移位寄存器來加密輸△的嫡源數(shù)據(jù),嫡池結(jié)構(gòu)見圖A.1,其中,pOOl
代表燧池,J為燧池中當(dāng)前位置的索引(本示例力)為0-127)o假設(shè)g為被添加到燧池中的新的崎數(shù)據(jù)
(大小為1個(gè)字),則汨燧池的更新操作如下.
:emp.g+poolij]
fem中l(wèi)oo(+1)nod128]
temp.temp中POO+25)rnoc128]
:em)=tem)中POO+5i)rnoc128]
:em洪m)中POO+76)mod128]
tem)=temp中POOi+io3)mod128]
>>3)中'retemp&T]
期table為流耶)8伯繳組,示獨(dú)嚇:
tabe(o]=oXo
3)6[1]=OX320c8
‘a(chǎn)36[2]=OX76CC4190
labe(3]=oX4db26i58
9
嘏M/轍0105—2021
table[4]=oxecb8832o
able昨oxcLd6a3曾
:abe6)=oX9b64c2bo
tabep]=0X80086278
Q0
圖A.1一種基于循環(huán)移位寄存器的熔池結(jié)構(gòu)示例
10
罪加/T0105—2021
附錄B
(規(guī)范性)
基于釐M3算法的RN嘏設(shè)計(jì)
B.1參數(shù)娥說明
本附錄給出了基于SM3算法的DRNG設(shè)計(jì)實(shí)例的偽代碼,該發(fā)生器的實(shí)例為SM3_RNG,包括內(nèi)
部狀態(tài)、初始化函數(shù)、重播種函數(shù)和輸出函數(shù)等。SM3_RNG使用的符號(hào)及參數(shù)含義如下:
||'魏酬妾
V:比特串V,辨機(jī)數(shù)發(fā)生器的內(nèi)部狀態(tài)變量,在每次調(diào)用DRNG時(shí)更新值
c:那]seedlen匕褊的常量c,為隨機(jī)數(shù)發(fā)生器的內(nèi)部狀燃量,在初始俗□■閽鈍寸更新值
seedlen:種和雌i
reseecLcounter:重翻阻斷直,昌而榔?牖柳§位,棚哥脂儂闔翻頻我事斤
的燧輸入以來I請求隨年數(shù)生成的次數(shù)
reseedjntervaLin.counter:s?嘏翻!,在軟件隨機(jī)數(shù)發(fā)生器重播種前,能夠產(chǎn)生隨機(jī)數(shù)的
最大清求次數(shù)
lastreseed_timIC.:BS種時(shí)間值,指DRNG上一次重播種時(shí)間值,單位為秒
reseecLintervaul_rin.time:■?時(shí)間圜I,距離上一次DRNG重播種的最大時(shí)間間隔,單位為秒
entropvjnput:粉播,
personaiizatipn.stnng:做娜
ac.ditio.nalinput:可避嬲陶人的端串
adpitonaljnputJength:可選的額外輸入的比特串長度
min.entropy:則
min.entrdpvmput1.最小的輜入長度
max_entropyj叩ut1,孰蹦跳搬
nonce:
outien:輸出函數(shù)輸出的比特長度
seeQ:將&.?
seedijiatenal:府洲
workingstate:當(dāng)前腳態(tài)
newwking.state:醐腳椅
status:
temp:f雌t
inputstrinq:SM3派生函數(shù)(SM3_dt)的輸入字符串
numbeLof_pLts_to.return:S咐/生函數(shù)(SM3_df)返回的比特長度
requestecLbits:S性派生函數(shù)GM3_dt)返回的㈱串,
requested叱i.mbetofbits:輸出函數(shù)時(shí)_RNG_Generate)返回的隨機(jī)比特串的長度
refurnedbits:每調(diào)用i次輸出函數(shù)(sM3_RNG_Generate),返回的隨機(jī)比特串
表B.1、表B.2分別列出了SM3_RNG使用的參數(shù)要求和函數(shù)說明。
11
嘏M/T0105—2021
表B.1理M3_RN嘏使用的參數(shù)要求
參數(shù)名稱參數(shù)類型取值要求
V比特串seedlen
C比特串wiseeden
nutlpn整型256比特
中時(shí)即整型440比特
安全攀5-級(jí):600S
ervaLin.time整型
安全等級(jí)3:60S
一級(jí)不
整型:2
ervaLin.counter4:210
lastreseedtime整型取值為以秒為單位的時(shí)間值
加勃,每躺一;頻膽數(shù)自勃
整型1n,reseedJri-
reseed.counterterval.in.counter
逅少具有匕娥其長翻圍為國打,單位
entropyjnput比特串entropyjnput2567z2
為比特
min.entropy整型256比特
min.entroDv.inDutlenath整型256比特
max.entropv.inputlenqth整型23s比特
nonce具有128匕團(tuán),nonce可
nonce——以是隨機(jī)值、時(shí)間戳、單調(diào)遞增的計(jì)數(shù)器值或者它們的組合,長度范圍
為[128,2“)
35
additionaljnput比特串長度不大于2比特
additionaljnoutlenoth整型不大于2"比特
Dersonalization.strinq比特串長度不大于235比特
reauested.number.of.bits整型不大于256比特
numberofbitstoreturn整型叫seeden
表B.2釐M3_RN嘏使用的函數(shù)說明
函數(shù)名稱描述
leftmostN.a)比特串v從左邊起的3??比特
etentropy(min.entropy,從烯源獲取一串比特的函數(shù),要求返回的比特串
c(entropyjnput,軌有min.entropy麒,繼
min.entropy,input.lengtn,
加mitentropy.inputlengtn,,一
max.entropyjnputlengthi
max.entropyjnputlengtn㈱"
SM3(a)使用SM3對數(shù)據(jù)進(jìn)行雜湊運(yùn)算
SM3派年函數(shù)"對輸入字符串進(jìn)行雜湊運(yùn)算,返回長度
sMidfiinputstring,number.ofbits.to.return)為numbe〔ofbits_toietum的㈱串
12
罪加/T0105—2021
表B.2建M3_RN嘏使用的函數(shù)說明(續(xù))
函數(shù)名稱描述
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園保健知識(shí)培訓(xùn)課件
- 金昌電梯裝修施工方案
- 干部法律知識(shí)培訓(xùn)課件
- 水塔工程施工方案
- 兒童租賃門店合同范例
- 個(gè)人勞務(wù)派遣工合同范例
- 個(gè)人田地出租合同范例
- 人工代加工合同范例
- 品牌引導(dǎo)消費(fèi)者行為的技巧計(jì)劃
- 秘書工作任務(wù)安排計(jì)劃表
- 電影院管理與運(yùn)營服務(wù)流程手冊
- 8.2 二氧化碳的性質(zhì)和用途 同步練習(xí)
- GB/T 44536-2024CVD陶瓷涂層熱膨脹系數(shù)和殘余應(yīng)力試驗(yàn)方法
- 現(xiàn)代家政導(dǎo)論-課件 6.1.1認(rèn)識(shí)道德與職業(yè)道德
- 北京市東城區(qū)2022-2023學(xué)年高三上學(xué)期期末考試地理試卷 含答案
- 深圳益電通變頻器說明書TD90
- 人教版初中八年級(jí)物理上冊課件-第1章-機(jī)械運(yùn)動(dòng)
- 《中小型無人駕駛航空器垂直起降場技術(shù)要求》編制說明
- 國有企業(yè)內(nèi)部控制的問題與改進(jìn)措施
- 企業(yè)員工健康管理與關(guān)懷計(jì)劃實(shí)施方案
- 爭做“四有好老師”-當(dāng)好“四個(gè)引路人”
評論
0/150
提交評論