国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于256進(jìn)制大數(shù)的rsa加密方法

      文檔序號:7782619閱讀:592來源:國知局
      基于256進(jìn)制大數(shù)的rsa加密方法
      【專利摘要】基于256進(jìn)制大數(shù)的RSA加密方法,包括產(chǎn)生公私密鑰對過程、加密過程和解密過程。本發(fā)明加密方法可以對任意位大的數(shù)進(jìn)行快速高效運(yùn)算,打破了內(nèi)置類型的限制,并充分高效利用資源,從底層對歐幾里得算法、素性檢測算法等高效算法再一次優(yōu)化,提高了運(yùn)算效率。本發(fā)明利用查表法,不僅提高了運(yùn)算效率,而且解決了對于所有文件格式的加密解密問題,實(shí)現(xiàn)了加解密的通用性。
      【專利說明】基于256進(jìn)制大數(shù)的RSA加密方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明屬于加密方法【技術(shù)領(lǐng)域】,涉及一種基于256進(jìn)制大數(shù)的RSA加密方法。
      【背景技術(shù)】
      [0002]隨著云時代的來臨,大數(shù)據(jù)(Big data)也吸引了越來越多的關(guān)注。著云臺的分析師團(tuán)隊認(rèn)為,大數(shù)據(jù)(Big data)通常用來形容一個公司創(chuàng)造的大量非結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù),這些數(shù)據(jù)在下載到關(guān)系型數(shù)據(jù)庫用于分析時會花費(fèi)過多時間和金錢。大數(shù)據(jù)分析常和云計算聯(lián)系到一起,因?yàn)閷?shí)時的大型數(shù)據(jù)集分析需要像MapReduce —樣的框架來向數(shù)十、數(shù)百或甚至數(shù)千的電腦分配工作。
      [0003]對于大數(shù)據(jù)時代有數(shù)據(jù)量大、類型繁多、價值密度低以及速度快時效高等特征。在這個背景下,很多應(yīng)用都將會建立在大數(shù)據(jù)處理的基礎(chǔ)之上。由于很多僅僅對內(nèi)置類型的處理已經(jīng)無法滿足當(dāng)前的需求,所以大數(shù)據(jù)處理的迫切性不言而喻。
      [0004]RSA公鑰加密算法是一個既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法。它易于理解和操作,也十分流行。RSA公鑰加密算法以
      【發(fā)明者】的姓氏首字母命名:Ron Rivest1AdiShamir和Leonard Adleman。雖然自1978年提出以來,RSA的安全性一直未能得到理論上的證明,但它經(jīng)歷了各種攻擊。隨著越來越多的商業(yè)應(yīng)用和標(biāo)準(zhǔn)化工作,RSA已經(jīng)成為最具代表性的公鑰加密技術(shù)。VISA、MasterCard、IBM、Microsoft等公司協(xié)力制定的安全電子交易標(biāo)準(zhǔn)(Secure Electronic Transactions, SET)就采用了標(biāo)準(zhǔn)RSA算法,這使得RSA在我們的生活中幾乎無處不在。網(wǎng)上交易加密連接、網(wǎng)上銀行身份驗(yàn)證、各種信用卡使用的數(shù)字證書、智能移動電話和存儲卡的驗(yàn)證功能芯片等,大多數(shù)使用RSA技術(shù)。但是,現(xiàn)有的RSA公鑰加密算法存在不足之處在于算法的實(shí)現(xiàn)依賴于計算機(jī)的速度和容量,效率比較低。由于RSA算法進(jìn)行的都是大數(shù)計算,使得RSA最快的情況也比DES慢上好幾倍,這也是RSA的最大缺陷,因此它僅能處理加密少量的數(shù)據(jù)。

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

      [0005]本發(fā)明的目的在于提供一種基于256進(jìn)制大數(shù)的RSA加密方法,解決現(xiàn)有技術(shù)存在的底層數(shù)據(jù)運(yùn)算速度慢的問題。
      [0006]本發(fā)明的技術(shù)方案是,基于256進(jìn)制大數(shù)的RSA加密方法,包括產(chǎn)生公私密鑰對過程、加密過程和解密過程。
      [0007]本發(fā)明的特點(diǎn)還在于:
      [0008]包括大素數(shù)P、大素數(shù)q以及產(chǎn)生公私密鑰對涉及的三個參數(shù)n、el、e2 ;其中,η是兩個大素數(shù)P、q的積,el和e2是一對相關(guān)的值,el可以任意取,但要求el與(p_l)*(q_l)互質(zhì);再選擇 e2,滿足(e2*el) mod((p_l) *(q_l)) =1 ;
      [0009]具體算法如下:
      [0010](I)產(chǎn)生隨即大素數(shù)P以及大素數(shù)q:
      [0011]利用拉賓米勒素性檢測算法,即先隨機(jī)產(chǎn)生指定位數(shù)的大數(shù)M,然后利用多個隨機(jī)數(shù)r對產(chǎn)生的大數(shù)M進(jìn)行素性檢測,能夠通過則可以認(rèn)為是素數(shù);
      [0012]這樣可以得到歐拉η以及大數(shù)η ;
      [0013]其計算過程為:n=p*q;歐拉n= (p_l)* (q-1);
      [0014](2)通過歐拉η尋找公鑰、密鑰:
      [0015]通過歐幾里得算法,遍歷素數(shù)表,經(jīng)過gcd遞歸調(diào)算法,查找到與歐拉η互質(zhì)的數(shù)el作為公鑰,同時計算出密鑰e2,使得它們滿足關(guān)系(el*e2)mod oln=l ;
      [0016]則公鑰對為(n,el),私鑰對為(n,e2);
      [0017]計算私鑰(e2),產(chǎn)生公鑰對(n,el),私鑰對(n,e2);
      [0018]設(shè)A為明文,B為密文,則加密:A=B~e2mod η ;解密:B=A~elmod η ;
      [0019](3)通過公鑰對對文件內(nèi)容進(jìn)行加密:
      [0020]加密過程為,從文件中逐個讀出待加密明文,約定每次讀出一個字節(jié)進(jìn)行加密,加密后的密文是一個大數(shù),利用結(jié)構(gòu)體對其進(jìn)行存儲,包括數(shù)組的最大長度、當(dāng)前位數(shù)等信息,然后寫入密文文件。
      [0021](4)通過密鑰對對文件內(nèi)容進(jìn)行解密:
      [0022]解密過程為,從密文文件中逐個讀出待解密密文,每次讀出一個結(jié)構(gòu)體類型的數(shù)據(jù)進(jìn)行分解,包括大數(shù)數(shù)組、當(dāng)前數(shù)據(jù)位數(shù)以及最大數(shù)據(jù)位數(shù),然后利用解密算法對每個大數(shù)進(jìn)行運(yùn)算得到明文并寫入明文文件,完成解密。
      [0023]本發(fā)明具有如下有益效果:
      [0024]1、本發(fā)明加密方法可以對任意位大的數(shù)進(jìn)行快速高效運(yùn)算,打破了內(nèi)置類型的限制,并充分高效利用資源,從底層對歐幾里得算法、素性檢測算法等高效算法再一次優(yōu)化,提聞了運(yùn)算效率。
      [0025]2、本發(fā)明利用查表法,不僅提高了運(yùn)算效率,而且解決了對于所有文件格式的加密解密問題,實(shí)現(xiàn)了加解密的通用性。
      【專利附圖】

      【附圖說明】
      [0026]圖1為本發(fā)明基于256進(jìn)制大數(shù)的RSA加密方法實(shí)施例實(shí)錄圖。
      【具體實(shí)施方式】
      [0027]下面結(jié)合附圖和【具體實(shí)施方式】對本發(fā)明作詳細(xì)說明。
      [0028]本發(fā)明基于256進(jìn)制大數(shù)的RSA加密方法,包括產(chǎn)生公私密鑰對過程、加密過程和解密過程。
      [0029]對底層數(shù)據(jù)的處理依賴于應(yīng)對256進(jìn)制實(shí)現(xiàn)一套高效的加、減、乘、除以及取?;具\(yùn)算,其實(shí)現(xiàn)原理為:加減采用基本進(jìn)位借位運(yùn)算原理,對于乘法采用移位相乘,將其中一個乘數(shù)與0-255相乘的結(jié)果存儲于一個256的大數(shù)數(shù)組中,然后讓另一個乘數(shù)的每一位進(jìn)行查表移位相加得到所需結(jié)果。對于除法采用豎式相除的規(guī)則,同時記錄余數(shù),實(shí)現(xiàn)除法與取模的同時運(yùn)算,減小計算量。
      [0030]本發(fā)明算法包含以下參數(shù):大素數(shù)P、大素數(shù)q以及產(chǎn)生公私密鑰對涉及的三個參數(shù)n、el、e2 ;其中,η是兩個大素數(shù)p、q的積,el和e2是一對相關(guān)的值,el可以任意取,但要求 el 與(p-1) *(q_l)互質(zhì);再選擇 e2,滿足(e2*el) mod((p_l) *(q_l)) =1。[0031]具體算法如下:
      [0032](I)產(chǎn)生隨即大素數(shù)P以及大素數(shù)q:
      [0033]利用拉賓米勒素性檢測算法,即先隨機(jī)產(chǎn)生指定位數(shù)的大數(shù)M,然后利用多個隨機(jī)數(shù)r對產(chǎn)生的大數(shù)M進(jìn)行素性檢測,能夠通過則在一定的程度上可以認(rèn)為是素數(shù);此外,優(yōu)化是對產(chǎn)生的隨即大素數(shù)先進(jìn)性預(yù)處理,即控制低位或者高位使其首先是一個奇數(shù),此外利用小素數(shù)先行進(jìn)行測試,提高效率。
      [0034]這樣可以得到歐拉η以及大數(shù)η:
      [0035]其計算過程為:n=p*q;歐拉n= (p-1) * (q-1);
      [0036](2)通過歐拉η尋找公鑰、密鑰:
      [0037]通過歐幾里得算法,遍歷素數(shù)表,經(jīng)過gcd遞歸調(diào)算法,查找到與歐拉η互質(zhì)的數(shù)el作為公鑰,同時計算出密鑰e2,使得它們滿足關(guān)系(el*e2)mod oln=l ;
      [0038]則公鑰對為(n, el),私鑰對為(n, e2);
      [0039]計算私鑰(e2),產(chǎn)生公鑰對(n,el),私鑰對(n,e2);
      [0040]使用方式為:設(shè)A為明文,B為密文,則加密:A=B~e2mod η ;解密:B=A~elmod η ;
      [0041](3)通過公鑰對對文件內(nèi)容進(jìn)行加密:
      [0042]加密過程為,從文件中逐個讀出待加密明文,約定每次讀出一個字節(jié)進(jìn)行加密,加密后的密文是一個大數(shù),利用結(jié)構(gòu)體對其進(jìn)行存儲,包括數(shù)組的最大長度、當(dāng)前位數(shù)等信息,然后寫入密文文件。
      [0043](4)通過密鑰對對文件內(nèi)容進(jìn)行解密:
      [0044]解密過程為,從密文文件中逐個讀出待解密密文,每次讀出一個結(jié)構(gòu)體類型的數(shù)據(jù)進(jìn)行分解,包括大數(shù)數(shù)組、當(dāng)前數(shù)據(jù)位數(shù)以及最大數(shù)據(jù)位數(shù),然后利用解密算法對每個大數(shù)進(jìn)行運(yùn)算得到明文并寫入明文文件,完成解密。
      [0045]本發(fā)明對現(xiàn)有技術(shù)進(jìn)行了以下四點(diǎn)優(yōu)化:
      [0046]1.在空間存儲上采用256進(jìn)制:
      [0047]當(dāng)前的加密體系中多采用1024比特位以上的大數(shù)η來滿足算法的安全性級別,這個密鑰長度已經(jīng)超過了計算機(jī)內(nèi)內(nèi)置類型的存儲范圍,對于常規(guī)做法,使用線性字符數(shù)組的形式進(jìn)行大數(shù)的存儲,經(jīng)過分析得出對于一個unsigned char類型占一個字節(jié)(x8632位cpu),本發(fā)明只是存儲0-9,也就是只需要前面的三個比特位,而后面的5位則一直沒有用至IJ,所以其利用率極低,伴隨的就是運(yùn)算速度的下降。因此,為解決這個問題,本發(fā)明提出一種基于256進(jìn)制上的大數(shù)存儲機(jī)制,即充分利用這8個比特位的空間,使得一個1024比特位的大數(shù)使用本發(fā)明存儲機(jī)制僅需要128位即可滿足要求。
      [0048]2.對256進(jìn)制實(shí)現(xiàn)一套高效的加、減、乘、除以及取?;具\(yùn)算,其實(shí)現(xiàn)原理為:力口減采用基本進(jìn)位借位運(yùn)算原理,對于乘法采用移位相乘,將其中一個乘數(shù)與0-255相乘的結(jié)果存儲于一個256的大數(shù)數(shù)組中,然后讓另一個乘數(shù)的每一位進(jìn)行查表移位相加得到所需結(jié)果。對于除法采用豎式相除的規(guī)則,同時記錄余數(shù),實(shí)現(xiàn)除法與取模的同時運(yùn)算,減小
      計算量。
      [0049]經(jīng)過測試,對于千位以上的256進(jìn)制大數(shù)(折合十進(jìn)制大約2500多位),以上各運(yùn)算法則處理時間均為秒級。
      [0050]3.RSA大數(shù)加密方法實(shí)現(xiàn)中的優(yōu)化:[0051](I)蒙哥馬利快速冪模算法的優(yōu)化:
      [0052]下面是本發(fā)明算法的原理以及基于256進(jìn)制存儲結(jié)構(gòu)進(jìn)行的優(yōu)化快速計算:
      [0053]如計算B=A~e2mod η:
      [0054]將e2用2進(jìn)制表示,從低位開始,
      [0055]a、res初始化為1,m初始化為A ;
      [0056]b、如果 e2 高一位為 I,則 res= (res*m) mod η ;
      [0057]C、如果 e2 高一位為 O,則 m= (m*m) mod η ;
      [0058]d、return res ;
      [0059]其特點(diǎn)是與256進(jìn)制存儲結(jié)構(gòu)想契合,由于順序表每一位元素都是unsignedchar類型,內(nèi)存中的存儲結(jié)構(gòu)正好為二進(jìn)制,因此,采用256進(jìn)制存儲,無需將e2再轉(zhuǎn)化為二進(jìn)制,只需從順序表第一位元素開始,8次循環(huán),每次與I相與,結(jié)果為I則執(zhí)行第2步,結(jié)果為O則執(zhí)行第3步,8次循環(huán)結(jié)束,取順序表下一個元素,直到取完順序表,則得到結(jié)果d為密文B的值。
      [0060]( 2 )素性檢測算法的優(yōu)化:
      [0061]利用拉賓米勒素性檢測算法,本發(fā)明的優(yōu)化是對產(chǎn)生的隨即大素數(shù)先進(jìn)性預(yù)處理,即控制低位或者高位使其首先是一個奇數(shù),此外利用小素數(shù)先行進(jìn)行測試,提高效率。
      [0062]4.加密方法過程中的優(yōu)化(查表法):
      [0063]明文加密以及密文解密利用數(shù)據(jù)字典記錄0-255加密結(jié)果,每次加密之前讀入的數(shù)據(jù)的ASCII作為數(shù)組索引下標(biāo)進(jìn)行查找,找得到直接利用,沒有找到則利用現(xiàn)有算法進(jìn)行加密運(yùn)算并將結(jié)果存儲在表里供下次查找。
      [0064]實(shí)施例,由于空間和時間的限制,本實(shí)施例所有的大數(shù)的顯示均采用一個字節(jié)一個字節(jié)的打印形式(在實(shí)際應(yīng)用中無需打印,只需利用大數(shù)數(shù)組即可)。
      [0065]第一階段,產(chǎn)生加密方法所需的公私密鑰對:
      [0066]素數(shù)采用五位長度(用戶可以指定測試長度),通過隨即生成產(chǎn)生的結(jié)果如下:
      [0067]素數(shù)P:143 105 255 97 73
      [0068]素數(shù)q:51 30 18 201 203
      [0069]根據(jù)以下規(guī)則:素數(shù)p、q的乘積為η,取任意值el,要求el與(p_l)* (q_l)互質(zhì),再選擇合適 e2,且滿足(e2*el)mod((p_l) *(q_l)) =1 ;
      [0070]得出各參數(shù)值(高位在左,低位在右):
      [0071]η 為:28 162 246 210 206 216 246 6 117 227
      [0072]oln (即(p-1) * (q-1))為:
      [0073]28 162 246 210 206 22 109 244 74 208
      [0074]公鑰el 為:5 186 49 93 92 106 226 202 117 93
      [0075]私鑰e2 為:5
      [0076](n, el),(η, e2)就是密鑰對;其中(n, el)為公鑰,(n, e2)為私鑰。
      [0077]到此,產(chǎn)生了加密方法需要的所有數(shù)據(jù)。
      [0078]第二階段,加密過程:
      [0079]加密公式:設(shè)A為明文,B為密文,則:B=A~e2mod η ;
      [0080]A為‘X’,其存儲形式為:120[0081]對其加密后的密文為:106 32 236 75 154 198 72 O 138
      [0082]這樣將這些密文寫入文件中就可以實(shí)現(xiàn)對數(shù)據(jù)的加密。
      [0083]第三階段,解密過程:
      [0084]解密公式:設(shè)A為明文,B為密文,則:A=B~elmod η ;
      [0085]對第二階段的密文進(jìn)行解密操作:
      [0086]密文文件中讀出來的大數(shù)據(jù)為:
      [0087]10 6 32 236 75 154 198 72 O 138
      [0088]利用以上公式解密后的字符為:120
      [0089]到此,實(shí)現(xiàn)了加密方法的所有操作,參見圖1,總共需要時間為0.312秒。
      【權(quán)利要求】
      1.基于256進(jìn)制大數(shù)的RSA加密方法,其特征在于:包括產(chǎn)生公私密鑰對過程、加密過程和解密過程。
      2.如權(quán)利要求1所述的基于256進(jìn)制大數(shù)的RSA加密方法,其特征在于:包括大素數(shù)P、大素數(shù)q以及產(chǎn)生公私密鑰對涉及的三個參數(shù)n、el、e2 ;其中,η是兩個大素數(shù)P、q的積,el和e2是一對相關(guān)的值,el可以任意取,但要求el與(p_l) * (q_l)互質(zhì);再選擇e2,滿足(e2*el) mod((p-l) *(q_l)) =1 ; 具體算法如下: (1)產(chǎn)生隨即大素數(shù)P以及大素數(shù)q: 利用拉賓米勒素性檢測算法,即先隨機(jī)產(chǎn)生指定位數(shù)的大數(shù)M,然后利用多個隨機(jī)數(shù)r對產(chǎn)生的大數(shù)M進(jìn)行素性檢測,能夠通過則可以認(rèn)為是素數(shù),得到歐拉η以及大數(shù)η ; 其計算過程為:n=p*q;歐拉n= (p_l)* (q_l); (2)通過歐拉η尋找公鑰、密鑰: 通過歐幾里得算法,遍歷素數(shù)表,經(jīng)過gcd遞歸調(diào)算法,查找到與歐拉η互質(zhì)的數(shù)el作為公鑰,同時計算出密鑰e2,使得它們滿足關(guān)系(el*e2)mod oln=l ; 則公鑰對為(n,el),私鑰對為(n,e2); 計算私鑰(e2),產(chǎn)生公鑰對(n,el),私鑰對(n,e2); 設(shè)A為明文,B為密文,則加密:A=B~e2mod η ;解密:B=A~elmod η ; (3)通過公鑰對對文件內(nèi)容進(jìn)行加密: 加密過程為,從文件中逐個讀出待加密明文,約定每次讀出一個字節(jié)進(jìn)行加密,加密后的密文是一個大數(shù),利用結(jié)構(gòu)體對其進(jìn)行存儲,包括數(shù)組的最大長度、當(dāng)前位數(shù)等信息,然后寫入密文文件。 (4)通過密鑰對對文件內(nèi)容進(jìn)行解密: 解密過程為,從密文文件中逐個讀出待解密密文,每次讀出一個結(jié)構(gòu)體類型的數(shù)據(jù)進(jìn)行分解,包括大數(shù)數(shù)組、當(dāng)前數(shù)據(jù)位數(shù)以及最大數(shù)據(jù)位數(shù),然后利用解密算法對每個大數(shù)進(jìn)行運(yùn)算得到明文并寫入明文文件,完成解密。
      【文檔編號】H04L9/30GK103701593SQ201310739565
      【公開日】2014年4月2日 申請日期:2013年12月26日 優(yōu)先權(quán)日:2013年12月26日
      【發(fā)明者】申瀟瀟, 李艷強(qiáng) 申請人:西安理工大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1