999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于RSA和密鑰的二維碼加密編碼的研究

2014-08-23 02:23:34安吉旺徐凱宏
森林工程 2014年2期
關(guān)鍵詞:信息

安吉旺,徐凱宏

(東北林業(yè)大學(xué) 機(jī)電工程學(xué)院,哈爾濱 150040)

二維碼(Two dimensional Barcode)是在一維碼的基礎(chǔ)上,在垂直和水平兩個方向上進(jìn)行的編碼和解碼。QR碼(Quick Response Code)作為矩陣式二維條碼的典型代表,是在一個矩形空間中通過不同黑、白像素的矩陣分布進(jìn)行編碼。與其他二維碼相比,QR碼除了具有信息容量大、可靠性強(qiáng),可表示漢字及圖像等多種文字信息等優(yōu)點(diǎn)外,還可全方位識讀且識讀速度快[1]。因此,QR碼在各行各業(yè)中得到普遍應(yīng)用。

一些領(lǐng)域,QR碼所包含信息不方便被無關(guān)組織、機(jī)構(gòu)和個人隨意識讀,這就要求其在傳輸和存儲前進(jìn)行相應(yīng)的加密處理。在密碼學(xué)中,信息加密有很多種方法:序列密碼、分組密碼、公鑰密碼、哈希函數(shù)等[2],但在二維碼編碼技術(shù)中的應(yīng)用卻很少,如用Rinjdael算法分別對信息原文、密鑰加密編碼得到二維碼A、B,A、B非功能區(qū)異或編碼得到二維碼C[3];QR碼二值圖像DES加密將原有規(guī)律排列的黑白相間區(qū)域變成雜亂無章的黑白區(qū)域,破壞了QR碼平面結(jié)構(gòu)使無法識讀信息[4];結(jié)合編碼規(guī)則,先用PBE(Password Based Encryption)方法對數(shù)據(jù)信息加密再把密文編碼[5]。

本文結(jié)合RSA加密算法和編碼規(guī)則,通過改進(jìn)加密過程在VC上實(shí)現(xiàn)對信息的雙重加密。

1 QR編碼規(guī)則

QR碼是由編碼區(qū)域和功能圖形組成一個正方形陣列。QR版本7符號結(jié)構(gòu)圖如圖1所示。

圖1 QR碼符號的結(jié)構(gòu)

QR編碼共分七個步驟:①數(shù)據(jù)分析:分析所輸入的數(shù)據(jù)流,確定要進(jìn)行編碼的字符的類型。②數(shù)據(jù)編碼:針對不同數(shù)據(jù)模式將數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制位流,經(jīng)碼字轉(zhuǎn)化最終形成碼字位流。③糾錯編碼:根據(jù)選定的符號標(biāo)識和糾錯等級,將一組給定的數(shù)據(jù)碼字分成數(shù)據(jù)塊并計算相應(yīng)數(shù)據(jù)塊的糾錯碼字。④構(gòu)造最終信息:依次將每一塊的數(shù)據(jù)碼字和糾錯碼字裝配成最終序列碼字。最終編碼信息排放如圖2所示。⑤在矩陣中布置模塊:將上圖功能圖區(qū)的各個模塊一起加入矩陣。⑥掩模:將數(shù)據(jù)及糾錯碼區(qū)域內(nèi)滿足條件的模塊定義為深色。⑦格式和版本信息:根據(jù)編碼格式和版本型號生成QR碼符號[1]。

圖2 編碼信息排放

QR編碼算法公開且編、譯碼軟件應(yīng)用普遍,未加密的QR碼很容易被識別。將加密引入到二維碼技術(shù)中,對于食品安全、票務(wù)管理、貴重物品防偽等方面都有很大的幫助,這也促進(jìn)了二維碼技術(shù)的普及。

2 RSA算法

RSA密碼體制是由Rivest,Shamir,Adleman于1978年提出的基于數(shù)論理論的公鑰密碼體制,是目前應(yīng)用最廣泛的公鑰密碼體制。加密體制如下:

密鑰生成:用戶任意選取兩個大素數(shù)(大于500比特)p、q,計算公式:

n=pqφ(n)=(p-1)(q-1)。

(1)

隨機(jī)選取一個整數(shù)e:1≤e<φ(n)且e與φ(n)互質(zhì)。通常先選定e,再找出并確定p,q。求解私鑰d:1

