本发明涉及通信领域,尤其涉及一种核验身份信息的方法、装置及系统。
背景技术:
居民身份证上的信息是非常重要的,无论是工作、日常生活都需要身份证来办理所需的卡、券、证等。而如何证明该身份证号与该人员是对应的,就成为一个重要的问题。如果通过网络传输该个人信息,会导致数据被人截取,从而个人信息被泄露。
技术实现要素:
本发明的目的是通过以下技术方案实现的。
本发明提出了一种核验身份信息的方法,其包括:
步骤101、获取身份信息,所述身份信息包括第一数字信息和第一文字信息,其中所述数字信息指身份证号,所述文字信息包括姓名、地址或办证机关的至少一个;
步骤103、将所述身份信息数值化;
步骤105、传递所述数值化身份信息。
其中,所述步骤103具体包括:
将获取的所述身份信息使用单向散列算法转换为对应的散列值。
本发明还提出了另一种核验身份信息的方法,其包括:
步骤201、接收数值化的身份信息;
步骤203、核验接收的数值化的身份信息是否与存储的信息一致。
其中,所述步骤201之前还包括建立数据字典。
其中,所述建立数据字典具体包括:
步骤A、穷举所述第一数字信息中地区编号的所有可能组合;
步骤B、穷举所述第一数字信息中当前日期前后100年的所有日期;
步骤C、穷举所述第一数字信息中的三位计数值;
步骤D、将步骤A、B、C中的数值按所述第一数字信息中的编码规则全组合,并加上所述第一数字信息中的验证码,生成可能的数字信息;
步骤E、计算上述生成的数字信息的散列值,并存储;
步骤F、以上述散列值为索引,建立所述第一数字信息的索引文件。
其中,所述步骤203具体包括:
步骤2031、从所述数据字典中查找收到的第一数字信息的散列值是否有对应的第二数字信息,并根据所述第二数字信息,查找对应的第二文字信息,并计算所述第二文字信息的散列值;
步骤2033、如果接收的第一数字信息的散列值对应的文字信息散列值与计算的第二文字信息的散列值一致,则返回所述身份信息为真,否则返回所述身份信息为假。
本发明还提出了一种基于上述核验身份信息的方法的装置,其包括:
获取模块,其用于获取身份信息,所述身份信息包括第一数字信息和第一文字信息,其中所述数字信息指身份证号,所述文字信息包括姓名、地址或办证机关的至少一个;
数值化模块,其用于将所述身份信息数值化;
传递模块,其用于传递数值化的身份信息。
本发明还提出了一种基于上述另一种核验身份信息的方法的装置,其包括:
接收模块,其用于接收数值化的身份信息;
核验模块,其用于核验接收的数值化的身份信息是否与存储的信息一致。
本发明还提出了一种核验身份信息的系统,其包括:
上述核验身份信息的装置;
上述另一种核验身份信息的装置;
控制中心,其用于控制上述装置之间进行信令交互。
通过本发明可以在双方都不泄露已知的信息的情况下,验证其身份信息是否正确,并且可以隐蔽传递身份信息,防止被人窃取。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
附图1示出了根据本发明某一实施方式的一种核验身份信息的方法;
附图2示出了根据本发明另一实施方式的一种核验身份信息的方法;
附图3示出了根据本发明某一实施方式的一种核验身份信息的装置;
附图4示出了根据本发明另一实施方式的一种核验身份信息的装置;
附图5示出了根据本发明一实施方式的一种核验身份信息的系统。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
以上数值化操作实际上是将信息转变为计算机可读代码。通常数字可以直接转换为二进制的数值。而对于文字部分,先转换为ASCII码,然后将相应的ASCII码转换为对应的二进制数值,从而到达对上述信息进行数值化的操作。
单向散列算法,又称hash函数,Hash函数(也称杂凑函数或杂凑算法)就是把任意长的输入消息串变化成固定长的输出串的一种函数。这个输出串称为该消息的杂凑值。一般用于产生消息摘要,密钥加密等。
单向散列函数(也称杂凑函数、Hash函数)指的是根据输入消息计算后,输出固定长度数值的算法,输出数值也称为“散列值”或“消息摘要”,其长度通常在128~256位之间。
一个安全的杂凑函数应该至少满足以下几个条件:
①输入长度是任意的;
②输出长度是固定的,根据目前的计算技术应至少取128bits长,以便抵抗生日攻击;
③对每一个给定的输入,计算输出即杂凑值是很容易的;
④给定杂凑函数的描述,找到两个不同的输入消息杂凑到同一个值是计算上不可行的,或给定杂凑函数的描述和一个随机选择的消息,找到另一个与该消息不同的消息使得它们杂凑到同一个值是计算上不可行的。
单向散列函数的安全性是由于它的单向性,其输出不依赖于输入。平均而言,预映射值单个位的改变,将引起散列值中一半位的改变。已知一个散列值,要找到预映射的值,使它的散列值等于已知的散列值在计算上是不可行的。单向散列函数的安全性使它能用于完整性校验和提高数字签名的有效性。
步骤C、穷举所述第一数字信息中的三位计数值。
根据身份证号的特点,上述地区编号、日期和三位计数值共17位,而身份证的最后一位为校验位,则不需要单独将其作为本算法的核验的数据。
步骤D、将步骤A、B、C中的数值按所述第一数字信息中的编码规则全组合,并加上所述第一数字信息中的验证码,生成可能的数字信息。
上述编码规则指的是身份证号以地区编号、日期和任意三位数组成的数字。
步骤E、计算上述生成的数字信息的散列值,并存储。
这些值可以存储在相应的存储装置中。
所述索引文件可以用来搜索与该数字信息对应的散列值。
实施例一、
我们知道,居民身份证号码,根据[中华人民共和国国家标准GB11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。居民身份证是国家法定的证明公民个人身份的有效证件。
为了在身份验证过程中的双方不泄露自己已知的信息,采用0知识证明的方案。
具体方法:
1、求证方将已知的身份信息:身份证号和姓名,分别用单向散列算法(如MD5,SHA-1,SHA-256等)将身份证号和姓名转换为对应的散列值。
2、验证方将收到的身份证号散列值从数据字典中查找是否有对应的身份证号,并根据对应身份证号,查找对应姓名信息,并计算姓名的散列值。
3、如果求证方发送的身份证号散列值对应的姓名散列值和验证方计算一致,则返回给求证方一致,否则返回不一致。
验证方为处理身份证号散列值,需预先建立数据字典,即散列值和身份证号的对应关系。
建立数据字典过程
1、枚举所有的身份证中地区编号的所有可能组合;
2、穷举当前日期前后100年的所有日期;
3、穷举三位计数值;
4、将1、2、3项按身份证号编码规则全组合,并加上身份证验证码,生成可能的身份证号码;
5、计算上述生成的身份证号码的散列值,并存储;
6、以上述散列值为索引,建立对应身份证号的索引文件。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。