• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于區(qū)塊鏈技術(shù)的加密算法應(yīng)用研究

      2018-11-23 05:54:42李為為劉志云
      綏化學院學報 2018年11期
      關(guān)鍵詞:素數(shù)明文私鑰

      李為為 劉志云

      (阜陽職業(yè)技術(shù)學院工程科技學院 安徽阜陽 236000)

      隨著計算機以及互聯(lián)網(wǎng)+技術(shù)的發(fā)展,教育領(lǐng)域中的教育資源也開始網(wǎng)絡(luò)化,慕課的發(fā)展就是計算機在教育領(lǐng)域的典型應(yīng)用。人們的學習形式不再是傳統(tǒng)的單靠書本了,而是更加多樣化。教育的方式也隨著學習形式的多樣化趨于多樣化。區(qū)塊鏈技術(shù)的發(fā)展和智能化技術(shù)的流行也給教育帶來了前所未有的變化[1]。區(qū)塊鏈技術(shù)目前在教育領(lǐng)域中的教學及教學平臺等都有相關(guān)應(yīng)用[2]。

      要想發(fā)展區(qū)塊鏈技術(shù),教育的發(fā)展是必不可少的[3]。區(qū)塊鏈技術(shù)目前的發(fā)展還處于初級階段,人們了解區(qū)塊鏈技術(shù)更多是基于對技術(shù)的好奇,對區(qū)塊鏈技術(shù)的基礎(chǔ)技術(shù)及加密貨幣技術(shù)還是知之甚少[4]。

      一、區(qū)塊連技術(shù)

      (一)區(qū)塊鏈的概念。區(qū)塊鏈這個概念來源于比特幣,這是一種數(shù)字貨幣,區(qū)塊鏈技術(shù)是將數(shù)據(jù)以區(qū)塊的方式組合到一起形成鏈的方式,它是一種分布式存儲與記錄結(jié)構(gòu),不是通過中心結(jié)構(gòu)進行管理。區(qū)塊鏈的交易方式是通過記錄時間來實現(xiàn)的,實現(xiàn)這項功能離不開塊主體和塊頭這兩個部分,存儲數(shù)據(jù)信息的功能通過塊主體來完成,區(qū)塊頭完成對下個區(qū)塊的鏈接。區(qū)塊鏈的生成的同時會將時間標簽標在數(shù)據(jù)信息上,這是基于區(qū)塊鏈的數(shù)據(jù)庫的優(yōu)點之一。區(qū)塊鏈技術(shù)能夠?qū)崿F(xiàn)整個網(wǎng)絡(luò)中的所有節(jié)點進行信息維護,不再依靠單個節(jié)點,對賬單的記賬不再是單一通過中心節(jié)點進行,處于網(wǎng)絡(luò)中的所有節(jié)點用戶都可以監(jiān)測網(wǎng)絡(luò)中的每項交易信息。除了可以實現(xiàn)如上功能,區(qū)塊鏈技術(shù)還解決了沒有第三方能夠信息安全交易的問題,所有用戶都可以核對賬單,賬單是網(wǎng)絡(luò)中所有用戶共有。這樣以來信息的可信度和真實性也可以得到保障。

      (二)區(qū)塊鏈核心技術(shù)。區(qū)塊鏈的技術(shù)核心是密碼學,通過這項技術(shù)雙方只要達成一致就可以實現(xiàn)支付,省去了參與的第三方平臺,對中介信用的問題提出了解決方案。區(qū)塊鏈技術(shù)要想實現(xiàn)這種雙方互信能夠在不要任何單位參與的情況下實現(xiàn)可信的轉(zhuǎn)賬,涉及到主要技術(shù)為智能合約、非對稱加密算法和分布式賬本技術(shù)。非對稱加密算法的加密方法是采取生成公鑰和私鑰的方式來保證網(wǎng)絡(luò)中的用戶信息的安全性。公鑰的生成保證了信息的真實性;生成的私鑰,只有擁有信息的用戶才可以使用相應(yīng)的私鑰進行解密,通過私鑰可以確保信息的安全性。以上介紹了區(qū)塊鏈技術(shù)的特點,可以得到區(qū)塊鏈技術(shù)中加密是必不可少的一部分,根據(jù)這個特點,本文研究了非對稱加密算法RSA,并提出將相應(yīng)的算法應(yīng)用于區(qū)塊鏈技術(shù)的數(shù)據(jù)加密,通過這種方式保證數(shù)據(jù)的安全性。

      二、RSA算法相關(guān)

      (一)RSA加密算法。RSA[5]是公鑰加密算法中的一種,目前這中算法在公鑰加密中得到了廣泛應(yīng)用,該算法可以通過網(wǎng)絡(luò)進行數(shù)據(jù)傳送,還可以實現(xiàn)交換密鑰和數(shù)字簽名等。國際上的一些標準化組織ISO、ITU、SWIFT將該算法作為衡量其他算法的標準。

      (二)RSA算法的基本原理。如下所示為RSA算法的原理:

      1.獨立地選取兩個大素數(shù)p!=q(保密)。公開對n=pq進行計算,對 ?(n)=(p-1)(q-1)(歐拉函數(shù)值)的計算保密。

      2.任意選取一個整數(shù) e,并且 e的范圍為 1≤e≤Φ(n),gcd(e,Φ(n))=1,e是公開的密鑰即公鑰。

      3.d的計算采用擴展歐幾里得算法[6],d=e-1modΦ(n),d為私鑰(保密的密鑰)。

      4.加密變換:對明文m∈Zn,密文為c=Ek(m)=memod n。

      5.解密變換:對密文c∈Zn,明文為m=Dk(c)=cdmod n。

      另外,第4和第5步的加密和解密變換也能夠轉(zhuǎn)變成數(shù)據(jù)簽名和數(shù)據(jù)驗證的過程,通過將以上兩步變成d進行加密,e進行解密來實現(xiàn)。

      (三)RSA算法的實現(xiàn)步驟。

      步驟1 素數(shù)的產(chǎn)生。

      檢測產(chǎn)生的隨機數(shù)是否為素數(shù),如果為素數(shù)則通過,否則,將該數(shù)加上一個步長值再檢測該數(shù)是否為素數(shù),以此類推,直到找到素數(shù)為止。素數(shù)檢測采用Fermat測試。檢測數(shù)值是否為素數(shù)采用費爾馬小定理,該定理如下:已知一個素數(shù)m,數(shù)a與m不是倍數(shù)關(guān)系,依據(jù)該定理a(m-1)=1(mod m)。實際應(yīng)用 a(m-1)=1(modm)?a=am(modm),將計算的算 am(modm)的結(jié)果與a進行比較。如果兩者相同,則m為素數(shù)。選取a=2,則a一定不會是任何素數(shù)的倍數(shù)。

      步驟2 隨機數(shù)的產(chǎn)生。

      密鑰生成和在公鑰加密進行字符填充時都會用到隨機數(shù)。為了防止破譯者破譯密碼或者找到在加密塊中的明文,隨機數(shù)的隨機性比較強。隨機數(shù)的生成在計算機實際的運行過程中不能完全實現(xiàn),在加密過程中的隨機數(shù)通過2256位以上的隨機序列來產(chǎn)生。

      步驟3 密鑰的生成。

      (1)選擇e的值為2623883或者94475891;

      (2)生成滿足 gcd(e,p-1)=1的隨機素數(shù) p;

      (3)隨機生成不同于p的大素數(shù)q,直到gcd(e,p-1)=1;

      (4)計算 n=pq,?(n)=(p-1)(q-1);

      (5)計算 d,d=e(-1)mod?(n);

      (6)計算 dmod(p-1),dmod(q-1);

      (7)計算(q-1)modp;

      (8)將(e,n)放入 RSA 公鑰;將 n,e,dmod(p-1),dmod(q-1)modp放入RSA私鑰。

      步驟4 加密。

      第一,要采用RSA算法進行加密,首先數(shù)字化明文。明文編碼格式如下:空格=00,A=01,B=02,C=03,…,Z=26,則明文數(shù)字化HI為08、09;接著將明文M分成塊長為s的等長的數(shù)據(jù)塊 m1,m2,m3,…mi,其中 25<n,s盡可能大。加密過程如下:Ek(x)=xemodn,x∈Zn,其中這里的x為明文。加密過程中需要輸入如下數(shù)據(jù):e(公鑰),d(私鑰),M(明文),n(模數(shù))。明文M的長度范圍在[logn2]-11之內(nèi)。

      第二,格式化明文。采用PKCS格式:EB=00||BT||PS||OO|M。其中參數(shù)如下:塊的類型:B,填充串:PS,明文數(shù)據(jù):M,0為起始值用以確保k的值小于EB的長度。BT的值當為公鑰和私鑰加密值分別為02和01。當02為BT的值時,PS的值為非0隨機數(shù);當01為BT的值時,PS的值為FF。

      明文數(shù)據(jù)轉(zhuǎn)換方式:從字符型數(shù)據(jù)到整形數(shù)據(jù)。

      第三,RSA計算:對整數(shù)數(shù)據(jù)加密塊x進行模冪運算:y=xcmodn,0≤y<0,其中y為密文。其中c的值在公鑰和私鑰加密時不同,當為公鑰時,c的值為e,當為私鑰時,c的值為d。

      第四,密文數(shù)據(jù)轉(zhuǎn)換為從整型數(shù)據(jù)到字符型數(shù)據(jù)。

      步驟5 解密。

      解密規(guī)則為:Dk(x)=ycmodn,y∈Zn,y為密文。加密實現(xiàn)時需要輸入如下數(shù)據(jù):密文數(shù)據(jù)C;模數(shù)n;公鑰e或私鑰d,輸出為明文。

      第一,密文數(shù)據(jù)轉(zhuǎn)換方式為:由字符型數(shù)據(jù)到整型數(shù)據(jù)。

      第二,模運算密文實現(xiàn)對RSA解密:x=ycmodn,0≤x<n,,這里 x指明文。

      第三,這個時候轉(zhuǎn)換為ASCII類型的明文數(shù)據(jù)的明文就是PKCS格式。

      第四,將原明文從PKCS格式中分離出來。這同時也可以實現(xiàn)對數(shù)據(jù)完整性的檢測。如果存在下面幾個問題則證明解密失?。悍指畈磺宄?;不匹配BT注明的數(shù)據(jù)類型或者少于64位的填充字符;BT與實際操作類型不符。

      三、仿真及結(jié)果分析

      以下部分是對算法進行具體的分析仿真,仿真軟件為MATLAB。

      (一)仿真中參數(shù)假設(shè)。

      1.RSA秘鑰的生成參數(shù)設(shè)置。

      (1)任意兩個大的質(zhì)數(shù):p,q,計算。n=pq。

      (2)擴展歐幾里得算法:e_gcd(e,r);

      (3)求取 e關(guān)于 r的模反元素 d=(e_gcd#(e,r)),明文數(shù)據(jù)轉(zhuǎn)換方式:從字符型數(shù)據(jù)到整形數(shù)據(jù)。d的求取依據(jù)擴張歐幾里得算法。

      (4)公鑰:{n,e};私鑰:{n,d},通過 n 所占用的二進制位的寬度和n的值來決定密鑰的位數(shù)。如果n=1023,那么秘鑰就是10位的。

      2.數(shù)據(jù)的加密參數(shù)設(shè)置。

      明文:m(十進制);

      密文:c(十進制);

      得到密文公式:c=me0/0n,就是m的e次方對n求余。注意:要進行加密的值m要小于n,如果不小于n的值就要進行分組切割。

      3.解密過程參數(shù)設(shè)置。

      密文:c;

      得到明文公式:cd=m(mod n);

      明文:m=cd0/0n。

      (二)仿真結(jié)果分析。為了對比算法所帶來的效果,最后采用MATLAB進行網(wǎng)絡(luò)仿真,仿真過程包括加密、解密過程,私鑰以及公鑰生成,另外仿真中還計算了進行加密和解密所需的時間,算法仿真運行后的結(jié)果如圖1所示。由圖可以看出仿真中得到公鑰為{163793,557},私鑰為{162793,154133},最后通過擴展歐幾里得算法正確進行解密。

      圖1 加密解密仿真結(jié)果

      四、結(jié)語

      本文首先介紹了目前區(qū)塊鏈技術(shù)的發(fā)展現(xiàn)狀,進而引出區(qū)塊鏈的發(fā)展離不開教育的發(fā)展,指出區(qū)塊鏈的功能的實現(xiàn)需要解決安全問題,進而引出RSA加密算法,提出在區(qū)塊鏈技術(shù)網(wǎng)絡(luò)中采用RSA的加密算法保證數(shù)據(jù)的安全性,接著對RSA加密算法加密和解密的過程進行介紹,最后通過仿真得出RSA加密和解密過程,其加密和解密的特點表明,能夠?qū)⒃撍惴ㄟ\用到區(qū)塊鏈技術(shù)中。

      猜你喜歡
      素數(shù)明文私鑰
      孿生素數(shù)
      兩個素數(shù)平方、四個素數(shù)立方和2的整數(shù)冪
      比特幣的安全性到底有多高
      基于改進ECC 算法的網(wǎng)絡(luò)信息私鑰變換優(yōu)化方法
      關(guān)于兩個素數(shù)和一個素數(shù)κ次冪的丟番圖不等式
      一種基于虛擬私鑰的OpenSSL與CSP交互方案
      奇怪的處罰
      奇妙的素數(shù)
      奇怪的處罰
      上饶县| 淳安县| 渝中区| 通城县| 石阡县| 金华市| 泉州市| 上饶县| 黑河市| 什邡市| 南川市| 襄樊市| 波密县| 华阴市| 扬州市| 永城市| 娄烦县| 迁安市| 大田县| 万山特区| 文成县| 克什克腾旗| 康马县| 博乐市| 都江堰市| 丹巴县| 博爱县| 宽城| 桃源县| 平顺县| 卫辉市| 河间市| 玛沁县| 修武县| 平远县| 安西县| 文昌市| 达孜县| 张家川| 高安市| 怀安县|