本發(fā)明涉及體域網(wǎng)技術(shù)領(lǐng)域,具體涉及一種基于橢圓曲線算法的加解密方法及系統(tǒng)。
背景技術(shù):
無線體域網(wǎng)是由一些放置在人體表面或者植入人體內(nèi)部的傳感器以及一些可移動終端所組成的以人體為中心的網(wǎng)絡(luò)。該網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)多為患者的生理信息,關(guān)系到患者的生命安全。由于無線信道的開放性,整個體域網(wǎng)中信息的交互很容易受到非法攻擊,而體域網(wǎng)信息具有高度敏感性,一旦生理數(shù)據(jù)的正確性受到影響,將會導(dǎo)致不可預(yù)知的嚴(yán)重后果。因此要采用相關(guān)的加密算法來保證通信的安全。
由于體域網(wǎng)資源有限性,更多地采用對稱加密算法和非對稱的橢圓曲線加密算法相結(jié)合的混合加密算法,但是橢圓曲線加密算法為非對稱加密算法,其計算量較大,導(dǎo)致整個混合加密算法效率較低,不利于整個混合加密算法在體域網(wǎng)中推廣應(yīng)用。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)中的缺陷,本發(fā)明提供既能實現(xiàn)對生理信息的加密,又能提升效率的基于橢圓曲線算法的加解密方法。
本發(fā)明是這樣實現(xiàn)的,一種基于橢圓曲線算法的加解密方法,所述方法包括下述步驟:
在采集節(jié)點b,根據(jù)輸入的生理信息m,生成數(shù)字簽名s、所述生理信息的對稱加密密文fk(m)和對稱密鑰k;
對所述對稱密鑰k進行基于二進制的拆分,k=k1k2,并以拆分得到的對稱密鑰k1和k2為依據(jù)進行基于橢圓曲線算法的加密操作,得到重新組合后的密鑰密文ck;
將包含所述數(shù)字簽名s、密文fk(m)和重新組合后的密鑰密文ck在內(nèi)的數(shù)據(jù)發(fā)送給匯聚節(jié)點a。
作為一種改進的方案,所述對所述對稱密鑰k進行基于二進制的拆分,k=k1k2,并以拆分得到的對稱密鑰k1和k2為依據(jù)進行基于橢圓曲線算法的加密操作,得到重新組合后的密鑰密文ck的步驟具體包括下述步驟:
對所述對稱密鑰k進行基于二進制的拆分,k=k1k2;
隨機選取隨機數(shù)r1,計算共享密鑰x1,然后基于共享密鑰x1和基于所述橢圓曲線算法,生成拆分后的密鑰k1所對應(yīng)的密鑰密文ck1;
隨機選取隨機數(shù)r2,計算共享密鑰x2,然后基于共享密鑰x2和基于所述橢圓曲線算法,生成拆分后的密鑰k2所對應(yīng)的密鑰密文ck2;
將所述密鑰密文ck1和密鑰密文ck2進行線性組合,生成重新組合后的密鑰密文
作為一種改進的方案,所述對所述對稱密鑰k進行基于二進制的拆分的步驟具體包括下述步驟:
在采集節(jié)點b,隨機選取正整數(shù)r和s,其中,r+s=n;
將所述對稱密鑰k換算為二進制形式,即:k1=k1k2…kr,k2=kr+1kr+2…kn;
其中,k=k1k2。
作為一種改進的方案,所述采集節(jié)點b發(fā)送給所述匯聚節(jié)點a的數(shù)據(jù)中還包含有參數(shù)r,其中,r=rp,p為橢圓曲線的一個基點。
作為一種改進的方案,所述方法還包括下述步驟:
對所述數(shù)字簽名s進行驗證;
當(dāng)驗證通過時,所述匯聚節(jié)點a對所述接收到的參數(shù)r進行密鑰的計算,得到匯聚節(jié)點a和采集節(jié)點b的共享密鑰x1,x2;
根據(jù)重新組合后的密鑰密文ck,計算所述密鑰密文組合計算式中的斜率參數(shù)a和b,且(a,b)=1;
利用共享密鑰x1,x2和橢圓曲線算法對所述密鑰密文ck1和密鑰密文ck2進行解密操作,獲得拆分的對稱密鑰k1和k2;
根據(jù)k=k1k2,還原獲取對稱密鑰k;
依據(jù)獲取到的所述對稱密鑰k對所述密文fk(m)進行解密,獲取所述生理信息m。
本發(fā)明的另一目的在于提供一種基于橢圓曲線算法的加解密系統(tǒng),所述系統(tǒng)包括:
生理信息采集處理模塊,用于在采集節(jié)點b,根據(jù)輸入的生理信息m,生成數(shù)字簽名s、所述生理信息的對稱加密密文fk(m)和對稱密鑰k;
對稱密鑰拆分加密模塊,用于對所述對稱密鑰k進行基于二進制的拆分,k=k1k2,并以拆分得到的對稱密鑰k1和k2為依據(jù)進行基于橢圓曲線算法的加密操作,得到重新組合后的密鑰密文ck;
加密數(shù)據(jù)發(fā)送模塊,用于將包含所述數(shù)字簽名s、密文fk(m)和重新組合后的密鑰密文ck在內(nèi)的數(shù)據(jù)發(fā)送給匯聚節(jié)點a。
作為一種改進的方案,所述對稱密鑰拆分加密模塊具體包括:
對稱密鑰拆分模塊,用于對所述對稱密鑰k進行基于二進制的拆分,k=k1k2;
第一密鑰密文生成模塊,用于隨機選取隨機數(shù)r1,計算共享密鑰x1,然后基于共享密鑰x1和基于所述橢圓曲線算法,生成拆分后的密鑰k1所對應(yīng)的密鑰密文ck1;
第二密鑰密文生成模塊,用于隨機選取隨機數(shù)r2,計算共享密鑰x2,然后基于共享密鑰x2和基于所述橢圓曲線算法,生成拆分后的密鑰k2所對應(yīng)的密鑰密文ck2;
線性組合模塊,用于將所述密鑰密文ck1和密鑰密文ck2進行線性組合,生成重新組合后的密鑰密文
作為一種改進的方案,所述對稱密鑰拆分模塊具體包括:
隨機選取模塊,用于在采集節(jié)點b,隨機選取正整數(shù)r和s,其中,r+s=n;
二進制換算模塊,用于將所述對稱密鑰k換算為二進制形式,即:k1=k1k2…kr,k2=kr+1kr+2…kn;
其中,k=k1k2。
作為一種改進的方案,所述采集節(jié)點b發(fā)送給所述匯聚節(jié)點a的數(shù)據(jù)中還包含有參數(shù)r,其中,r=rp,p為橢圓曲線的一個基點。
作為一種改進的方案,所述系統(tǒng)還包括解密模塊,所述解密模塊具體包括:
簽名驗證模塊,用于對所述數(shù)字簽名s進行驗證;
共享密鑰計算模塊,用于當(dāng)驗證通過時,所述匯聚節(jié)點a對所述接收到的參數(shù)r進行密鑰的計算,得到匯聚節(jié)點a和采集節(jié)點b的共享密鑰x1,x2;
斜率參數(shù)計算模塊,用于根據(jù)重新組合后的密鑰密文ck,計算所述密鑰密文組合計算式中的斜率參數(shù)a和b,且(a,b)=1;
密鑰密文解密模塊,用于利用共享密鑰x1,x2和橢圓曲線算法對所述密鑰密文ck1和密鑰密文ck2進行解密操作,獲得拆分的對稱密鑰k1和k2;
對稱密鑰還原模塊,用于根據(jù)k=k1k2,還原獲取對稱密鑰k;
生理信息獲取模塊,用于依據(jù)獲取到的所述對稱密鑰k對所述密文fk(m)進行解密,獲取所述生理信息m。
在本發(fā)明實施例中,在采集節(jié)點b,根據(jù)輸入的生理信息m,生成數(shù)字簽名s、生理信息的對稱加密密文fk(m)和對稱密鑰k;對對稱密鑰k進行基于二進制的拆分,k=k1k2,并以拆分得到的對稱密鑰k1和k2為依據(jù)進行基于橢圓曲線算法的加密操作,得到重新組合后的密鑰密文ck;將包含數(shù)字簽名s、密文fk(m)和重新組合后的密鑰密文ck在內(nèi)的數(shù)據(jù)發(fā)送給匯聚節(jié)點a,既實現(xiàn)對生理信息的加密,又能提升混合加密算法的效率。
附圖說明
為了更清楚地說明本發(fā)明具體實施方式或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對具體實施方式或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹。在所有附圖中,類似的元件或部分一般由類似的附圖標(biāo)記標(biāo)識。附圖中,各元件或部分并不一定按照實際的比例繪制。
圖1為本發(fā)明提供的基于橢圓曲線算法的加解密方法的實現(xiàn)流程圖;
圖2為本發(fā)明提供的對所述對稱密鑰k進行基于二進制的拆分,k=k1k2,并以拆分得到的對稱密鑰k1和k2為依據(jù)進行基于橢圓曲線算法的加密操作,得到重新組合后的密鑰密文ck的實現(xiàn)流程圖;
圖3為本發(fā)明提供的基于橢圓曲線算法的解密方法的實現(xiàn)流程圖;
圖4為本發(fā)明提供的基于橢圓曲線算法的加解密系統(tǒng)的結(jié)構(gòu)框圖;
圖5為本發(fā)明提供的解密模塊的結(jié)構(gòu)框圖。
具體實施方式
下面將結(jié)合附圖對本發(fā)明技術(shù)方案的實施例進行詳細的描述。以下實施例僅用于更加清楚地說明本發(fā)明的技術(shù)方案,因此只作為示例,而不能以此來限制本發(fā)明的保護范圍。
圖1示出了本發(fā)明提供的基于橢圓曲線算法的加解密方法的實現(xiàn)流程圖,其具體包括下述步驟:
在步驟s101中,在采集節(jié)點b,根據(jù)輸入的生理信息m,生成數(shù)字簽名s、所述生理信息的對稱加密密文fk(m)和對稱密鑰k。
在該步驟中,選定素數(shù)域fq上的一條橢圓曲線ep(a,b),橢圓曲線上的一個基點p和其素數(shù)階n,節(jié)點a,b的私鑰分別是da,db,發(fā)送生理信息為m,節(jié)點a,b的公鑰分別為qa,qb,由下式算的:qa=dap,qb=dbp,以上為a和b公鑰的生成。
然后,采集節(jié)點b由生理信息m生成對稱密鑰k和消息摘要,且產(chǎn)生隨機數(shù)r并利用匯聚節(jié)點a的公鑰qa計算共享密鑰x(r=rp);
(x,y)=rqa=rdap=rda。
同時,利用對稱密鑰生成器生成對稱密鑰k,并利用生成的對稱密鑰k對生理信息m進行加密,生成對稱加密密文fk(m)。
在該步驟還包括簽名算法計算出相應(yīng)的數(shù)字簽名s的過程,在此不再贅述。
在步驟s102中,對對稱密鑰k進行基于二進制的拆分,k=k1k2,并以拆分得到的對稱密鑰k1和k2為依據(jù)進行基于橢圓曲線算法的加密操作,得到重新組合后的密鑰密文ck。
其具體的實現(xiàn)如圖2所示,在此不再贅述。
在步驟s103中,將包含所述數(shù)字簽名s、密文fk(m)和重新組合后的密鑰密文ck在內(nèi)的數(shù)據(jù)發(fā)送給匯聚節(jié)點a。
其中,如圖2所示,上述步驟s102,對所述對稱密鑰k進行基于二進制的拆分,k=k1k2,并以拆分得到的對稱密鑰k1和k2為依據(jù)進行基于橢圓曲線算法的加密操作,得到重新組合后的密鑰密文ck的步驟具體包括下述步驟:
在步驟s201中,對對稱密鑰k進行基于二進制的拆分,將對稱密鑰k分為對稱密鑰k1和k2,即k=k1k2。
在步驟s202中,隨機選取隨機數(shù)r1,計算共享密鑰x1,然后基于共享密鑰x1和所述橢圓曲線算法,生成拆分后的密鑰k1所對應(yīng)的密鑰密文ck1。
在該步驟中,隨機選取隨機數(shù)r1后,利用匯聚節(jié)點a的公鑰qa計算匯聚節(jié)點a和采集節(jié)點b的共享密鑰x1,即:
(xi,yi)=riqa=ripda=rida。
在步驟s203中,隨機選取隨機數(shù)r2,計算共享密鑰x2,然后基于共享密鑰x2和所述橢圓曲線算法,生成拆分后的密鑰k2所對應(yīng)的密鑰密文ck2。
同上述步驟s202,在此不再贅述。
在步驟s204中,將所述密鑰密文ck1和密鑰密文ck2進行線性組合,生成重新組合后的密鑰密文
在該步驟中,該加法為算數(shù)加法。
其中,上述步驟s201具體包括下述步驟:
(1)在采集節(jié)點b,隨機選取正整數(shù)r和s,其中,r+s=n;
(2)將所述對稱密鑰k換算為二進制形式,即:k1=k1k2…kr,k2=kr+1kr+2…kn;
其中,k=k1k2。
在本發(fā)明實施例中,采集節(jié)點b發(fā)送給所述匯聚節(jié)點a的數(shù)據(jù)中還包含有參數(shù)r,其中,r=rp,p為橢圓曲線的一個基點;
在此基礎(chǔ)上,如圖3所示,基于橢圓曲線算法的解密過程為:
在步驟s301中,對所述數(shù)字簽名s進行驗證。
若驗證不通過,則證明密文是錯誤的,拒絕接收即可。
在步驟s302中,當(dāng)驗證通過時,所述匯聚節(jié)點a對所述接收到的參數(shù)r進行密鑰的計算,得到匯聚節(jié)點a和采集節(jié)點b的共享密鑰x1,x2。
即:(xi,yi)=rida。
在步驟s303中,根據(jù)重新組合后的密鑰密文ck,計算所述密鑰密文組合計算式中的斜率參數(shù)a和b,且(a,b)=1。
在步驟s304中,利用共享密鑰x1,x2和橢圓曲線算法對所述密鑰密文ck1和密鑰密文ck2進行解密操作,獲得拆分的對稱密鑰k1和k2。
在步驟s305中,根據(jù)k=k1k2,還原獲取對稱密鑰k。
在步驟s306中,依據(jù)獲取到的所述對稱密鑰k對所述密文fk(m)進行解密,獲取所述生理信息m。
在該實施例中,為了從密文ck譯出對稱密鑰k,必須由方程:
ax+by=ck
解出
方程ax+by=ck是一個不定方程,利用euclid算法,當(dāng)(a,b)=1,則在一定的時間內(nèi)可以解出該方程的一個特解(x0,y0)。此時,方程有如下形式的通解:
x=x0+bty=y(tǒng)0-att∈z
如果已知密文
則由此可以唯一地且準(zhǔn)確地解出
圖4示出了本發(fā)明提供的基于橢圓曲線算法的加解密系統(tǒng)的結(jié)構(gòu)框圖,為了便于說明,圖中僅給出了與本發(fā)明實施例相關(guān)的部分。
生理信息采集處理模塊11在采集節(jié)點b,根據(jù)輸入的生理信息m,生成數(shù)字簽名s、所述生理信息的對稱加密密文fk(m)和對稱密鑰k;
對稱密鑰拆分加密模塊12對所述對稱密鑰k進行基于二進制的拆分,k=k1k2,并以拆分得到的對稱密鑰k1和k2為依據(jù)進行基于橢圓曲線算法的加密操作,得到重新組合后的密鑰密文ck;
加密數(shù)據(jù)發(fā)送模塊13將包含所述數(shù)字簽名s、密文fk(m)和重新組合后的密鑰密文ck在內(nèi)的數(shù)據(jù)發(fā)送給匯聚節(jié)點a。
其中,對稱密鑰拆分加密模塊12具體包括:
對稱密鑰拆分模塊14對所述對稱密鑰k進行基于二進制的拆分,k=k1k2;
第一密鑰密文生成模塊15隨機選取隨機數(shù)r1,計算共享密鑰x1,然后基于共享密鑰x1和基于所述橢圓曲線算法,生成拆分后的密鑰k1所對應(yīng)的密鑰密文ck1;
第二密鑰密文生成模塊16隨機選取隨機數(shù)r2,計算共享密鑰x2,然后基于共享密鑰x2和基于所述橢圓曲線算法,生成拆分后的密鑰k2所對應(yīng)的密鑰密文ck2;
線性組合模塊17將所述密鑰密文ck1和密鑰密文ck2進行線性組合,生成重新組合后的密鑰密文
對稱密鑰拆分模塊14具體包括:
隨機選取模塊18在采集節(jié)點b,隨機選取正整數(shù)r和s,其中,r+s=n;
二進制換算模塊19將所述對稱密鑰k換算為二進制形式,即:k1=k1k2…kr,k2=kr+1kr+2…kn;
其中,k=k1k2。
在本發(fā)明實施例中,如圖5所示,基于橢圓曲線算法的加解密系統(tǒng)還包括解密模塊20,所述解密模塊20具體包括:
簽名驗證模塊21,用于對所述數(shù)字簽名s進行驗證;
共享密鑰計算模塊22,用于當(dāng)驗證通過時,所述匯聚節(jié)點a對所述接收到的參數(shù)r進行密鑰的計算,得到匯聚節(jié)點a和采集節(jié)點b的共享密鑰x1,x2;
斜率參數(shù)計算模塊23,用于根據(jù)重新組合后的密鑰密文ck,計算所述密鑰密文組合計算式中的斜率參數(shù)a和b,且(a,b)=1;
密鑰密文解密模塊24,用于利用共享密鑰x1,x2和橢圓曲線算法對所述密鑰密文ck1和密鑰密文ck2進行解密操作,獲得拆分的對稱密鑰k1和k2;
對稱密鑰還原模塊25,用于根據(jù)k=k1k2,還原獲取對稱密鑰k;
生理信息獲取模塊26,用于依據(jù)獲取到的所述對稱密鑰k對所述密文fk(m)進行解密,獲取所述生理信息m。
其中,上述各個模塊的功能如上述方法實施例所記載,在此不再贅述。
在本發(fā)明實施例中,在采集節(jié)點b,根據(jù)輸入的生理信息m,生成數(shù)字簽名s、生理信息的對稱加密密文fk(m)和對稱密鑰k;對對稱密鑰k進行基于二進制的拆分,k=k1k2,并以拆分得到的對稱密鑰k1和k2為依據(jù)進行基于橢圓曲線算法的加密操作,得到重新組合后的密鑰密文ck;將包含數(shù)字簽名s、密文fk(m)和重新組合后的密鑰密文ck在內(nèi)的數(shù)據(jù)發(fā)送給匯聚節(jié)點a,既實現(xiàn)對生理信息的加密,又能提升混合加密算法效率,拓寬了適用領(lǐng)域。
最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求和說明書的范圍當(dāng)中。