国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2018-11-23 05:54李為為劉志云
綏化學(xué)院學(xué)報(bào) 2018年11期
關(guān)鍵詞:素?cái)?shù)明文私鑰

李為為 劉志云

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

步驟1 素?cái)?shù)的產(chǎn)生。

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

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

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

步驟3 密鑰的生成。

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

(2)生成滿足 gcd(e,p-1)=1的隨機(jī)素?cái)?shù) p;

(3)隨機(jī)生成不同于p的大素?cái)?shù)q,直到gcd(e,p-1)=1;

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

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

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

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

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

步驟4 加密。

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

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

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

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

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

步驟5 解密。

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

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

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

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

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

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

以下部分是對(duì)算法進(jìn)行具體的分析仿真,仿真軟件為MATLAB。

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

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

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

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

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

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

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

明文:m(十進(jìn)制);

密文:c(十進(jìn)制);

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

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

密文:c;

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

明文:m=cd0/0n。

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

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

四、結(jié)語

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

猜你喜歡
素?cái)?shù)明文私鑰
清掃機(jī)器人避障系統(tǒng)區(qū)塊鏈私鑰分片存儲(chǔ)方法
兩個(gè)素?cái)?shù)平方、四個(gè)素?cái)?shù)立方和2的整數(shù)冪
比特幣的安全性到底有多高
有關(guān)殆素?cái)?shù)的二元丟番圖不等式
基于改進(jìn)ECC 算法的網(wǎng)絡(luò)信息私鑰變換優(yōu)化方法
關(guān)于兩個(gè)素?cái)?shù)和一個(gè)素?cái)?shù)κ次冪的丟番圖不等式
關(guān)于素?cái)?shù)簡(jiǎn)化剩余系構(gòu)造的幾個(gè)問題
一種基于虛擬私鑰的OpenSSL與CSP交互方案
奇怪的處罰
奇怪的處罰
故城县| 安陆市| 南宫市| 西青区| 苍溪县| 翁牛特旗| 玉屏| 开平市| 东乡| 盱眙县| 东莞市| 金阳县| 玉屏| 葵青区| 孟村| 青田县| 高邮市| 建德市| 涞源县| 宜兰市| 静乐县| 大同市| 广宗县| 云浮市| 江西省| 翼城县| 镇雄县| 汪清县| 石渠县| 辽宁省| 江西省| 花垣县| 邮箱| 舒城县| 米易县| 伊川县| 谢通门县| 台北市| 新龙县| 漳平市| 辉南县|