for(i=0;i

{

j=i*e%k;

if(j==1)

{

printf(“%d”i);

printf(“ ”);

}

}

其中,n為運(yùn)算模數(shù),e為加密指數(shù),d為解密指數(shù)。在編碼過程中為可公示密鑰。為非公開的私鑰,信息接收端若要獲取加密信息必須申請私鑰。

加密算法:首先將明文分組,每組長度小于log2n。使用公鑰對每個分組m加密生成密文c:c=memodn。

解密算法:在知道私鑰k的情況下解密密文c得到明文m:m=cdmodn。

3 密令Key算法

此算法是采用輸入密鑰k加密明文m使其轉(zhuǎn)化成可視字符的算法。算法規(guī)則如下:

加密算法:獲取明文m、密鑰k,明文和密鑰是以字符型輸入。將明文m按密鑰k的字符長度分段成,m1,m2,…,mn,若不能整除則加入填充符“ ”。分別自密鑰k和每段數(shù)據(jù)符mi的首字節(jié)開始提取字節(jié)數(shù)值k1、k2。通過Ci=((k1+k2+512)mod 95)+32(實(shí)驗證明漢字字符字節(jié)提取值為負(fù)值)運(yùn)算將明文字符mi轉(zhuǎn)化成ASCⅡ碼表中32~126之間的可視字符c1,c2,…cn。加密過程中(k1+k2+512)/95的值加32同樣轉(zhuǎn)化成ASCⅡ碼表中32-126之間的可視字符q1,q2,…qn,最后得到密文

c=c1,q1,c2,q2,…cn,qn。

解密算法:解密是加密的逆過程,獲取密文c、輸入正確的密鑰k,明文和密鑰是以字符型輸入。先提取密文c中的q1,q2,…qn,將密文剩余信息密鑰k的字符長度分段成c1,c2,…cn(此時密文c必被整除)。分別自密鑰k和每段數(shù)據(jù)符ci的首字節(jié)開始提取字節(jié)數(shù)值k1、k2。通過mi=k2+95*Q[n]-512-k1(Q[n]中存放加密過程中qi-32的值;i=1,2,…,n)運(yùn)算最后得到明文m=mi,m2,…mn[2]。

4 雙重加密編碼編程實(shí)現(xiàn)

4.1 加密流程

圖3 雙重加密流程

為了不破壞QR碼的符號結(jié)構(gòu)、降低糾錯能力及識讀效率,本文將加密算法作用于QR碼編解碼步驟中“數(shù)據(jù)編碼”步驟前,對原始數(shù)據(jù)進(jìn)行加密,之后再將密文進(jìn)行“數(shù)據(jù)編碼”直至生成QR符號。解碼則是編碼的逆過程。QR碼信息的雙重密算法流程為:

(1)獲取要加密的明文信息(漢字、圖像、數(shù)字等),并將信息進(jìn)行字符轉(zhuǎn)換,輸入加密口令。

(2)將明文信息字符采用加密口令Key進(jìn)行密文C1;

(3)對密令進(jìn)行RSA算法加密生成C2;

(4)設(shè)置密碼標(biāo)志位,將密碼C2填充到C1當(dāng)中形成最終密文C。

(5)對密文C進(jìn)行數(shù)據(jù)分析和數(shù)據(jù)編碼,形成數(shù)據(jù)位流。

(6)對數(shù)據(jù)位流進(jìn)行糾錯、掩膜等后續(xù)處理直至生成加密QR碼。

4.2 QR碼加密實(shí)現(xiàn)

QR碼雙重加密解密的實(shí)現(xiàn)是采用C++語言編寫,在已有開源項目和基礎(chǔ)函數(shù)庫的基礎(chǔ)上進(jìn)行的二次開發(fā)。本文在開源項目QR碼的編碼過程中編寫函數(shù)進(jìn)行加密操作。

(1)提取明文信息。明文的形式有很多種,其中,最主要的是文本信息和圖像。加密所需的明文必須采用的字符串的格式,這就要求對所獲取的明文進(jìn)行格式轉(zhuǎn)換。對于文本內(nèi)容來說其本身就是字符串形式得,加密前只需獲取文本信息即可。對于圖像信息來說,加密編碼前需要對其進(jìn)行圖形調(diào)整以達(dá)到相應(yīng)的規(guī)格標(biāo)準(zhǔn)。

①文本信息提取:

CString strFilter= “TXT

Files(*.txt)|*.txt|All

Files(*.*)|*.*||”;

CString strCon=“(TXT file)*.txt”;

m_strTxtFileName=fDlg.GetPathName();

②圖像信息提取:

strFilter=“Bitmap Files(*.bmp)|*.bmp|All Files(*.*)|*.*||”;

strCon=“(Bitmap file)*.bmp”;

m_strBmpFileName=fDlg.GetPathName();

sprintf(ss,“%s”,m_strBmpFileName.GetBuffer(256));

SizeDIB(ImgFileName,100,100);//調(diào)整圖像

(2)雙重加密。

①口令key加密:將上面提取的文本信息TxtFile-

Name、圖像信息ImgFileName,作為加密明文Source,在輸入口令Key的前提下進(jìn)行加密。

CString CEncryptDlg∷Encrypt_Key(CString Source,CString Key)

{

k1=pKey[j-1];

k2=pSource[j-1];

intk=k1+k2+512;

div_Result=div(k,ENCRYPT_KEY);

k=div_Result.rem;

m=div_Result.quot;

pMid[j-1]=k;

strTarget[n]=k;

DstrTarget[n]=m;

n++;

i=0;x=0;

for(j=0;j<2*n;j++)

{

if(j%2==0)

sstrTarget[j]=strTarget[i++]+32;

else

sstrTarget[j]=DstrTarget[x++]+32;

}

}

②RSA加密:對口令Key加密,將Key作為RSA加密算法的輸入m_Source

wsprintf(pSource,“%s”,m_Source);

iLen=m_Source.GetLength();

for(i=0;i

{

div_t div_Result;

dw1=Exp(pSource[i],e,r);

div_Result=div(dw1,r);

pTarget[i]=div_Result.rem;

//獲取密文

}//加密算法最關(guān)鍵是引用Exp()函數(shù),是RAS加密的核心算法。

DWORD Exp(intk,inte,intr)

{DWORD dwResult;

div_tdiv_Result;

dwResult=k;

div_Result=div(dwResult,r);

dwResult=div_Result.rem;

for(inti=1;i

{dwResult*=k;

div_Result=div(dwResult,r);dwResult=div_Result.rem;}

return(dwResult);

(3)編碼函數(shù)

QR編碼只需在獲取加密密文后調(diào)用Qr_code編碼動態(tài)鏈接庫EnCodeQr.dll

void BarCodeDlg::EnCoding()

{…

SetQrConFile(m_strConFileName);//設(shè)置QR配置文件

if(imgLen<1)

barname=EnQrText(m_strInfo);//將信息生成QR碼不含編碼信息結(jié)構(gòu)

else

barname=MakeQrCode(TxtFileName,ImgFileName,“”);//將文本、圖形和其他信息合成生成QR碼,含編碼結(jié)構(gòu)信息。}

5 實(shí)驗及分析

本文采用漢字模式下“東北林業(yè)大學(xué)”為加密原文,編碼QR圖像如圖4所示,其中圖4(a)未加密,能夠采用普通識別軟件讀取,而圖4(b)、(c)、圖4(d)分別采用RSA、密令Key、RSA改進(jìn)算法加密QR碼,必須采用專用識別軟件才能正確識讀。

圖4 不同加密方式下生成的二維碼

從QR碼加解密測試數(shù)據(jù)(見表1)可以看出,加解密軟件可正確識讀加密和未加密QR碼,而普通的識讀軟件對加密QR碼的正確識別率為0%。本實(shí)驗中若對“東北林業(yè)大學(xué)”進(jìn)行單一RSA算法加密且公鑰e=101,其中求余運(yùn)算1 224次、加法運(yùn)算1 212次。采用本文的改進(jìn)算法加密:求余運(yùn)算417次、加法運(yùn)算457次。通過對運(yùn)算次數(shù)和加、解密時間的分析,新加密方法效率更高,安全性更強(qiáng)。另外新的加密方法:加密口令簡單、靈活,且由用戶掌握。對比加密前后的QR碼符,其結(jié)構(gòu)并未改變,不影響QR碼的適度效率。

表1 QR碼加解密測試數(shù)據(jù)

6 結(jié)束語

RSA算法是基于分解大整數(shù)的困難性的加密,在管理密鑰方面算法優(yōu)越,加密時公鑰更新容易,對外只需保密私鑰。但RSA算法計算復(fù)雜,其模正整數(shù)次冪運(yùn)算需消耗大量時間,當(dāng)進(jìn)行大信息量加密時將嚴(yán)重影響加解密的執(zhí)行效率。本文研究了QR碼編解碼規(guī)則和RSA改進(jìn)加密算法,針對QR碼信息加密的缺陷,提出采用輸入口令加密原文信息、RSA算法加密口令的算法。通過實(shí)驗證明,本方法在未知私鑰的情況下采用普通識別軟件對QR碼的正確識別率為0%,既保證了信息的安全性又提高了加密的靈活性和提高了效率,具有很強(qiáng)的實(shí)用性,可得到廣泛應(yīng)用。

【參 考 文 獻(xiàn)】

[1] 中國物品編碼中心,二維碼技術(shù)與應(yīng)用[M].北京:中國計量出版社,2007.

[2] 鄭 東,李祥學(xué),黃 征.密碼學(xué)——密碼算法與協(xié)議[M].北京:電子工業(yè)出版社,2009.

[3] 任勇金.基于Rijndeal和異或運(yùn)算的QR二維碼雙重加密研究[J].華章,2012(29):338.

[4] 劉彥偉,王根英,劉 云.QR碼信息加密的研究與實(shí)現(xiàn)[J].推廣與應(yīng)用,2012,21(11):37-41.

[5] 李 東.基于加密和解密的二維條形碼的實(shí)現(xiàn)[J].科學(xué)傳播,2010,(7):114-115.

猜你喜歡
信息
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
信息超市
展會信息
展會信息
展會信息
展會信息
展會信息
信息
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 国产成人综合亚洲欧美在| 免费高清a毛片| 熟妇无码人妻| 无码人中文字幕| 亚洲伊人久久精品影院| 国产成人综合日韩精品无码不卡| 玩两个丰满老熟女久久网| 91综合色区亚洲熟妇p| av在线5g无码天天| 日本在线国产| 综合色亚洲| 99爱视频精品免视看| 亚洲国产精品成人久久综合影院 | 欧美高清日韩| 亚洲系列中文字幕一区二区| 99re在线免费视频| 中文字幕日韩欧美| 免费国产在线精品一区| 激情国产精品一区| 欧美精品成人| 成人毛片在线播放| 久久黄色毛片| 欧美一级专区免费大片| 欧美丝袜高跟鞋一区二区| 欧美天天干| 欧美午夜久久| 成人国产精品2021| 国产精品综合色区在线观看| 强奷白丝美女在线观看| 一区二区日韩国产精久久| 亚洲男人的天堂视频| 亚洲欧美天堂网| 亚洲热线99精品视频| 亚洲欧洲美色一区二区三区| 色偷偷男人的天堂亚洲av| 国产精品污视频| 欧美日韩在线成人| 欧洲一区二区三区无码| 蜜桃视频一区| 久久国产精品国产自线拍| 全部无卡免费的毛片在线看| 性欧美久久| 凹凸国产分类在线观看| aaa国产一级毛片| 国产精品视频观看裸模| 国产迷奸在线看| 国产成人福利在线视老湿机| 精品伊人久久久大香线蕉欧美 | 久久网综合| 国产在线啪| 久久黄色一级片| 日本a级免费| 欧美一区二区三区不卡免费| 国产小视频免费| 国产91丝袜在线播放动漫| 亚洲国内精品自在自线官| 无码有码中文字幕| 亚洲精品另类| 欧美在线免费| 亚洲人成影院在线观看| 欧美成人影院亚洲综合图| 日韩毛片免费| vvvv98国产成人综合青青| 国产91成人| 国产在线日本| 精品一区二区三区中文字幕| 久久久久国色AV免费观看性色| 伊伊人成亚洲综合人网7777 | 97av视频在线观看| 国产成人AV综合久久| 国产一区成人| 久久人午夜亚洲精品无码区| 中文字幕天无码久久精品视频免费| 国产精品熟女亚洲AV麻豆| 亚洲第一区欧美国产综合 | 色偷偷男人的天堂亚洲av| 在线人成精品免费视频| 国产成人高精品免费视频| 婷婷色一区二区三区| 亚洲伊人电影| www.91中文字幕| 五月天天天色|