S算法結(jié)合確定生成函數(shù);
[0056]S303:根據(jù)所述的生成函數(shù)、密鑰、初始向量以及種子輸出偽隨機(jī)數(shù)。
[0057]S304:根據(jù)輸出的偽隨機(jī)數(shù)動(dòng)態(tài)調(diào)節(jié)所述加密函數(shù)的調(diào)用方式。
[0058]在該實(shí)施方式三中,加密函數(shù)是動(dòng)態(tài)調(diào)整的。動(dòng)態(tài)選擇加密函數(shù)對(duì)平臺(tái)的計(jì)算能力要求較高,如果要一次性得到大量統(tǒng)計(jì)屬性較好的隨機(jī)數(shù),則可以根據(jù)已生成數(shù)據(jù)他統(tǒng)計(jì)特性,動(dòng)態(tài)選擇當(dāng)前生成函數(shù)中加密函數(shù)的調(diào)用方式。
[0059]如上所述,即為本發(fā)明提供的一種生成偽隨機(jī)數(shù)的方法,針對(duì)現(xiàn)有技術(shù)中原有的設(shè)計(jì)方案相對(duì)單一的問(wèn)題,提供了一種新的設(shè)計(jì)方案,應(yīng)用國(guó)密SM4算法與3DES算法結(jié)合確定生成函數(shù)進(jìn)而輸出偽隨機(jī)數(shù)。由于用到國(guó)密SM4算法以及3DES算法,兩種算法結(jié)合,因此增加了安全性,且在優(yōu)選實(shí)施方式中,根據(jù)平臺(tái)的限制,SM4算法可與3DES算法自由切換,調(diào)用一次或多次,選擇空間更大,由于用到的兩種加密方式在實(shí)際應(yīng)用中較為普遍,應(yīng)用平臺(tái)實(shí)現(xiàn)起來(lái)比較方便。
[0060]由國(guó)密SM4算法和3DES算法的原理,本發(fā)明還提出了一種偽隨機(jī)數(shù)發(fā)生器,如圖7所示,在實(shí)施方式一中,該偽隨機(jī)數(shù)發(fā)生器具體包括:
[0061]獲取模塊101,用于獲取預(yù)先設(shè)定的密鑰、初始向量、種子以及加密函數(shù),所述的加密函數(shù)調(diào)用SM4算法以及3DES算法;
[0062]生成函數(shù)確定模塊102,所述SM4算法與3DES算法結(jié)合確定生成函數(shù)。在具體的實(shí)施方式中,所述的加密函數(shù)同時(shí)包括SM4算法和3DES算法,兩種算法被調(diào)用一次或多次。所述的生成函數(shù)包括所述加密函數(shù)以及代數(shù)運(yùn)算。
[0063]偽隨機(jī)數(shù)輸出模塊103,用于根據(jù)所述的生成函數(shù)、密鑰、初始向量以及種子輸出偽隨機(jī)數(shù)。
[0064]上述偽隨機(jī)數(shù)發(fā)生器利用兩種算法元素的長(zhǎng)度關(guān)系,可以變換或改進(jìn)生成函數(shù):SM4算法密鑰長(zhǎng)度為16字節(jié)。3DES算法雖然實(shí)際用到的密鑰長(zhǎng)度為112bit,但密鑰輸入值也可以是16字節(jié)(無(wú)效bit算法會(huì)自動(dòng)過(guò)濾)。兩算法的輸入/輸出的塊處理長(zhǎng)度恰好為2倍關(guān)系。因此對(duì)于一個(gè)16字節(jié)的明文,運(yùn)用同一個(gè)16字節(jié)密鑰,兩種算法都可以得到16字節(jié)密文。
[0065]如上所述的一種偽隨機(jī)數(shù)發(fā)生器,其生成的偽隨機(jī)數(shù)可被廣泛應(yīng)用于各個(gè)領(lǐng)域,將國(guó)密SM4算法與3DES算法相結(jié)合生成偽隨機(jī)數(shù)為應(yīng)用平臺(tái)提供了更多的選擇。由于很多平臺(tái)(如智能卡等)都同時(shí)支持兩種算法,將兩種算法相結(jié)合生成隨機(jī)數(shù)是比較容易實(shí)現(xiàn)的。
[0066]加密函數(shù)的調(diào)用方式有預(yù)定選擇和動(dòng)態(tài)選擇兩種,下面首先介紹預(yù)定選擇。圖8為本發(fā)明實(shí)施例提供的一種偽隨機(jī)數(shù)發(fā)生器的實(shí)施方式二的結(jié)構(gòu)框圖,由圖8可知,該偽隨機(jī)數(shù)發(fā)生器在實(shí)施方式二中具體包括:
[0067]獲取模塊101,用于獲取預(yù)先設(shè)定的密鑰、初始向量、種子以及加密函數(shù),所述的加密函數(shù)調(diào)用SM4算法以及3DES算法;
[0068]加密函數(shù)調(diào)用方式確定模塊104,用于預(yù)先確定所述加密函數(shù)的調(diào)用方式;
[0069]生成函數(shù)確定模塊102,所述SM4算法與3DES算法結(jié)合確定生成函數(shù)。
[0070]所述的生成函數(shù)包括加密函數(shù)以及代數(shù)運(yùn)算。
[0071]偽隨機(jī)數(shù)輸出模塊103,用于根據(jù)所述的生成函數(shù)、密鑰、初始向量以及種子輸出偽隨機(jī)數(shù)。
[0072]在該實(shí)施方式二中,生成函數(shù)中的加密函數(shù)的調(diào)用方式是預(yù)先確定的。預(yù)定選擇指隨機(jī)數(shù)發(fā)生器投入使用之前即確定了生成函數(shù)中加密函數(shù)的調(diào)用方式,使用過(guò)程中不會(huì)發(fā)生變化。設(shè)計(jì)生成函數(shù)時(shí)可以根據(jù)其生成隨機(jī)數(shù)的性能測(cè)試結(jié)果(目前比較成熟的是NIST公布的一套測(cè)試組件),變換調(diào)用的具體函數(shù)(SM4算法或3DES算法)。如果平臺(tái)有特殊限制,也可以根據(jù)具體情況選擇加密函數(shù)。
[0073]下面介紹加密函數(shù)的動(dòng)態(tài)選擇,圖9為本發(fā)明提供的SM4算法與3DES算法結(jié)合的偽隨機(jī)數(shù)發(fā)生器的示意圖,由圖9可知,該偽隨機(jī)數(shù)發(fā)生器在實(shí)施方式三中具體包括:
[0074]獲取模塊101,用于獲取預(yù)先設(shè)定的密鑰、初始向量、種子以及加密函數(shù),所述的加密函數(shù)調(diào)用SM4算法以及3DES算法;
[0075]生成函數(shù)確定模塊102,所述SM4算法與3DES算法結(jié)合確定生成函數(shù);
[0076]偽隨機(jī)數(shù)輸出模塊103,用于根據(jù)所述的生成函數(shù)、密鑰、初始向量以及種子輸出偽隨機(jī)數(shù)。
[0077]加密函數(shù)調(diào)用方式調(diào)節(jié)模塊105,用于根據(jù)輸出的偽隨機(jī)數(shù)動(dòng)態(tài)調(diào)節(jié)所述加密函數(shù)的調(diào)用方式。
[0078]在該實(shí)施方式三中,加密函數(shù)是動(dòng)態(tài)調(diào)整的。動(dòng)態(tài)選擇加密函數(shù)對(duì)平臺(tái)的計(jì)算能力要求較高,如果要一次性得到大量統(tǒng)計(jì)屬性較好的隨機(jī)數(shù),則可以根據(jù)已生成數(shù)據(jù)他統(tǒng)計(jì)特性,動(dòng)態(tài)選擇當(dāng)前生成函數(shù)中加密函數(shù)的調(diào)用方式。
[0079]如上所述,即為本發(fā)明提供的一種偽隨機(jī)數(shù)發(fā)生器,針對(duì)現(xiàn)有技術(shù)中原有的設(shè)計(jì)方案相對(duì)單一的問(wèn)題,提供了一種新的設(shè)計(jì)方案,應(yīng)用國(guó)密SM4算法與3DES算法結(jié)合確定生成函數(shù)進(jìn)而輸出偽隨機(jī)數(shù)。由于用到國(guó)密SM4算法以及3DES算法,兩種算法結(jié)合,因此增加了安全性,且在優(yōu)選實(shí)施方式中,根據(jù)平臺(tái)的限制,SM4算法可與3DES算法自由切換,調(diào)用一次或多次,選擇空間更大,由于用到的兩種加密方式在實(shí)際應(yīng)用中較為普遍,應(yīng)用平臺(tái)實(shí)現(xiàn)起來(lái)比較方便。
[0080]下面結(jié)合具體的實(shí)施例,詳細(xì)介紹本發(fā)明的方案。圖10為本發(fā)明提供的SM4算法與3DES算法結(jié)合的偽隨機(jī)數(shù)發(fā)生器的示意圖,其是一個(gè)加密安全的偽隨機(jī)數(shù)發(fā)生器,該示例是從ANST X9.17標(biāo)準(zhǔn)中就提到了基于三重DES的隨機(jī)數(shù)發(fā)生器變化出的。對(duì)該示例生成的隨機(jī)數(shù)進(jìn)行檢驗(yàn),性能良好。
[0081]本發(fā)明的設(shè)計(jì)思想有如下特點(diǎn):
[0082]1.生成函數(shù)中同時(shí)包含了 SM4算法和3DES算法。
[0083]2.如果平臺(tái)不支持3DES算法,可以將其中的兩處3DES算法替換為SM4算法,滿足平臺(tái)要求。
[0084]3.可以將其中任意一個(gè)3DES算法替換為SM4算法,從而得到新的隨機(jī)數(shù)發(fā)生器,可以分別測(cè)試其生成的隨機(jī)數(shù),選擇適合當(dāng)前平臺(tái)的設(shè)計(jì)方案。
[0085]4.如果需要產(chǎn)生大量有特殊質(zhì)量要求的隨機(jī)數(shù),可以以8字節(jié)為單位,根據(jù)已產(chǎn)生數(shù)據(jù)的情況,選擇下一輪生成函數(shù)中調(diào)用的加密函數(shù),具體調(diào)節(jié)條件需要具體設(shè)定。
[0086]綜上所述,本發(fā)明提出的一種生成偽隨機(jī)數(shù)的方法及偽隨機(jī)數(shù)發(fā)生器,針對(duì)現(xiàn)有技術(shù)中原有的設(shè)計(jì)方案相對(duì)單一的問(wèn)題,提供了一種新的設(shè)計(jì)方案,應(yīng)用國(guó)密SM4算法與3DES算法結(jié)合確定生成函數(shù)進(jìn)而輸出偽隨機(jī)數(shù)。由于用到國(guó)密SM4算法以及3DES算法,兩種算法結(jié)合,因此增加了安全性,且在優(yōu)選實(shí)施方式中,根據(jù)平臺(tái)的限制,SM4算法可與3DES算法自由切換,調(diào)用一次或多次,選擇空間更大,由于用到的兩種加密方式在實(shí)際應(yīng)用中較為普遍,應(yīng)用平臺(tái)實(shí)現(xiàn)起來(lái)比較方便。
[0087]本文的創(chuàng)新點(diǎn)在于:
[0088]1.加密函數(shù)可以同時(shí)調(diào)用SM4和3DES兩種算法,從而提供更多選擇,加強(qiáng)安全性。
[0089]2.加密函數(shù)可以自由切換。例如,如果平臺(tái)不支持3DES算法,則可以將加密函數(shù)替換為SM4算法。
[0090]3.如果需要一次性產(chǎn)生大批量隨機(jī)數(shù),也可以動(dòng)態(tài)調(diào)節(jié)加密函數(shù)。
[0091]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一般計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random AccessMemory, RAM)等。
[0092]本領(lǐng)域技術(shù)人員還可以了解到本發(fā)明實(shí)施例列出的各種功能是通過(guò)硬件還是軟件來(lái)實(shí)現(xiàn)取決于特定的應(yīng)用和整個(gè)系統(tǒng)的設(shè)計(jì)要求。本領(lǐng)域技術(shù)人員可以對(duì)于每種特定的應(yīng)用,可以使用各種方法實(shí)現(xiàn)所述的功能,但這種實(shí)現(xiàn)不應(yīng)被理解為超出本發(fā)明實(shí)施例保護(hù)的范圍。
[0093]本發(fā)明中應(yīng)用了具體實(shí)施例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
【主權(quán)項(xiàng)】
1.一種生成偽隨機(jī)數(shù)的方法,其特征是,所述的方法包括: 獲取預(yù)先設(shè)定的密鑰、初始向量、種子以及加密函數(shù),所述的加密函數(shù)調(diào)用SM4算法以及3DES算法; 所述SM4算法與3DES算法結(jié)合確定生成函數(shù); 根據(jù)所述的生成函數(shù)、密鑰、初始向量以及種子輸出偽隨機(jī)數(shù)。2.根據(jù)權(quán)利要求1所述的方法,其特征是,所述的加密函數(shù)同時(shí)包括SM4算法和3DES算法,兩種算法被調(diào)用一次或多次。3.根據(jù)權(quán)利要求2所述的方法,其特征是,所述的生成函數(shù)包括所述加密函數(shù)以及代數(shù)運(yùn)算。4.根據(jù)權(quán)利要求2所述的方法,其特征是,所述的方法還包括: 預(yù)先確定所述加密函數(shù)的調(diào)用方式。5.根據(jù)權(quán)利要求2所述的方法,其特征是,所述的方法還包括: 根據(jù)輸出的偽隨機(jī)數(shù)動(dòng)態(tài)調(diào)節(jié)所述加密函數(shù)的調(diào)用方式。6.一種偽隨機(jī)數(shù)發(fā)生器,其特征是,所述的偽隨機(jī)數(shù)發(fā)生器包括: 獲取模塊,用于獲取預(yù)先設(shè)定的密鑰、初始向量、種子以及加密函數(shù),所述的加密函數(shù)調(diào)用SM4算法以及3DES算法; 生成函數(shù)確定模塊,所述SM4算法與3DES算法結(jié)合確定生成函數(shù); 偽隨機(jī)數(shù)輸出模塊,用于根據(jù)所述的生成函數(shù)、密鑰、初始向量以及種子輸出偽隨機(jī)數(shù)。7.根據(jù)權(quán)利要求6所述的偽隨機(jī)數(shù)發(fā)生器,其特征是,所述的加密函數(shù)同時(shí)包括SM4算法和3DES算法,兩種算法被調(diào)用一次或多次。8.根據(jù)權(quán)利要求7所述的偽隨機(jī)數(shù)發(fā)生器,其特征是,所述的生成函數(shù)包括所述加密函數(shù)以及代數(shù)運(yùn)算。9.根據(jù)權(quán)利要求7所述的偽隨機(jī)數(shù)發(fā)生器,其特征是,所述的偽隨機(jī)數(shù)發(fā)生器還包括: 加密函數(shù)調(diào)用方式確定模塊,用于預(yù)先確定所述加密函數(shù)的調(diào)用方式。10.根據(jù)權(quán)利要求7所述的偽隨機(jī)數(shù)發(fā)生器,其特征是,所述的偽隨機(jī)數(shù)發(fā)生器還包括: 加密函數(shù)調(diào)用方式調(diào)節(jié)模塊,用于根據(jù)輸出的偽隨機(jī)數(shù)動(dòng)態(tài)調(diào)節(jié)所述加密函數(shù)的調(diào)用方式。
【專利摘要】本發(fā)明提供一種生成偽隨機(jī)數(shù)的方法及偽隨機(jī)數(shù)發(fā)生器,所述方法包括:獲取預(yù)先設(shè)定的密鑰、初始向量、種子以及加密函數(shù),所述的加密函數(shù)調(diào)用SM4算法以及3DES算法;所述SM4算法與3DES算法結(jié)合確定生成函數(shù);根據(jù)所述的生成函數(shù)、密鑰、初始向量以及種子輸出偽隨機(jī)數(shù)。本發(fā)明提供的偽隨機(jī)數(shù)發(fā)生器,應(yīng)用國(guó)密SM4算法與3DES算法結(jié)合確定生成函數(shù)進(jìn)而輸出偽隨機(jī)數(shù),為偽隨機(jī)數(shù)發(fā)生器提供了一種新的設(shè)計(jì)方案,由于用到國(guó)密SM4算法以及3DES算法,因此增加了安全性。
【IPC分類】H04L9/06
【公開號(hào)】CN105376055
【申請(qǐng)?zhí)枴緾N201510900370
【發(fā)明人】崔進(jìn)
【申請(qǐng)人】捷德(中國(guó))信息科技有限公司
【公開日】2016年3月2日
【申請(qǐng)日】2015年12月9日