欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種改進(jìn)的快速生成大素數(shù)的方法

文檔序號:9754241閱讀:745來源:國知局
一種改進(jìn)的快速生成大素數(shù)的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種改進(jìn)的快速生成大素數(shù)的方法,屬于信息安全的技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002] 非對稱密碼體制也稱為公鑰加密體制,該體制是針對對稱密碼體制的缺陷而被提 出來的。在公鑰加密系統(tǒng)中,加密和解密是相對獨立的,加密和解密使用的是兩把不同的密 鑰。其中一個密鑰是公開的,稱之為公開密鑰(簡稱公鑰),用于加密;另一個密鑰是為用戶 專用的,因而是保密的,稱之為秘密密鑰(簡稱秘鑰),用于解密。因此公鑰密碼體制也稱為 雙鑰密碼體制,它徹底改變了原來的加密原理,真正使得互不相識的通信雙方在一個不安 全的信道上進(jìn)行安全通信最終成為可能。
[0003] 公鑰RSA加密算法是非對稱加密體制中的國際標(biāo)準(zhǔn),它是惟一被廣泛接受并實現(xiàn) 的通用非對稱加密算法。該加密算法的保密原理是基于大整數(shù)因子分解的困難性,也就是 說在數(shù)學(xué)中,兩個大素數(shù)相乘十分容易,但是再對其乘積的結(jié)果進(jìn)行因式分解卻非常困難, 因此RSA加密算法將這兩個大素數(shù)的乘積公開,作為算法的加密密鑰。RSA算法的核心是大 整數(shù)的模冪運算。
[0004] 云存儲是未來信息存儲的一種理想方式,它提供方便易用的存儲空間,但數(shù)據(jù)安 全問題卻是云存儲普及中的最大障礙,因為在云存儲中的數(shù)據(jù)不可避免會涉及到私人的 (如個人郵件、電話等)以及公司機密(如客戶列表、商業(yè)備忘錄等)。因此云存儲安全一直是 云存儲研究的重點。針對云存儲中輕量級數(shù)據(jù)安全的問題,可以采用數(shù)據(jù)加密算法進(jìn)行加 密然后再存儲從而保證數(shù)據(jù)的機密性。
[0005] 由于公鑰RSA加密算法既可以用于數(shù)據(jù)加密,又可以用于數(shù)字簽名中,所以,其有 著廣泛的應(yīng)用。但是,隨著對于大數(shù)分解技術(shù)的不斷研究,使得人們可以分解的數(shù)越來越 大,為了提高RSA算法的安全性,其密鑰的長度也隨之增加。而本發(fā)明提供的方法可以快速 生成大素數(shù),增加RSA密鑰的長度,提高RSA算法的安全性,進(jìn)而可以保證加密后數(shù)據(jù)存儲在 云存儲系統(tǒng)中的機密性。

【發(fā)明內(nèi)容】

