一種基于3d建模的防泄漏密鑰加密方法
【技術領域】
[0001]本發(fā)明涉及計算機信息安全技術領域,特別涉及一種基于3D建模的防泄漏密鑰加密方法。
【背景技術】
[0002]隨著網(wǎng)絡與信息技術的不斷發(fā)展,信息安全已經(jīng)成為社會關注的焦點,而作為信息安全核心的加密技術,也在不斷的推成出新。對稱加密以其加密解密速度快的特性,被廣泛用于大數(shù)據(jù)量的保密通信中,但對稱加密有一個不可控的缺陷,一旦由于人為的疏忽或故意,亦或是黑客盜取造成密鑰的泄漏,則通信不再安全,對通信雙方的打擊將是毀滅性的。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的在于克服現(xiàn)有技術的不足,提出一種基于3D建模的防泄漏密鑰加密方法,可有效防止密鑰泄漏。
[0004]本發(fā)明解決其技術問題所采用的技術方案是:
[0005]一種基于3D建模的防泄漏密鑰加密方法,包括如下步驟:
[0006]步驟11:通信雙方約定一個元子隨機分布的三維空間和一個存有若干空間坐標的初始密鑰,所述三維空間固化于密鑰生成器中,所述初始密鑰以文本的形式存儲;
[0007]步驟12:通信雙方讀取所述初始密鑰中的坐標并告知密鑰生成器,密鑰生成器從各個元子獲得數(shù)據(jù),進而獲得真實的初始密鑰;
[0008]步驟13:通信雙方利用所述真實初始密鑰加密一些隨機數(shù)據(jù)進行握手,若握手成功,執(zhí)行步驟14,否則結(jié)束加密通信;
[0009]步驟14:通信雙方約定一種處于所述三維空間里的3D建模方式并告知密鑰生成器,密鑰生成器在其內(nèi)部完成建模,處于模型內(nèi)的作為有效數(shù)據(jù),處于模型外的作為冗余數(shù)據(jù),并建立數(shù)據(jù)和坐標之間的雙向映射關系;
[0010]步驟15:加密時,加密方的密鑰生成器每次隨機選擇若干模型內(nèi)的元子,將其數(shù)據(jù)組成第一密鑰,同時在模型外選擇若干元子,作為冗余數(shù)據(jù),將其冗余數(shù)據(jù)插入到第一密鑰中,形成第二密鑰,然后根據(jù)所述映射關系將第二密鑰的數(shù)據(jù)轉(zhuǎn)換為空間坐標獲得第三密鑰,將第一密鑰和第三密鑰通知用戶,用戶利用第一密鑰對明文進行加密,然后丟棄第一密鑰,通信時,將第三密鑰與密文一同發(fā)送;
[0011]步驟16:解密時,解密方的密鑰生成器根據(jù)收到的第三密鑰中的坐標從三維空間中找到與坐標對應的元子,若該坐標處于模型內(nèi),則為有效數(shù)據(jù),取出元子的數(shù)據(jù);若該坐標處于模型外,則為冗余數(shù)據(jù),直接丟棄,從而還原出第一密鑰,用戶利用第一密鑰解密,最終獲得明文。
[0012]所述三維空間由元子構(gòu)成,每一個元子具有一個唯一的空間坐標和一個可重復的數(shù)據(jù)。
[0013]所述映射關系是一種Key-Value鍵值對,以元子的數(shù)據(jù)作為Key,所有包含該數(shù)據(jù)的元子的坐標作為Value。
[0014]通信時,加密方可隨時通知解密方更換建模方式,建模方式不同時,同樣的坐標可能為有效數(shù)據(jù),也有可能為冗余數(shù)據(jù)。
[0015]本發(fā)明提供的技術方案帶來的有益效果是:
[0016]1、用戶無法訪問三維空間,不存在泄漏;
[0017]2、存有初始密鑰的授權文件即使泄漏也可以保障通信安全;
[0018]3、同一數(shù)據(jù)可以映射不同的坐標,所以即使是相同的密鑰,其轉(zhuǎn)換出的結(jié)果也不是唯一的,難以破解;
[0019]4、隨機插入冗余數(shù)據(jù),破解方難以分辨有效數(shù)據(jù)和冗余數(shù)據(jù),無法還原出真實密鑰,難以破解。
[0020]5、建模方式可由通信雙方隨時約定更換,難以破解。
[0021]以下結(jié)合附圖及實施例對本發(fā)明作進一步詳細說明,但本發(fā)明的一種基于3D建模的防泄漏密鑰加密方法不局限于實施例。
【附圖說明】
[0022]圖1為本發(fā)明方法的主流程圖;
[0023]圖2為本發(fā)明方法的三維空間構(gòu)成圖;
[0024]圖3為本發(fā)明方法加解密通信簡要框圖。
【具體實施方式】
[0025]參見圖1,本發(fā)明的一種基于3D建模的防泄漏密鑰加密方法,包括如下步驟:
[0026]步驟11:加密通信前,通信雙方約定一個元子隨機分布的三維空間和一個存有若干空間坐標的初始密鑰所述三維空間固化于密鑰生成器中,所述初始密鑰以文本的形式存儲;
[0027]本實施例中,所述三維空間由元子構(gòu)成,如圖2所示,每一個元子具有一個唯一的空間坐標和一個可重復的數(shù)據(jù)。具體的,三維空間XYZ,例如256*256*256上分布有若干元子,由這些元子(16777216個)構(gòu)成一個三維空間,每一個元子具有一個唯一的空間地址或坐標(X,y, z),以及一個數(shù)據(jù)η,η的取值范圍為0x000000?OxFFFFFF,n可唯一,亦可重復。在加密通信前,通信雙方會有一個事先約定的且不通過網(wǎng)絡發(fā)送的各元子隨機分布的三維空間,以及一個存有若干空間坐標的初始密鑰。三維空間固化于密鑰生成器中,用戶無法獲取該三維空間,在加密通信時由密鑰生成器生成密鑰,而初始密鑰通過授權文件的形式發(fā)放。
[0028]步驟12:握手前,通信雙方讀取所述初始密鑰中的坐標并告知密鑰生成器,密鑰生成器從各個元子獲得數(shù)據(jù),進而獲得真實的初始密鑰;
[0029]步驟13:通信雙方利用所述真實初始密鑰加密一些隨機數(shù)據(jù)進行握手,若握手成功,執(zhí)行步驟14,否則結(jié)束加密通信;
[0030]本實施例中,通信雙方進行握手的步驟包括:
[0031]步驟131:通信方A使用真實的初始密鑰加密隨機生成的若干數(shù)據(jù),并發(fā)送給通信方B,通信方B使用真實的初始密鑰對收到的密文進行解密,獲得明文,然后將獲得的明文進行一次MD5,再利用真實的初始密鑰加密后發(fā)送給通信方A,通信方A解密收到的密文,和已保存的數(shù)據(jù)(之前生成的隨機數(shù)據(jù)經(jīng)過一次MD5)進行比較,若相同,執(zhí)行步驟132,否則握手失敗,結(jié)束加密通信;
[0032]步驟132:通信方A選擇一種3D建模方式并建立模型,使用真實的初始密鑰將建模方法加密后發(fā)送給通信方B,通信方B使用真實的初始密鑰解密建模方法并建立模型,將加密后的建模結(jié)果(如模型超出了三維空間范圍將會導致失敗)發(fā)送給通信方A,若建模成功,執(zhí)行步驟133,否則握手失敗,結(jié)束加密通信;
[0033]步驟133:通信方A再隨機生成一些數(shù)據(jù),選擇若干模型內(nèi)的元子,將其數(shù)據(jù)組成密鑰KEY1’同時在模型外選擇若干元子,作為冗余數(shù)據(jù),將其數(shù)據(jù)插入到KEY1’中,形成密鑰KEY2’,然后根據(jù)映射關系將密鑰KEY2’的數(shù)據(jù)轉(zhuǎn)換為空間坐標獲得密鑰KEY3’,利用密鑰KEY1’對隨機生成的數(shù)據(jù)進行加密,然后丟棄密鑰KEY1’,通信時,將密鑰KEY3’與密文發(fā)送給通信方B,通信方B使用密鑰K