本發(fā)明涉及計(jì)算機(jī)客戶端技術(shù)領(lǐng)域,具體涉及一種對(duì)計(jì)算機(jī)客戶端信息安全輸入的方法。
背景技術(shù):
隨著科技的發(fā)展,計(jì)算機(jī)在很多領(lǐng)域都得到廣泛應(yīng)用,由于目前計(jì)算機(jī)輸入涉及到用戶的隱私信息,在各種復(fù)雜的環(huán)境中無(wú)法保證用戶信息的安全性;不法分子可以通過多種方式在用戶輸入信息和傳輸信息的過程中竊取用戶的信息。因此,信息加密,尤其是一種對(duì)計(jì)算機(jī)輸入信息的加密保護(hù)研究具有非常重要的意義。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是提供一種對(duì)計(jì)算機(jī)客戶端信息安全輸入的方法。
為實(shí)現(xiàn)本發(fā)明的目的,本發(fā)明所采用的技術(shù)方案是:
一種對(duì)計(jì)算機(jī)客戶端信息安全輸入的方法,包括計(jì)算機(jī)客戶端,具體實(shí)現(xiàn)步驟為:(1)在計(jì)算機(jī)客戶端上用戶選擇;(2)計(jì)算機(jī)客戶端的鍵盤的按鍵值順序布局或者亂序布局;(3)用戶輸入信息;(4)用戶發(fā)送信息;(5)DES加密;(6)網(wǎng)絡(luò)傳輸;(7)計(jì)算機(jī)服務(wù)器接受信息;(8)DES解密;(9)計(jì)算機(jī)服務(wù)器校驗(yàn)信息。
進(jìn)一步的,所述步驟(2)為鍵盤的按鍵值的位置每次在鍵盤上的排列順序都是隨機(jī)的或者順序的,具體實(shí)現(xiàn)方法是:首先定義一個(gè)數(shù)組,根據(jù)電路板原理和數(shù)碼管的顯示數(shù)據(jù),定義0到9和A到Z的顯示數(shù)據(jù)編碼,然后再定義兩個(gè)數(shù)組,分別用于存放鍵盤值和數(shù)碼管的顯示編碼;然后用隨機(jī)函數(shù)rand()和srand()對(duì)以上數(shù)據(jù)進(jìn)行從新排序;每一次隨機(jī)的是第一個(gè)數(shù)據(jù)的下標(biāo);第一次產(chǎn)生是從0-9之間進(jìn)行產(chǎn)生,這樣產(chǎn)生的數(shù)據(jù)和最后一位進(jìn)行交換,對(duì)產(chǎn)生的隨機(jī)數(shù)據(jù)序列對(duì)應(yīng)數(shù)碼管的編碼,就是最終的顯示數(shù)據(jù);最后根據(jù)具體顯示的那個(gè)數(shù)據(jù)去對(duì)照數(shù)碼管的編碼,實(shí)現(xiàn)數(shù)據(jù)的顯示,同時(shí)根據(jù)顯示的數(shù)據(jù)在鍵盤值數(shù)組對(duì)應(yīng)的位置設(shè)置對(duì)應(yīng)的值。
進(jìn)一步的,所述DES加密由加密處理,加密變換和子密鑰生成組成。
進(jìn)一步的,所述加密處理具體實(shí)現(xiàn)方法為:(1)首先對(duì)64位的明文按初始換位表IP進(jìn)行變換,例如輸入的第58位,在輸出的時(shí)候被置換到第1位;輸入的是第7位,在輸出時(shí)被置換到第64位;(2)對(duì)上述換位處理的輸出經(jīng)過16輪加密變換的加密處理,初始換位的64位的輸出作為下一次的輸入,將64位分為左、右兩個(gè)32位,分別記為L(zhǎng)0和R0,從L0、R0到L16、R16,共進(jìn)行16輪加密變換;其中,經(jīng)過n輪處理后的點(diǎn)左右32位分別為L(zhǎng)n和Rn,可做如下定義:
Ln=Rn-1
Rn=Ln-1
其中,kn是向第n輪輸入的48位的子密鑰,Ln-1和Rn-1分別是第n-1輪的輸出,f是Mangler函數(shù);
(3)進(jìn)行16輪的加密變換之后,將L16和R16合成64位的數(shù)據(jù),再進(jìn)行IP-1的換位,得到64位的密文。
加密變換具體為:通過重復(fù)某些位將32位的右半部分按照擴(kuò)展表3擴(kuò)展換位表擴(kuò)展為48位,而56位的密鑰先移位然后通過選擇其中的某些位減少至48位,48位的右半部分通過異或操作和48位的密鑰結(jié)合,并分成6位的8個(gè)分組,通過8個(gè)S盒將這48位替代成新的32位數(shù)據(jù),再將其置換一次。
子密鑰生成具體為輸入的64位密鑰,通過壓縮換位PC-1去掉每個(gè)字節(jié)的第8位,用作奇偶校驗(yàn),減至密鑰長(zhǎng)度為56位,每層分成兩部分,上部分28位為C0,下部分為D0,C0和D0依次進(jìn)行循環(huán)左移操作生成了C1和D1,將C1和D1合成56位,再通過壓縮換位PC-2輸出48位的子密鑰K1,再將C1和D1進(jìn)行循環(huán)左移和PC-2壓縮換位,得到子密鑰K2......以此類推,得到16個(gè)子密鑰。
進(jìn)一步的,所述S盒輸入6位,輸出4位,一個(gè)S盒中具有4種替換表(行號(hào)用0、1、2、3表示),通過輸入的6位的開頭和末尾兩位選定行,然后按選定的替換表將輸入的6位的中間4位進(jìn)行替代。
所述DES解密具體為:數(shù)據(jù)傳輸?shù)侥繕?biāo)機(jī)之后再根據(jù)密鑰key進(jìn)行解密,DES解密算法和DES加密算法相同,密鑰倒序即可,最后得到正確的輸入信息。
DES算法加密的關(guān)鍵代碼為:
本發(fā)明提供的一種對(duì)計(jì)算機(jī)客戶端信息安全輸入的方法,本發(fā)明采用鍵盤順序布局或亂序布局、DES加密方法和新的設(shè)計(jì)理念,來(lái)實(shí)現(xiàn)計(jì)算機(jī)用戶信息輸入的信息更加安全;可以應(yīng)用各個(gè)行業(yè)中行業(yè),是一種十分安全的用戶信息輸入;本發(fā)明提供了一種現(xiàn)實(shí)可行的解決方案,具有很好的推廣使用價(jià)值。
具體實(shí)施方式
下列對(duì)本發(fā)明的實(shí)施作進(jìn)一步的說明,以便本領(lǐng)域的技術(shù)人員能夠更好的理解并實(shí)施。
實(shí)施例1
一種對(duì)計(jì)算機(jī)客戶端信息安全輸入的方法,具體實(shí)現(xiàn)步驟為:(1)在計(jì)算機(jī)客戶端上用戶選擇;(2)計(jì)算機(jī)客戶端的鍵盤的按鍵值順序布局或者亂序布局;(3)用戶輸入信息;(4)用戶發(fā)送信息;(5)DES加密;(6)網(wǎng)絡(luò)傳輸;(7)計(jì)算機(jī)服務(wù)器接受信息;(8)DES解密;(9)計(jì)算機(jī)服務(wù)器校驗(yàn)信息。
步驟(2)為鍵盤的按鍵值的位置每次在鍵盤上的排列順序都是隨機(jī)的或者順序的:首先定義一個(gè)數(shù)組,根據(jù)電路板原理和數(shù)碼管的顯示數(shù)據(jù),定義0到9和A到Z的顯示數(shù)據(jù)編碼,然后再定義兩個(gè)數(shù)組,分別用于存放鍵盤值和數(shù)碼管的顯示編碼;然后用隨機(jī)函數(shù)rand()和srand()對(duì)以上數(shù)據(jù)進(jìn)行從新排序;由于本身芯片的資源和速度以及本身產(chǎn)品要求顯示的實(shí)時(shí)性,在這個(gè)排序過程中,對(duì)產(chǎn)生隨機(jī)數(shù)進(jìn)行了改造,每一次隨機(jī)的是第一個(gè)數(shù)據(jù)的下標(biāo);第一次產(chǎn)生是從0-9之間進(jìn)行產(chǎn)生,這樣產(chǎn)生的數(shù)據(jù)和最后一位進(jìn)行交換,這樣每遍歷一次就會(huì)少一個(gè)值,這樣就不會(huì)產(chǎn)生重復(fù)數(shù)據(jù)的機(jī)會(huì),也就保證了速度。對(duì)產(chǎn)生的隨機(jī)數(shù)據(jù)序列對(duì)應(yīng)數(shù)碼管的編碼,就是最終的顯示數(shù)據(jù);最后根據(jù)具體顯示的那個(gè)數(shù)據(jù)去對(duì)照數(shù)碼管的編碼,實(shí)現(xiàn)數(shù)據(jù)的顯示,同時(shí)根據(jù)顯示的數(shù)據(jù)在鍵盤值數(shù)組對(duì)應(yīng)的位置設(shè)置對(duì)應(yīng)的值,以便在用戶輸入信息能夠正確發(fā)送出去。
DES加密(DES(key1,加密)DES(key2,解密)DES(key1,加密))由加密處理,加密變換和子密鑰生成組成。加密處理具體實(shí)現(xiàn)方法為:(1)首先對(duì)64位的明文按初始換位表IP進(jìn)行變換,例如輸入的第58位,在輸出的時(shí)候被置換到第1位;輸入的是第7位,在輸出時(shí)被置換到第64位;(2)對(duì)上述換位處理的輸出經(jīng)過16輪加密變換的加密處理,初始換位的64位的輸出作為下一次的輸入,將64位分為左、右兩個(gè)32位,分別記為L(zhǎng)0和R0,從L0、R0到L16、R16,共進(jìn)行16輪加密變換;其中,經(jīng)過n輪處理后的點(diǎn)左右32位分別為L(zhǎng)n和Rn,可做如下定義:
Ln=Rn-1
Rn=Ln-1
其中,kn是向第n輪輸入的48位的子密鑰,Ln-1和Rn-1分別是第n-1輪的輸出,f是Mangler函數(shù);
(3)進(jìn)行16輪的加密變換之后,將L16和R16合成64位的數(shù)據(jù),再進(jìn)行IP-1的換位,得到64位的密文。
加密變換具體為:通過重復(fù)某些位將32位的右半部分按照擴(kuò)展表3擴(kuò)展換位表擴(kuò)展為48位,而56位的密鑰先移位然后通過選擇其中的某些位減少至48位,48位的右半部分通過異或操作和48位的密鑰結(jié)合,并分成6位的8個(gè)分組,通過8個(gè)S盒將這48位替代成新的32位數(shù)據(jù),再將其置換一次。S盒輸入6位,輸出4位,一個(gè)S盒中具有4種替換表(行號(hào)用0、1、2、3表示),通過輸入的6位的開頭和末尾兩位選定行,然后按選定的替換表將輸入的6位的中間4位進(jìn)行替代。
子密鑰生成具體為輸入的64位密鑰,通過壓縮換位PC-1去掉每個(gè)字節(jié)的第8位,用作奇偶校驗(yàn),減至密鑰長(zhǎng)度為56位,每層分成兩部分,上部分28位為C0,下部分為D0,C0和D0依次進(jìn)行循環(huán)左移操作生成了C1和D1,將C1和D1合成56位,再通過壓縮換位PC-2輸出48位的子密鑰K1,再將C1和D1進(jìn)行循環(huán)左移和PC-2壓縮換位,得到子密鑰K2......以此類推,得到16個(gè)子密鑰。
DES解密具體為:數(shù)據(jù)傳輸?shù)侥繕?biāo)機(jī)之后再根據(jù)密鑰key進(jìn)行解密(DES(key1,解密)DES(key2,加密)DES(key1,解密)),DES解密算法和DES加密算法相同,密鑰倒序即可,最后得到正確的輸入信息。
DES算法加密的關(guān)鍵代碼為:
加密的關(guān)鍵代碼為:
SymmetricStreamDecryptor ssd=des.CreateDecryptor();
cms=new CryptoMemoryStream();
ssd.SetSink(cms);
ssd.Write(encryptedData);
ssd.CloseStream();
byte[]decryptedData=cms.Data;
char[]decryptedCharArray=
utf8Encoding.GetChars(decryptedData);
Console.WriteLine("解密后數(shù)據(jù):");
Console.Write(decryptedCharArray);
Console.WriteLine();}
}。