[0006] 本發(fā)明目的在于提供一種可以快速生成大素數(shù)的方法,該方法解決了增加RSA密 鑰的長度,以提高RSA加密算法的安全性的問題,保證了存儲在云存儲系統(tǒng)中的數(shù)據(jù)安全性 和生成大素數(shù)的效率以及RSA加解密的效率。
[0007] 本發(fā)明解決其技術(shù)問題所采取的技術(shù)方案是:一種改進(jìn)的快速生成大素數(shù)的方 法,該方法能夠快速生成大素數(shù),是基于Miller-Rabin素數(shù)檢測算法,通過加入預(yù)處理過 程,并且采用Montgomery模乘算法對原Mi 11 er-Rabin算法檢測素數(shù)進(jìn)行了優(yōu)化。 Montgomery模乘算法采用的是模加右移的方法,有效地避免了求模運算中比較耗時的除法 運算,減少了原算法中模冪運算的次數(shù),從而大大提高了對于素數(shù)的檢測速度。
[0008] 方法流程:
[0009] 步驟1:首先隨機生成指定位數(shù)的大整數(shù):
[0010] 步驟1-1:定義一個數(shù)組,其中數(shù)組中的每一個元素的范圍是0~OxFFFFFFFF;
[0011] 步驟1-2:以時間為隨機種子;
[0012] 步驟1-3:循環(huán)隨機的產(chǎn)生數(shù)組中的每一個元素上的數(shù);
[0013] 步驟1-4:循環(huán)結(jié)束后,使最高位的元素與0x80000000進(jìn)行按位或運算,使得產(chǎn)生 的大整數(shù)的最高位是1,即保證大數(shù)的位數(shù)。
[0014] 步驟2:對產(chǎn)生的隨機大整數(shù)進(jìn)行預(yù)處理:
[0015] 步驟2-1:將該大整數(shù)與整數(shù)1進(jìn)行按位或運算,保證其是一個奇數(shù);
[0016] 步驟2-2:判斷該奇數(shù)能否被整數(shù)5整除;
[0017] 步驟2-3:如果能,則在該奇數(shù)的基礎(chǔ)上加上預(yù)先定義的素數(shù)表PrimeTableB[N] (如表1所示)中的數(shù),轉(zhuǎn)到步驟2-1;
[0018] 步驟2-4:如果不能,則轉(zhuǎn)到步驟2-5;
[0019] 步驟2-5:判斷該大整數(shù)能否整除預(yù)定義素數(shù)表PrimeTableA[M](如表1所示)中的 素數(shù);
[0020] 步驟2-6:如果能整除,則說明產(chǎn)生的大整數(shù)不是素數(shù),在該大整數(shù)數(shù)的基礎(chǔ)上加 上預(yù)先定義的素數(shù)表PrimeTableB[N]中的數(shù),轉(zhuǎn)到步驟2-1;
[0021] 步驟2-7:如果該大整數(shù)不能整除預(yù)定義素數(shù)表PrimeTableA[M]中所有的素數(shù),則 說明其可能是素數(shù),轉(zhuǎn)到步驟3;
[0022] 步驟3:對步驟2中經(jīng)過預(yù)處理后的大整數(shù)進(jìn)行5次的Miller-Rabin算法檢測;步驟 4:如果5次都通過檢測,則該大整數(shù)就是素數(shù),轉(zhuǎn)到步驟6;
[0023]步驟5:如果沒有通過檢測,則在該大整數(shù)數(shù)的基礎(chǔ)上加上預(yù)先定義的素數(shù)表 Pr imeTab 1 eB [ N]中的數(shù),轉(zhuǎn)到步驟2;
[0024]步驟6:保存并輸出該大素數(shù)。
[0025]本發(fā)明采用的是預(yù)定義素數(shù)表PrimeTableB中的素數(shù)元素作為隨機遞增的增量進(jìn) 行搜索。
[0026]本發(fā)明應(yīng)用于增加RSA算法的密鑰長度,該方法能夠提高RSA安全性,保證了加密 后數(shù)據(jù)的機密性。
[0027] 有益效果:
[0028] 1、本發(fā)明能夠快速生成大素數(shù),增加RSA密鑰的長度,提高RSA算法的安全性,進(jìn)而 保證了加密后數(shù)據(jù)存儲在云存儲系統(tǒng)中的機密性。
[0029] 2、本發(fā)明是在Miller-Rabin素數(shù)檢測算法基礎(chǔ)上,通過引入預(yù)處理過程,并且采 用Montgomery模乘算法對原Mil ler-Rabin算法檢測素數(shù)進(jìn)行了優(yōu)化,可以減少了原算法中 模冪運算的次數(shù)。
[0030] 3、本發(fā)明能夠提高素數(shù)的檢測速度,并且該思路清晰、簡單,易于實現(xiàn)。
【附圖說明】
[0031] 圖1為本發(fā)明的方法流程圖。
[0032]圖2為產(chǎn)生隨機大整數(shù)的流程圖。
[0033]圖3為本發(fā)明預(yù)處理的流程圖。
[0034] 圖4為Miller-Rabin素數(shù)檢測算法的流程示意圖。
【具體實施方式】
[0035] 下面結(jié)合說明書附圖對本發(fā)明創(chuàng)造作進(jìn)一步的詳細(xì)說明。
[0036] 如圖1所示,本發(fā)明開始時將根據(jù)指定的位數(shù)(即以1024位為例)生成相應(yīng)的大整 數(shù),?1';1111613131613[1'1]與?1';[11161313164[1]類似,都是一維數(shù)組,只是維數(shù)1'1比1大,如表1所示。
[0037] 表 1
[0038] PrimeTableA[M]=
[0039]
[0040] 本發(fā)明的具體流程如圖2所示,包括:
[0041] (1)首先,需要先定義一個unsigned long類型的數(shù)組Array(即:本發(fā)明以32位的 操作系統(tǒng)為例),數(shù)組的長度length-般設(shè)置為產(chǎn)生的位數(shù)除以32,最好是大于這個長度, 這里本發(fā)明設(shè)置length為32;
[0042] (2)以時間為隨機種子srand((int)time(0)),保證每次隨機產(chǎn)生的數(shù)是不同的;
[0043 ] (3)循環(huán)產(chǎn)生隨機數(shù),組成數(shù)組Array的元素Array [ 0…31 ];
[0044] (4)循環(huán)結(jié)束后,使數(shù)組最后一個元素Array [3
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
崇仁县| 射洪县| 旬邑县| 濮阳市| 镇沅| 曲周县| 巴中市| 全州县| 东平县| 鹿邑县| 江川县| 奇台县| 玛多县| 湾仔区| 云浮市| 格尔木市| 锡林郭勒盟| 离岛区| 丰宁| 综艺| 兴和县| 南宁市| 元阳县| 城口县| 昌吉市| 太谷县| 临江市| 陆良县| 三门县| 招远市| 慈利县| 昌江| 星子县| 东乡族自治县| 南宫市| 壤塘县| 偃师市| 永宁县| 承德县| 大埔区| 洞头县|