本发明涉及信息安全技术领域,具体涉及一种数据加解密方法、设备和数据传输系统。
背景技术:
随着人们生活水平的不断提高,社会中私家车的数量越来越多,私家车的车主为了车辆的安全会选择停车场进行停车,且为了停车方便会办理相关的停车卡,停车的时候只需自助刷卡进场即可。在办理或使用停车卡的时候,车主的个人信息、车牌号码等车辆信息会一同登记并保存在停车卡停车场系统中,这样一些不法分子会在车主停车刷卡时,通过非法读写器截获或者克隆读写器传给服务器的停车卡中保存的车主信息、车牌号码等重要车辆信息,以进行不法行为。所以,为了确保停车场管理系统中存储如车牌号、车主信息等车辆信息不会被非法获取和克隆,避免系统被非法读写器攻击等,急需一种数据传输的保护方案进行安全防护。
技术实现要素:
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据加解密方法、设备和数据传输系统。
根据本发明的一个方面,提供了一种数据加密方法,所述方法包括:
发送方获取发送方当前的系统时钟;
发送方根据所述当前系统时钟以及从发送方本地保存的N个第一预置密钥中选择的一个第一预置密钥生成用于加密本次待传输数据的第二密钥;其中,N为大于等于1且小于等于60的正整数;
发送方利用所述第二密钥对本次待传输数据进行加密并将加密后的密文发送至接收方。
可选地,所述发送方根据所述当前系统时钟以及从发送方本地保存的多个第一预置密钥中选择的一个第一预置密钥生成用于加密本次待传输数据的第二密钥包括:
获取发送方当前的系统时钟key1;
计算所述key1的分钟部分与本地保存的第一预置密钥的数目N的余数,得到索引i,
利用所述索引i在本地保存的N个第一预置密钥中查找,得到对应的一个第一预置密钥key2[i];
将key1转换成日期字符串格式后与所述第一预置密钥key2[i]进行拼接,得到密钥组成因子a;
计算所述密钥组成因子a的消息摘要算法第五版MD5值,得到用于加密本次待传输数据的第二密钥。
可选地,该方法还包括:接收所述接收方定期或不定期发送的预置密钥更新指令,根据所述预置密钥更新指令从所述接收方获取新的第一预置密钥,并利用所述新的第一预置密钥替换所述发送方本地保存的旧的第一预置密钥。
可选地,该方法还包括:在利用所述新的第一预置密钥替换所述发送方本地保存的旧的第一预置密钥后,删除所述发送方本地保存的旧的第一预置密钥。
可选地,该方法还包括:发送方每次启动后与作为时钟源的接收方进行时钟同步。
根据本发明的另一个方面,提供了一种数据解密方法,该方法包括:
接收发送方发送的密文;
接收方获取接收方当前的系统时钟;
接收方根据所述当前系统时钟以及从接收方本地保存的N个第一预置密钥中选择的一个第一预置密钥生成用于解密所述密文的第二密钥;其中,N为大于等于1且小于等于60的正整数;
接收方利用所述第二密钥对所述密文进行解密。
可选地,所述接收方根据所述当前系统时钟以及从接收方本地保存的N个第一预置密钥中选择的一个第一预置密钥生成用于解密所述密文的第二密钥包括:
步骤A,接收方获取接收方当前的系统时钟key1;
步骤B,计算所述key1的分钟部分与本地保存的第一预置密钥的数目N的余数,得到索引i,
步骤C,利用所述索引i在本地保存的N个第一预置密钥中查找,得到对应的一个第一预置密钥key2[i];
步骤D,将key1转换成日期字符串格式后与所述第一预置密钥key2[i]进行拼接,得到密钥组成因子a;
步骤E,计算所述密钥组成因子a的消息摘要算法第五版MD5值,得到用于解密的第二密钥b;
所述接收方利用所述第二密钥对所述密文进行解密包括:
判断所述第二密钥b与接收到的所述发送方发送的密文中的密钥x是否一致,是则,确认数据传输成功;
否则,将当前的系统时钟key1减去1分钟后返回执行步骤B至步骤E,计算本次得到的第二密钥b1与所述发送方发送的密文中的密钥x是否一致,是则,确认数据传输成功;否则,确认解密失败。
根据本发明的又一个方面,提供了一种发送方设备,所述发送方设备包括:
时钟获取单元,用于获取发送方当前的系统时钟;
密钥生成单元,用于根据所述当前系统时钟以及从发送方本地保存的N个第一预置密钥中选择的一个第一预置密钥生成用于加密本次待传输数据的第二密钥;其中,N为大于等于1且小于等于60的正整数;
密文传输单元,用于利用所述第二密钥对本次待传输数据进行加密并将加密后的密文发送至接收方。
根据本发明的再一个方面,提供了一种接收方设备,所述接收方设备包括:
密文接收单元,用于接收发送方发送的密文;
接收方时钟获取单元,用于接收方获取接收方当前的系统时钟;
解密密钥生成单元,用于根据所述当前系统时钟以及从接收方本地保存的N个第一预置密钥中选择的一个第一预置密钥生成用于解密所述密文的第二密钥;其中,N为大于等于1且小于等于60的正整数;
解密单元,用于利用所述第二密钥对所述密文进行解密。
根据本发明的再一个方面,提供了一种数据传输系统,其特征在于,该数据传输系统包括:一个或多个如上所述的发送方设备以及如上所述的接收方设备。
本发明的有益效果是:本发明实施例的技术方案发送方根据获取的当前系统时钟以及从发送方本地保存的N个第一预置密钥将数据加密后发送给接收方,接收方根据当前系统时钟以及从接收方本地保存的N个第一预置密钥中选择一个符合接收到的密文的密钥,对密文进行解密以保护发送方和接收方之间数据传输的安全性。可见,本发明实施例中发送方发送给接收方的数据是经过密钥加密的,没有该密钥或者不知道加密方法的人员即使得到该加密密文,也无法获知密文的具体信息,可以确保发送方和接收方之间数据传输过程中不会被非法窃取,保证数据的安全性。在车主停车的过程中,应用本实施例的技术方案可以确保车主的信息例如车牌号、车主身份信息等车辆信息不会被非法获取和克隆,有效保护了车主用户的隐私,提升了停车场的安全性,优化了用户体验。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种数据加密方法的流程图;
图2示出了根据本发明一个实施例的一种数据解密方法的流程图;
图3示出了根据本发明一个实施例的一种发送方设备的结构示意图;
图4示出了根据本发明一个实施例的一种接收方设备的结构示意图;
图5示出了根据本发明一个实施例的一种数据传输系统的结构示意图。
具体实施方式
本发明的设计构思在于:为了确保发送方和接收方在传输诸如车牌号、车主信息等私密且重要的信息时不会被不法分子非法获取和克隆,避免系统被非法读写器攻击等问题,本发明提供了一种数据加密的方法,使得发送方在发送数据时对该数据进行加密处理,接收方根据预设的解密规则,计算解密密钥,并对发送方的密文进行解密,并进行验证,如此,极大的保证了数据传输的安全性,避免了车主用户的个人信息泄露,优化了用户体验。
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
图1示出了根据本发明一个实施例的一种数据加密方法的流程图。如图1所示,该方法包括:
步骤S110,发送方获取发送方当前的系统时钟。
步骤S120,发送方根据当前系统时钟以及从发送方本地保存的N个第一预置密钥中选择的一个第一预置密钥生成用于加密本次待传输数据的第二密钥;其中,N为大于等于1且小于等于60的正整数。在本步骤中,从发送方本地保存的N个第一预置密钥中选择的一个第一预置密钥是根据当前系统时钟中的分钟数进行选择,分钟数为1-60,所以N可以是大于等于1且小于等于60的整数。例如,当前系统时钟是2012-09-22 15:43:00,则分钟数是43,如果系统中预置60个密钥,那么就选择第43个第一预置密钥;如果系统中预置16个密钥,则选择第11个密钥,这里的11是43除以16的余数。选择完第一预置密钥后,将当前的系统时钟以及选择出的第一预置密钥作为第二密钥。
步骤S130,发送方利用第二密钥对本次待传输数据进行加密并将加密后的密文发送至接收方。
可见,本发明中发送方发送给接收方的数据是经过密钥加密的,没有该密钥或者不知道加密方法的人员即使得到该加密密文,也无法获知密文的具体信息,可以确保发送方和接收方之间数据传输过程中不会被非法窃取,保证数据的安全性。在车主停车刷停车卡的过程中,应用此方法就可以确保系统中储如车牌号、车主信息等车辆信息不会被非法获取和克隆,没有密钥的不法人员将无法解密该加密数据,得不到系统中保存的车辆信息,继而起到保护作用。
在本发明的一个实施例中,图1所示的方法中发送方根据当前系统时钟以及从发送方本地保存的多个第一预置密钥中选择的一个第一预置密钥生成用于加密本次待传输数据的第二密钥包括:
获取发送方当前的系统时钟key1;计算key1的分钟部分与本地保存的第一预置密钥的数目N的余数,得到索引i,利用索引i在本地保存的N个第一预置密钥中查找,得到对应的一个第一预置密钥key2[i];将key1转换成日期字符串格式后与第一预置密钥key2[i]进行拼接,得到密钥组成因子a;计算密钥组成因子a的消息摘要算法第五版MD5值,得到用于加密本次待传输数据的第二密钥。
在一个具体的例子中,当前系统时钟是2012-09-22 15:43:00,key1=2012-09-22 15:43:00,如果系统中预置16个密钥,43除以16的余数是11,索引i就是11;利用索引i=11在本地保存的N个第一预置密钥中查找,得到对应的一个第一预置密钥key2[11],即第11个第一预置密钥,将key1=2012-09-22 15:43:00转换成日期字符串格式20120922154300后与第一预置密钥key2[11]进行拼接,得到密钥组成因子a=key1+key2[11];计算密钥组成因子key1+key2[11]的消息摘要算法第五版MD5值,得到用于加密本次待传输数据的第二密钥b=MD5(key1+key2[11])。具体的实现过程代码如下所示:
1)key1=now;
2)i=key1的分钟部分%16;
3)a=key1+key2[i];
4)b=MD5(a).
本实施例中,发送方发送的数据是经过第二密钥进行加密的,这保证了大多数情况下,发送方发送的数据不会被截取,保证了数据的安全性,但是实际应用过程中,发送方本地保存的N个第一预置密钥也是相对固定的,如果这N个第一预置密钥一成不变的话,一旦被不法分子获取,则加密数据的操作无效,发送方或接收方传输的车辆信息同样存在被截取的风险,所以,为了进一步提高数据传输的安全性。发送方本地保存的N个第一预置密钥在一段时间后需要进行更新,进一步保证车辆信息的安全。在本发明的一个实施例中,图1所示的方法还包括:接收接收方定期或不定期发送的预置密钥更新指令,根据预置密钥更新指令从接收方获取新的第一预置密钥,并利用新的第一预置密钥替换发送方本地保存的旧的第一预置密钥。
由于本实施例中,接收方可以连接多个发送方,每个发送方完成密钥更新可能都需要一些时间,并且发送方完成密钥更新所需的时间也是不一的。即,发送方的密钥更新是一个需要持续一定时间的过程,在密钥更新期间,发送方本地保存的第一预置密钥的个数可能发生变化,举例而言,在密钥更新之前,发送方保存的第一预置密钥的数量为16个,当收到接收方发送的密钥更新之后,从接收方那里获取了新的16个密钥用于更新,那么此时,发送方本地保存的密钥数目,即为32个,但这不会影响发送方对数据的加密操作,发送方在计算加密密钥时可以根据具体密钥数目计算得到对应的密钥。
进一步地,为了节省发送方的存储空间,提高发送方的性能,本实施例中,发送方在利用新的第一预置密钥替换发送方本地保存的旧的第一预置密钥后,删除发送方本地保存的旧的第一预置密钥。
另外,本实施例中,发送方进行加密密钥时,系统时钟非常关键,为了提高接收方成功解密的概率,避免因为时钟不一致导致的解密失败,影响数据传输效率的问题,本实施例中,要求发送方和接收方的系统时钟保持一致,所以在本发明的一个实施例中,发送方每次启动后与作为时钟源的接收方进行时钟同步。
实施例二
图2示出了根据本发明一个实施例的一种数据解密方法的流程图。如图2所示,该方法包括:
步骤S210,接收发送方发送的密文。
步骤S220,接收方获取接收方当前的系统时钟。
步骤S230,接收方根据当前系统时钟以及从接收方本地保存的N个第一预置密钥中选择的一个第一预置密钥生成用于解密密文的第二密钥;其中,N为大于等于1且小于等于60的正整数,接收方本地保存的N的值与图1所示方法中发送方本地保存的N的值相等。在本步骤中,接收方从接收方本地保存的N个第一预置密钥中选择的一个第一预置密钥也是根据接收方当前系统时钟中的分钟数进行选择,由于分钟数为0-59,所以N可以是大于等于1且小于等于60的整数。
步骤S240,接收方利用第二密钥对密文进行解密。
在本发明中,接收方解密的方法是通过利用相同的密钥生成算法生成一密钥,并将生成的密钥,与发送方发送来的密钥进行比对,判断完全一致后,确认数据传输成功,即可解密得到数据内容。在本发明的一个实施例中,步骤S220中接收方根据当前系统时钟以及从接收方本地保存的N个第一预置密钥中选择的一个第一预置密钥生成用于解密密文的第二密钥具体包括下列步骤:
步骤A,接收方获取接收方当前的系统时钟key1。
步骤B,计算key1的分钟部分与本地保存的第一预置密钥的数目N的余数,得到索引i。
步骤C,利用索引i在本地保存的N个第一预置密钥中查找,得到对应的一个第一预置密钥key2[i]。
步骤D,将key1转换成日期字符串格式后与第一预置密钥key2[i]进行拼接,得到密钥组成因子a。
步骤E,计算密钥组成因子a的消息摘要算法第五版MD5值,得到用于解密的第二密钥b;
举例而言,接收方接收的密文密钥是x,则接收方利用第二密钥对密文进行解密包括:
判断第二密钥b与接收到的发送方发送的密文中的密钥x是否一致,是则,确认数据传输成功。
但是,密文的传输过程可能因为网络繁忙或者网络信号的问题,接收方接收的密文的时间有所滞后,本实施例中,提供了一次容错的机会,以尽量避免由于时钟不一致导致的误判断。具体的在本实施例中,当一次比较后判断为接收方计算出的密钥和发送方发送的密钥不一致时,接收方将当前的系统时钟key1减去1分钟后返回执行步骤B至步骤E,计算第二次得到的第二密钥b1与发送方发送的密文中的密钥x是否一致,是则,确认数据传输成功;否则,确认解密失败。
举例而言,发送方发送的文秘中的密钥x,如果接收方的当前系统时钟是2012-09-22 15:43:00,在这时收到了发送方发送的密文,则需要接收方进行解密。那么,key1=2012-09-22 15:43:00,如果接收方本地保存的预置密钥数目为16个,43除以16的余数是11,索引i就是11;利用索引i=11在本地保存的16个第一预置密钥中查找,得到对应的一个第一预置密钥key2[11],即第11个第一预置密钥,将key1=2012-09-22 15:43:00转换成日期字符串格式20120922154300后与第一预置密钥key2[11]进行拼接,得到密钥组成因子a=key1+key2[11];计算密钥组成因子key1+key2[11]的消息摘要算法第五版MD5值,得到用于解密的第二密钥b=MD5(a)。再判断第二密钥b与接收到的发送方发送的密文中的密钥x是否一致,是则,确认数据传输成功。
如果接收方接收到密文的时间是2012-09-22 15:44:03,那么最终得到的密钥组成因子就是a=key1+key2[12],b=MD5(a)与发送者发送的密文中的密钥不一致,此时可将接收方的当前系统时钟key1减去1分钟(注:这里是进行时间运算),得到2012-09-22 15:43:03,这样得到的密钥组成因子a=key1+key2[11],b1=MD5(a)与密文中的密钥x一致了,则确认数据传输成功;若减去1分钟后还判断不一致,则解密失败,则不再进行容错而是直接返回。接收方的验证规则具体代码如下部分所示,
步骤4)。
举例而言,接收方生成用于解密的第二密钥的具体代码部分示意如下:
实施例三
图3示出了根据本发明一个实施例的一种发送方设备的结构示意图。如图3所示,该发送方设备300包括:
时钟获取单元310,用于获取发送方当前的系统时钟。
密钥生成单元320,用于根据当前系统时钟以及从发送方本地保存的N个第一预置密钥中选择的一个第一预置密钥生成用于加密本次待传输数据的第二密钥;其中,N为大于等于1且小于等于60的正整数。
密文传输单元330,用于利用第二密钥对本次待传输数据进行加密并将加密后的密文发送至接收方。
在本发明的一个实施例中,密钥生成单元320,还用于获取发送方当前的系统时钟key1;计算key1的分钟部分与本地保存的第一预置密钥的数目N的余数,得到索引i,利用索引i在本地保存的N个第一预置密钥中查找,得到对应的一个第一预置密钥key2[i];将key1转换成日期字符串格式后与第一预置密钥key2[i]进行拼接,得到密钥组成因子a;计算密钥组成因子a的消息摘要算法第五版MD5值,得到用于加密本次待传输数据的第二密钥。
在本发明的一个实施例中,图3所示的设备进一步包括:更新单元,用于接收接收方定期或不定期发送的预置密钥更新指令,根据预置密钥更新指令从接收方获取新的第一预置密钥,并利用新的第一预置密钥替换发送方本地保存的旧的第一预置密钥。
进一步地,更新单元还用于在利用新的第一预置密钥替换发送方本地保存的旧的第一预置密钥后,删除发送方本地保存的旧的第一预置密钥。
在本发明的一个实施例中,图3所示的设备还包括:同步单元,用于发送方每次启动后与作为时钟源的接收方进行时钟同步。
需要说明的是图3所示设备的各实施例与图1所示方法的各实施例对应相同,上文已有详细说明,在此不再赘述。
实施例四
图4示出了根据本发明一个实施例的一种接收方设备的结构示意图。如图4所示,接收方设备400包括:
密文接收单元410,用于接收发送方发送的密文。
接收方时钟获取单元420,用于接收方获取接收方当前的系统时钟。
解密密钥生成单元430,用于根据当前系统时钟以及从接收方本地保存的N个第一预置密钥中选择的一个第一预置密钥生成用于解密密文的第二密钥;其中,N为大于等于1且小于等于60的正整数。
解密单元440,用于利用第二密钥对密文进行解密。
在本发明的一个实施例中,解密密钥生成单元430,还用于
1)接收方获取接收方当前的系统时钟key1。
2)计算key1的分钟部分与本地保存的第一预置密钥的数目N的余数,得到索引i。
3)利用索引i在本地保存的N个第一预置密钥中查找,得到对应的一个第一预置密钥key2[i]。
4)将key1转换成日期字符串格式后与第一预置密钥key2[i]进行拼接,得到密钥组成因子a。
5)计算密钥组成因子a的消息摘要算法第五版MD5值,得到用于解密的第二密钥b。
则解密单元440,还用于判断第二密钥b与接收到的发送方发送的密文中的密钥x是否一致,是则,确认数据传输成功;否则,将当前的系统时钟key1减去1分钟后返回执行步骤B至步骤E,计算本次得到的第二密钥b1与发送方发送的密文中的密钥x是否一致,是则,确认数据传输成功;否则,确认解密失败。
需要说明的是,图4所示系统的各实施例与图2所示方法的各实施例对应相同,上文已有详细说明,在此不再赘述。
实施例五
图5示出了根据本发明一个实施例的一种数据传输系统的结构示意图。如图5所示,数据传输系统500包括:一个或多个如3所示的发送方设备以及如图4所示的接收方设备。因为一个接收方设备接收的密文可能来自多个发送方,所以该系统500中的发送方设备可以是一个也可以是多个。
需要说明的是,图5所示系统的各实施例与图1和图2所示方法的各实施例对应相同,上文已有详细说明,在此不再赘述。
综上所述,本发明实施例的数据加解密技术方案,可以应用到停车场管理系统中,发送方发送给接收方的数据经密钥加密,没有该密钥或者不知道加密规则的第三方即使得到该加密密文,也无法获知密文的具体信息,如此确保发送方和接收方之间数据传输过程中车主身份信息、车牌信息等私密且重要的数据不会被非法窃取,保证了数据传输的安全性,优化了用户体验。提高了停车场的服务水平和竞争力,适合大规模推广。
以上所述,仅为本发明的具体实施方式,在本发明的上述教导下,本领域技术人员可以在上述实施例的基础上进行其他的改进或变形。本领域技术人员应该明白,上述的具体描述只是更好的解释本发明的目的,本发明的保护范围以权利要求的保护范围为准。