专利名称:一种对云计算业务智能终端用户信息安全输入的方法
技术领域:
本发明涉及ー种云计算终端领域技术,具体地说是ー种对云计算业务智能終端用户信息安全输入的方法。
背景技术:
随着科技的发展,云计算在很多领域开始 得到广泛应用,随着云计算的发展,对云计算的終端设备在性能、安全性和用户体验性上提出了更高的要求,由于目前云终端领域会涉及到用户的隐私信息,但是当前各种终端设备在安全保密工作上做的不是很完善。由于目前云计算业务智能終端处于刚刚起步和分散状态,在各种复杂的环境中无法保证用户信息的安全性;通常采用的方式是加装摄像头和用户自己加强防范意识,而采用这种方法有几种弊端,一是可以通过观察用户按键的位置猜测用户的信息,ニ是通过用户按键的声音窃取用户的信息,三是通过网络窃取用户信息。
发明内容
本发明的技术任务是提供一种在云終端设备上新的设计流程、方法、键盘乱序和加密方法,使用户的敏感信息得到更好的保护的ー种对云计算业务智能終端用户信息安全输入的方法。本发明的技术任务是按以下方式实现的,包括云计算业务智能終端,该方法的用户信息安全输入的流程为在云计算业务智能終端上用户选择一云计算业务智能終端的键盘的按键值顺序布局或者乱序布局一用户输入信息一用户发送信息一DES加密一网络传输一云服务器接受信息一DES解密一云服务器校验信息;
(1)、云计算业务智能终端的键盘的按键值顺序布局或者乱序布局,即键盘的按键值的位置毎次在键盘上的排列顺序都是随机的或者是顺序的,具体实现方法
首先定义ー个数组,根据电路板原理和数码管的显示数据,定义O到9和A到Z的显示数据编码,然后再定义两个数组,分别用于存放键盘值和数码管的显示编码;
然后用随机函数rand ()和srand ()对以上数据进行从新排序;由于本身芯片的资源和速度以及本身产品要求显示的实时性,在这个排序过程中,对产生随机数进行了改造,每一次随机的是第一个数据的下标;第一次产生是从0-9之间进行产生,这样产生的数据和最后一位进行交換,这样每遍历一次就会少ー个值,这样就不会产生重复数据的机会,也就保证了速度。对产生的随机数据序列对应数码管的编码,就是最終的显示数据;
最后根据具体显示的那个数据去对照数码管的编码,实现数据的显示,同时根据显示的数据在键盘值数组对应的位置设置对应的值,以便在用户输入信息能够正确发送出去;
(2)、DES加密(DES(keyl,加密)DES(key2,解密)DES(keyl,加密)),DES加密首先取得64位的密钥,然后去掉奇偶校验位得到56为密钥,然后对56位密钥分为两组,得到28位子密钥,然后对子密钥进行移位操作,然后再进行S盒和P盒置换得到48位密钥,经过16轮后,最后进行一次末置換,形成密文;
DES解密数据传输到目标机之后再根据密钥key进行解密,(DES(keyl,解密)DES(key2,加密)DES(keyl,解密)),DES解密算法和DES加密算法相同,密钥倒序即可,最后得到正确的输入信息。
云计算业务智能终端的键盘的按键值顺序布局或者乱序布局中随机键盘关键代码
为
Il随机键盘
Il交换a和b的值
void swap (,unsigned cnar 氺a, unsigned char *b)
{
unsigned char temp;temp =氺a;
= ;
氺b = temp;
}
void ran_keyboard()
{
int i;
Il产生0-9不重复的随机数unsigned char a[10];for (i=0; i〈10; i++)
{
a[i]=i;
}
for (i=10; i>=l;i—)
{
swap (&a[i_l],&a[rand()%i]);
}
}
unsigned char bool=0;void Check_Key(void)
{
unsigned char row,col, tmpl, tmp2;
tmpl = 0x01;//tmpl用来设置Pl ロ的输出,取反后使PL ΓΡ1. 7中
有ー个为O
for (row=0; row<4; row++) // 行检测
{
Pl = OxfO;Il 先将 pi. 4 Ρ1· 7 置高Pl =^tmpl;// 使 PI. 4 pl. 7 中有ー个为 O
tmpl*=2;H tmpl 左移一位
if ((Pi & OxfO) < OxfO) // 检测 pi. (Tpl 3 中是否有一位为 0,只要有,则说明此行有键按下,进入列检测
{
tmp2 = 0x10; // tmp2用于检测出哪一列为O for (col =0 ; col<4; col++) // 列检测
{
if ((Pl & tmp2) ==0x00) //该列如果为低电平则可以判定为该列
{
key_val =key_Map [ row*4 +col ] ; // 获取键值,识别按键;key_
Map为按键的定义表
/
if (ke y_vaI==KEY_VALUE_RAND_NORMAL| |key_val==KEY_VALUE_
ENTER)
{
if(key_val==KEY_VALUE_ENTER)
{
send_UART(0x80); send_UART(OxEO); send_UART(0xD3); send_UART(0x07); send_UART(OxOF); send_UART(key_val); send_UART(OxFF); bool=l;
}
if (bool==0)
{
ran_keyboardU ;bool=l;
RingO ;
while ((PI & tmp2)==0x00)
Displayl ();
RingssO ; //延迟函数 RingssO ; //延迟函数 return; //退出循环
}
else{
key_Map
=0x02; key_Map[I]=0x05; key_Map[2]=0x08; key_Map[3]=0x00; key_Map[4]=0x01; key_Map[5]=0x04; key_Map[6]=0x07; key_Map[7]=KEY_VALUE_DOT; key_Map[8]=KEY_VALUE_RAND_NORMAL; key_Map[9]=KEY_VALUE_PAGE_UP; key_Map[10]=KEY_VALUE_PAGE_DOWN; key_Map[11]=KEY_VALUE_CANCEL; key_Map[12]=0x03; key_Map[13]=0x06; key_Map[14]=0x09; key_Map[15]=KEY_VALUE_ENTER; RingO ;
while ((PI & tmp2)==0x00)
Displayl ();
RingssO ; //延迟函数RingssO ; //延迟函数bool=0;
return; //退出循环
}
}
else
{
send_UART(0x80); send_UART(OxEO); send_UART(0xD3); send_UART(0x07); send_UART(OxOF); send_UART(key_val); send_UART(OxFF);
RingO ;
while ((PI & tmp2)==0x00) Displayl ();
RingssO ; //延迟函数RingssO ; //延迟函数 return; //退出循环
}
}
tmp2*=2;// tmp2 左移一位
}
}
}、
}
DES加密与DES解密的关键代码为
#dei me Bit Transform (array, Ienj source, dest)
{
—int64 bts = source; int bti; dest = 0;
for (bti = 0; bti < len; bti++)
{
if (array[bti] >= 0 && (bts & g—arrayMask[array[bti]]))
{
dest I= g—arrayMask[bti];
}
}
}
—int64 DES64 (—int64 subkeys[16],—int64 data)
{
static —int64 out; static —int64 source; static —int64 L, R; static —int32 * pSource; static char 氺 pR; static int i; static —int32 SOut; static —int32 t; static int sbi; pSource = (—int32 *)&out; pR = (char *)&R;
卜IP变换*/
{BitTransform(g_arrayIP, 64, data, out);
}
/*主迭代*/
{
//source = out;
for(i = 0; i〈 16; i++)
{
R = pSource[I];
/* F变换开始*/
{
/* E变换*/
{
BitTransform(g_arrayE, 64, R, R);
}
/*与子密钥异或*/
R = subKeys[i];
/* S盒变换*/
{
SOut = O;
for (sbi = 7; sbi >= O; sbi—)
{
SOut くく= 4;
SOut I= g_matrixNSBox[sbi][pR[sbi]];
}
R = SOut;
}
/* P变换*/
{
BitTransform(g_arrayP, 32, R, R);
}
}
/* f变换完成*/
L = pSource[O];
pSource[O」=pSource[I」; pSource [I] = (—int32)(L ' R);
}
/*交換高低32位*/
{
t = pSource[O];pSource[O] = pSource[I];pSource[I] = t;
}
}
/* IP-I 变换 */
{
BitTransform(g_arrayIP_1, 64, out, out);
} return out;
しDES (英文Data Encryption Standard的简称)加密算法,于1977年得到美国政府的正式许可,是ー种用56位密钥来加密64位数据的方法。本发明的ー种对云计算业务智能終端用户信息安全输入的方法具有以下优点
1、采用键盘顺序布局或乱序布局、DES加密方法和新的设计理念,来智能实现云終端,使用户信息的信息更加安全;
2、可以应用到银行、税务、股市、商检、邮电、政务等行业,是ー种十分安全的用户信息输入外设;
3、为研制商业云计算业务智能終端特别是对复杂业务工作环境有严格保密性要求的云终端产品,在现有商业级芯片情况下,提供一种现实可行的解决方案,因而,具有很好的推广使用价值。
下面结合附图对本发明进ー步说明。附图I为ー种对云计算业务智能終端用户信息安全输入的方法的用户信息安全输入的流程图。
具体实施例方式參照说明书附图和具体实施例对本发明的ー种对云计算业务智能終端用户信息安全输入的方法作以下详细地说明。实施例
本发明的ー种对云计算业务智能終端用户信息安全输入的方法,包括云计算业务智能終端,其特征在于该方法的用户信息安全输入的流程为在云计算业务智能終端上用户选择一云计算业务智能终端的键盘的按键值顺序布局或者乱序布局一用户输入信息一用户发送信息一DES加密一网络传输一云服务器接受信息一DES解密一云服务器校验信息;
(I)、云计算业务智能终端的键盘的按键值顺序布局或者乱序布局,即键盘的按键值的位置毎次在键盘上的排列顺序都是随机的或者是顺序的,具体实现方法
首先定义ー个数组,根据电路板原理和数码管的显示数据,定义O到9和A到Z的显示数据编码,然后再定义两个数组,分别用于存放键盘值和数码管的显示编码;
然后用随机函数rand ()和srand ()对以上数据进行从新排序;由于本身芯片的资源和速度以及本身产品要求显示的实时性,在这个排序过程中,对产生随机数进行了改造,每一次随机的是第一个数据的下标;第一次产生是从0-9之间进行产生,这样产生的数据和最后一位进行交換,这样每遍历一次就会少ー个值,这样就不会产生重复数据的机会,也就保证了速度。对产生的随机数据序列对应数码管的编码,就是最終的显示数据;
最后根据具体显示的那个数据去对照数码管的编码,实现数据的显示,同时根据显示的数据在键盘值数组对应的位置设置对应的值,以便在用户输入信息能够正确发送出去;
(2)、DES加密(DES(keyl,加密)DES(key2,解密)DES(keyl,加密)),DES 加密首先取得64位的密钥,然后去掉奇偶校验位得到56为密钥,然后对56位密钥分为两组,得到28位子密钥,然后对子密钥进行移位操作,然后再进行S盒和P盒置换得到48位密钥,经过16轮后,最后进行一次末置換,形成密文;
DES解密数据传输到目标机之后再根据密钥key进行解密,(DES(keyl,解密)DES(key2,加密)DES(keyl,解密)),DES解密算法和DES加密算法相同,密钥倒序即可,最后得到正确的输入信息。
云计算业务智能终端的键盘的按键值顺序布局或者乱序布局中随机键盘关键代码
为
Il随机键盘 Il交换a和b的值
void swap (,unsigned cnar 氺a, unsigned char *b)
{
unsigned char temp;temp =氺a;
= ;
氺b = temp;
}
void ran_keyboard()
{
int i;
Il产生0-9不重复的随机数unsigned char a[10];for (i=0; i〈10; i++)
{
a[i]=i;
}
for (i=10; i>=l;i—)
{
swap (&a[i_l],&a[rand()%i]);
}
}unsigned char bool=0;void Check—Key(void)
{
unsigned char row,col,tmpl,tmp2;
tmpl = 0x01;//tmpl用来设置Pl ロ的输出,取反后使PL 4 P1. 7中
有ー个为O
for (row=0; row<4; row++) // 行检测
{
Pl = OxfO;Il 先将 pi. 4 Ρ1· 7 置高
Pl =^tmpl;// 使 PI. 4、1. 7 中有ー个为 O
tmpl*=2;H tmpl 左移一位
if ((Pi & OxfO) < OxfO) // 检测 pi. (Tpl 3 中是否有一位为 0,只要有,则说明此行有键按下,进入列检测
{
tmp2 = 0x10; // tmp2用于检测出哪一列为O for (col =0; col<4; col++) // 列检测
{
if ((Pl & tmp2) ==0x00) //该列如果为低电平则可以判定为该列
{
key_val =key_Map [ row*4 +col ] ; // 获取键值,识别按键;key_
Map为按键的定义表
/
if (key_val==KEY_VALUE_RAND_NORMAL| |key_val==KEY_VALUE_
ENTER)
{
if (key_val==KEY_VALUE_ENTER)
{
send_UART(0x80); send_UART(OxEO); send_UART(0xD3); send_UART(0x07); send_UART(OxOF); send_UART(key_val); send_UART(OxFF); bool=l;
}
if(bool==0)
{
ran_keyboardU ;bool=l;
RingO ;
while ((PI & tmp2)==0x00)
Displayl ();
RingssO ; //延迟函数RingssO ; //延迟函数return; //退出循环 }
else
{
key_Map[O]=0x02; key_Map[I]=0x05; key_Map[2]=0x08; key_Map[3]=0x00; key_Map[4]=0x01; key_Map[5]=0x04; key_Map[6]=0x07; key_Map[7]=KEY_VALUE_D0T; key_Map[8]=KEY_VALUE_RAND_NORMAL; key_Map[9]=KEY_VALUE_PAGE_UP; key_Map[10]=KEY_VALUE_PAGE_DOWN; key_Map[11]=KEY_VALUE_CANCEL; key_Map[12]=0x03; key_Map[13]=0x06; key_Map[14]=0x09; key_Map[15]=KEY_VALUE_ENTER; RingO ;
while ((PI & tmp2)==0x00)
Displayl ();
RingssO ; //延迟函数RingssO ; //延迟函数bool=0;
return; //退出循环
}
}
else
{
send_UART(0x80); send_UART(OxEO);send_UART(0xD3); send_UART(0x07); send_UART(OxOF); send_UART(key_val); send_UART(OxFF);
RingO ;
while ((PI & tmp2)==0x00)
Displayl ();
RingssO ; //延迟函数 RingssO ; //延迟函数 return; //退出循环
}
}
tmp2*=2;// tmp2 左移一位
}
}
}
し
DES加密与DES解密的关键代码为
#detme Bit Transform (array, len, source, dest)
{
—int64 bts = source; int bti; dest = 0;
for (bti = 0; bti < len; bti++)
{
if (array[bti] >= 0 && (bts & g_arrayMask[array[bti]]))
{
dest I= g_arrayMask[bti];
}
}
}
—int64 DES64(—int64 subkeys[16], —int64 data)
{static —int64 out; static —int64 source; static —int64 L, R; static —int32 * pSource;static char 氺 pR;
static int i;
static —int32 SOut;
static —int32 t;
static int sbi;
pSource = (—int32 *)&out;
pR = (char *)&R;
/* IP变换*/
{
BitTransform(g—arrayIP,64,data, out);
}
Λ主迭代*/
{
//source = out;
for(i = 0; i〈 16; i++)
{
R = pSource[I];
Λ F变换开始*/
{
卜E变换*/
{
BitTransform(g—arrayE,64,R,R);
}
卜与子密钥异或*/
R "= subkeys[i];
/* S盒变换*/
{
SOut = O;
for (sbi = 7; sbi >= O; sbi—)
{
SOut <<= 4;
SOut I= g_matrixNSBox[sbi][pR[sbi]];
}
R = SOut;
}
/* P变换*/
{
BitTransform(g_arrayP, 32, R, R);
}
权利要求
1.一种对云计算业务智能终端用户信息安全输入的方法,包括云计算业务智能终端,其特征在于该方法的用户信息安全输入的流程为在云计算业务智能终端上用户选择一云计算业务智能终端的键盘的按键值顺序布局或者乱序布局一用户输入信息一用户发送信息一DES加密一网络传输一云服务器接受信息一DES解密一云服务器校验信息; (1)、云计算业务智能终端的键盘的按键值顺序布局或者乱序布局,即键盘的按键值的位置每次在键盘上的排列顺序都是随机的或者是顺序的,具体实现方法 首先定义一个数组,根据电路板原理和数码管的显示数据,定义O到9和A到Z的显示数据编码,然后再定义两个数组,分别用于存放键盘值和数码管的显示编码; 然后用随机函数rand ()和srand ()对以上数据进行从新排序;每一次随机的是第一个数据的下标;第一次产生是从0-9之间进行产生,这样产生的数据和最后一位进行交换,对产生的随机数据序列对应数码管的编码,就是最终的显示数据; 最后根据具体显示的那个数据去对照数码管的编码,实现数据的显示,同时根据显示的数据在键盘值数组对应的位置设置对应的值; (2)、DES加密DES加密首先取得64位的密钥,然后去掉奇偶校验位得到56为密钥,然后对56位密钥分为两组,得到28位子密钥,然后对子密钥进行移位操作,然后再进行S盒和P盒置换得到48位密钥,经过16轮后,最后进行一次末置换,形成密文; DES解密数据传输到目标机之后再根据密钥key进行解密,DES解密算法和DES加密算法相同,密钥倒序即可,最后得到正确的输入信息。
全文摘要
本发明公开了一种对云计算业务智能终端用户信息安全输入的方法,属于一种云计算终端领域技术,包括云计算业务智能终端,该方法的用户信息安全输入的流程为在云计算业务智能终端上用户选择→云计算业务智能终端的键盘的按键值顺序布局或者乱序布局→用户输入信息→用户发送信息→DES加密→网络传输→云服务器接受信息→DES解密→云服务器校验信息。本发明的一种对云计算业务智能终端用户信息安全输入的方法,采用键盘顺序布局或乱序布局、DES加密方法和新的设计理念,来智能实现云终端,使用户信息的信息更加安全。
文档编号H04L9/06GK102662483SQ20121004652
公开日2012年9月12日 申请日期2012年2月28日 优先权日2012年2月28日
发明者于治楼, 李伟, 梁华勇, 郑亮 申请人:浪潮电子信息产业股份有限公司