CN103559454B - 数据保护***和方法 - Google Patents
数据保护***和方法 Download PDFInfo
- Publication number
- CN103559454B CN103559454B CN201310204033.3A CN201310204033A CN103559454B CN 103559454 B CN103559454 B CN 103559454B CN 201310204033 A CN201310204033 A CN 201310204033A CN 103559454 B CN103559454 B CN 103559454B
- Authority
- CN
- China
- Prior art keywords
- information
- item
- array
- size
- arranged opposite
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 62
- 230000004224 protection Effects 0.000 title claims description 20
- 239000013598 vector Substances 0.000 claims abstract description 77
- 238000012795 verification Methods 0.000 claims abstract description 32
- 238000007689 inspection Methods 0.000 claims abstract description 13
- 238000004422 calculation algorithm Methods 0.000 claims description 22
- 238000006073 displacement reaction Methods 0.000 claims description 10
- 238000000926 separation method Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 3
- 230000005055 memory storage Effects 0.000 abstract description 2
- 230000008859 change Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000013478 data encryption standard Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000004576 sand Substances 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 125000002015 acyclic group Chemical group 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 235000015170 shellfish Nutrition 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/101—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
- G06F21/1014—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to tokens
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3234—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2153—Using hardware token as a secondary aspect
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
一种基于可通过PIN访问的令牌的认证***,能够对待保护数据的访问进行授权或拒绝,令牌具有存储器,存储器存储:包含字母数字信息项和***在信息项之间的随机字母数字数据项的数组;以及包含有关数组中信息项的排列和每个随机数据项的字节大小信息的加密类型印鉴方案向量,以在数组中相应的位置访问每个信息项。认证***用于:通过输入正确的PIN经受对令牌的访问;解密印鉴方案向量;获取信息项的排列信息和印鉴方案向量中每个随机数据项的大小信息;检查获取的排列信息和数组中信息项的有效排列之间的对应关系,以及获取的大小信息和随机数据的有效大小之间的对应关系;根据检查结果,授权或拒绝对待保护数据的访问。
Description
技术领域
本发明涉及一种保护信息数据的***和方法,尤其涉及一种用于对待保护信息数据的访问进行授权的认证***和方法。
背景技术
现有多种数据保护的方法,特别是用于对保护信息的访问进行授权和/或允许执行计算机程序(软件)以获得使用保护信息的许可的方法。
现有方法考虑到了密钥的使用,该密钥不为用户所知,但可以通过购买使用目标软件所需的许可获取。该方法也存在缺陷:非法用户可以通过盗用复制密钥使用相关软件。
其他方法考虑到了使用称之为令牌的设备,令牌能够基于用户已知的算法生成密码,该密码通常由数字组成。典型的,在二因子认证方案中,该密码取依赖于随时间(例如时间、日期等)变化的参数加上用户选择的已知部分(称为个人识别码,或更简单的称为PIN)的值,以便不易于复制。然而,该方法具有以下缺陷:任何人清楚,用户通常会选择容易记住的时间和PIN(实际上,用户经常将自己的生日日期、或自己爱人的名字等设为PIN)。目前,这种类型的方案所提供的信息保护,已面临各种类型的攻击,因此,信息保护力度已经大打折扣。
其他已知方法包括:将软件整个部分都存储在令牌中。然而,这样的话,鉴于软件运行时,需要访问这些部分,将其编译然后执行,软件的运行速度将受到影响。因而,通常仅在软件的启动阶段执行检查,而非在使用软件的整个过程中。
发明内容
本发明的目的在于,提供一种数据保护***和方法,以克服现有技术的缺陷。
详细地,所述认证***基于可通过PIN访问的令牌,且用于授权或拒绝对待保护数据的访问,所述令牌具有存储器,该存储器存储:包含数字、和/或字母加数字(alphanumerical)、和/或字母类型的信息项,和数字、和/或字母加数字、和/或字母数字随机数据项的数组,所述随机数据项以数组的读顺序***在直接连续的信息项直接;以及包含有关所述数组中信息项的排列的信息和有关每个随机数据项的大小的信息(典型地,大小以比特数计算)的加密印鉴方案向量(或印鉴方案数组),以在所述数组中各自的位置访问所述信息项。所述认证***用于:通过输入正确的PIN来经受对所述令牌的访问;解密所述印鉴方案向量;获取信息项的排列信息和所述印鉴方案向量中的每个随机数据项所占用的空间的信息;检查获取的排列信息和数组中信息项的有效排列之间的对应关系,以及获取的大小信息和随机数据的有效大小之间的对应关系;根据上述对应关系的检查结果,授权或拒绝对所述待保护数据的访问。
根据本发明,提供了一种用于对待保护信息的访问进行授权的认证***,包括硬件令牌,所述硬件令牌具有包括私有存储区域的存储器,所述私有访问区域可通过个人识别码进行访问,且存储:数字、和/或字母加数字、和/或字母类型的多个第一信息项;以及数字、和/或字母加数字、和/或字母类型的多个第一随机数据项(RBx,y),每个第一随机数据项具有各自的大小。将所述第一信息项和所述第一随机数据项排列在数组内,所述数组具有至少一个读取顺序且使得每个所述第一信息项与下一第一信息项以所述读取顺序,被一个所述第一随机数据项分离。所述私有存储区域进一步存储加密类型的第一印鉴方案向量,所述第一印鉴方案向量包含所述数组中所述第一信息项的第一相对排列信息,以及每个第一随机数项的第一大小信息,以允许对所述数组中每个所述第一信息项进行访问。所述认证***进一步用于:
通过***所述个人识别码经受对所述私有存储区域的访问;
解密所述第一印鉴方案向量,并获取所述数组中所述第一信息项的第一相对排列信息,以及每个第一随机数项的所述第一大小信息;
检查所述获取的第一相对排列信息和所述数组中所述第一信息项的排列之间的对应关系,以及所述获取的第一大小信息和所述数组中第一随机数据项的大小之间的对应关系;
根据所述获取的第一相对排列信息和所述数组中所述第一信息项的排列之间的对应关系,以及所述获取的第一大小信息和所述第一随机数据项的各自大小之间的对应关系的检查结果,授权或拒绝对所述待保护信息项的访问。
根据本发明,还提供了一种用于对待保护信息的访问进行授权的认证方法,包括以下步骤:
获取数字、和/或字母加数字、和/或字母类型的多个第一信息项;
生成数字、和/或字母加数字、和/或字母类型的多个第一随机数据项,其中每个第一随机数据项具有各自的大小;
将所述第一信息项和所述第一随机数据项排列在数组内,所述数组具有至少一个读取顺序,且使得每个所述第一信息项与下一第一信息项,以所述读取顺序,被一个所述第一随机数据项分离;
生成加密类型的第一印鉴方案向量,所述第一印鉴方案向量包含所述数组中所述第一信息项的第一相对排列信息,以及每个第一随机数项的第一大小信息,以允许对所述数组中每个所述第一信息项进行访问;
经受对所述待保护信息的访问授权的进一步准许以:(i)输入个人识别码;(ii)解密所述第一印鉴方案向量,并获取所述第一相对排列信息和所述第一大小信息;以及(iii)检查所述获取的第一相对排列信息和所述数组中所述第一信息项的排列之间的对应关系,以及所述获取的第一大小信息和所述数组中所述第一随机数据项的大小之间的对应关系;
当所述对应关系检查结果为“是”时,授权所述认证。
附图说明
为了更好的理解本发明,以下将通过非限制的示例,结合附图,对本发明的优选实施方式进行详细描述。附图中:
-图1示意所示为生成认证密钥的设备或令牌;
-图2所示为适用于可操作地连接至图1所示令牌的本质上已知类型的计算机;
-图3所示为根据本发明实施例的数据保护方法的步骤流程图;
-图4以图表形式示出包括根据图3所示方法的步骤10和12编码的多个数据/信息项的数组;
-图5所示为图4中的数组的另一种不同图形表示;
-图6所示为图3中的方法的分步骤的流程图;
-图7所示为图3中的方法的进一步的分步骤的流程图;以及
-图8所示为根据本发明的数据保护方法的进一步的步骤流程图。
具体实施方式
本说明书涉及一种保护数据的方法和***,尤其涉及密码或加密电子数据。
更加详细地,本发明提供的保护级别包括:物理级,包括认证设备或令牌,其能够生成伪随机认证码,例如,以数字、字母或字母加数字的形式;和软件级,包括通过计算程序实现的加密步骤。
如图1所示的由附图标记1指示的认证令牌,包括已知类型的微处理器2,能够在用户请求时根据某个算法生成伪随机认证代码,该算法综合考虑了多个因子,诸如,例如,认证令牌1的序列号、当前日期值、认证令牌1内部时钟定义的时间值或其它因子。该值通过基于时间的算法,利用硬件生成,不同厂商的令牌的序列号也不同。典型的,令牌如何生成伪随机代码的过程并未公开,并且每个令牌供应商都采用专有算法。本发明提供的方法与认证代码生成方式无关,因此认证码生成方式不再进一步描述。
认证令牌还包括存储器4,例如,闪存,该存储器与微处理器2连接。
生成认证码的程序驻留于认证令牌的存储器4中,特别地,在存储器4的私有区域4a中,该私有区域用于存储那些可以通过关键字或PIN(Personal IdentificationNumber,个人识别码)访问的敏感数据。存储器4的公共区域4a可存储公共性质的证书及非敏感信息。
PIN自动生成并且不提供给终端用户。在安装后,或当软件第一次运行时,提示用户选择一个密码以解锁PIN使用并且存储哈希值(即:在数据库中不可逆或“有难度”可逆的操作的结果)。
存储器4的私有区域4a可以是隐藏类型(用户不知道其存在),或对用户可见但访问受到关键字或密码保护。该密码可以修改,修改需要供应商生成的种子记录及令牌管理员的授权(称为安全专员)。令牌管理员的授权受到另一密码保护,通常可以修改,但不能覆写。该另一密码为预设值且保存在一个安全的位置。
存储器4的私有区域4a可以用于存储大量数据和/或信息,该数据和/或信息在加密方法中使用,如下面所示。
在一个实施例中,认证令牌1可以连接到计算机6(图2),这样可以在认证令牌1及计算6之间交换信息。例如,认证令牌1可装备一个连接到计算机6的USB端口。
此后参考希望编码的明文,这样可以防止非授权用户访问明文中包括的信息。
参考图3,显示的流程图包括根据本发明一实施例的加密方法的步骤。
在本发明中,生成的“印鉴(seal)”包括大量可以任意选择的数据及信息,所述数据及信息根据随机方案进行加密。该印鉴的解密及读取是授权或拒绝一个或多个进一步活动所必需的。
根据优选应用,该印鉴的解密及读取是授权软件程序的执行或获取软件程序使用许可的必需条件。根据本发明方法的加密步骤不是用于加密将要执行的软件程序,而是用于生成加密印鉴,为了获取执行此软件程序的授权,需要读取所述加密印鉴。
根据图3的方法包括初始化步骤(步骤10和12),在初始化步骤中由明文生成印鉴并且写入存储器4的私有区域4a,以及加密步骤(步骤14和16),在加密步骤中使用已知类型的加密方法(例如,由RSA、AES、DES或其它算法选择的已知方法)对步骤10和12中生成的印鉴进行加密以保证更高级别的保护。
印鉴根据明文中的数据和/或信息生成,将此数据排列在数组中,如下更好地描述。另外,印鉴具有按比特计的大小,以便于与步骤14和16中使用的加密算法兼容(例如,长度为128比特、196比特、256比特、或一些它大小)并且留下足够的“自由”空间以用随机数据填充。
明文可包括大量固定类型(值或信息内容不会随着时间发生变化)和/或可变类型(值或信息内容随时间而变)的数据和/或信息。例如,固定数据包括例如预设的识别码,所述识别码为数字、字母和/或字母加数字或一些其它格式,诸如,例如,以下一种或多种:软件的商品名或代码名、软件开发商名、软件当前用户的渐进许可号、客户名和/或识别码,初始化日期、令牌序号、启用的软件模块(当软件由多个模块组成时)以及相关的许可密码/代码和其它可选数据。
例如,可变数据包括例如当前日期、当前时间的值或根据预设或意外条件下可取变化值的其它数据。
关于可变域,内容的正确性通过“约定”的方式进行检查。换句话说,软件组件检查在时间t0时写入时间值,在“x”秒后,时间值为t0+x(加上或减去几百微秒左右的误差)。值t0是日期/时间值写入的时间,“x”是一个可变偏差,由软件根据自由选择的统一分布即时和随机决定,所述统一分布的限值指定为最小值及最大值之间,通常大约几十秒/分钟。
在此后的描述中,每个固定或可变的数据项作为单个“项(item)”并通过I1,I2,I3,...IN指示。该类型的N个项I1-IN形成一个集合(排列为向量I),此集合包括N个项I1-IN:
I={I1,I2,I3,I4,I5,...,IN}
如上所述,本发明的一个应用是授权或拒绝执行一个软件程序,或获取使用该软件程序的一个许可。在这种情况下,向量I的副本以软件程序用户不可访问的方式保存在软件程序中。
当考虑到其数字格式(具有逻辑值“1”或“0”的比特序列),N项I1-IN集合的每项具有自己的长度L(i),该长度的单位为比特数和/或字节数,其中1个字节为8比特的一组。在这种情况下,“i”取值为1和N之间,因此L(1)是向量I的第一项的长度,L(2)是向量I的第二项的长度,等等。L(N)是向量I的第N(最后)项的长度。
同时,每项I1-IN具有自己的值J(i)或J1-JN。例如,如果项I1-IN为日期,该项的值J(i)为实际日期,如,为日/月/年格式。如果项I1-IN为软件开发商名,该项的值J(i)为开发商的名字,等等。因此,对于每项I1-IN,值J(i)具有数字、字母加数字或字母值。
上述项I1-IN排列在数组100中,该数组包括M个通过行x(具有x=x1,x2,...,xR)与各个列y(y=y1,y2,...,yC)交叉定义的域。数组100在图4中以图形化方式显示。N个项I1-IN中的每个项占有数组100的各自域(x,y)。数组100具有大量等于M=xR·yC且大于N的域。特别地,选择值M使得项I1-IN存储在各自域(x,y)中,这些域不直接彼此连续,这样可以支持选择的加密算法。换句话说,沿数组100的行,紧随包括项I1-IN中一项的域的域不包括项I1-IN中的另外一项。
当所有项I1-IN已经写入数组100时,通过已知类型的随机数生成器用随机生成的字节来填充数组100中自由留下的域(x,y)。通过这种方式,每个项I1-IN与其它项I1-IN分隔一个或多个随机字节。
在图4中,随机字节由RBx,y指示,其中下标x,y为写入随机字符的域中相应行x及相应列y的值。例如,一个或多个随机字节RB1,1存储在第一行x=x1及第一列y=y1指示的域中。同样,一个或多个随机字节RB2,2存储在第二行x=x2及第二列y=y2指示的域中。
通过参考图4,项I1占用了第一行x=x1及第二列y=y2对应的域,并通过I1 1,2指示。同样,项I2占用了与第二行x=x2及第一行y=y1对应的域,并且指示为I2 2,1,其它类似。
如图3所示,在项I1-IN(当沿着行X1-XR顺序考虑时)之间及数组100的第一项I1之前,以及数组100的最后一项IN之后***随机字节RBx,y。换句话说,根据此实施例,数组100的第一个域及数组100的最后一个域都包括随机字节RBx,y。
很清楚,每个项I1-IN及每个随机字节序列RBx,y的字节长度可以具有任何字节长度。数组100的彼此不相同域x,y可以包括不同数量的字节。这种情况通过图5中的图形示例显示,其中随机字节由阴影线填充的域图形显示及项I1-IN由空白域显示。
根据一个实施例,数组100的每个域(x,y)可以通过小于或等于M的识别号进行唯一标识,反之亦然。识别号与数组100的每个域进行相关,例如,通过沿行x不断穿过数组100实现,这样数字“1”与域(x=1,y=1)对应。数字“2”与域(x=1,y=2)对应,其它类似。这样数字“M”与域(x=xR,y=yC)对应。很明显,任何其它相关也可能。
返回图3,步骤10包括定义N个整数值的集合VI以确定项在数组100中必须遵循的相互***顺序。例如,顺序被认为是从数组100第一个域开始并且穿过行x。然而,可以选择其它顺序。
如图4所示,每个项通过数组100的一个域(x,y)与其它项分隔,其中数组100包括一个随机字节RBx,y序列。为此目的,在图3的步骤10包括生成N+1个随机数字的集合VRB,其中每个数字标识各自序列RBx,y的字节长度,RBx,y必须作为项I1-IN的一个分隔符***到数组100中。
因此,(向量)集合VI标识了数组100中***项I1-IN的顺序,(向量)集合VRB标识每个块RBx,y的长度,块RBx,y必须***到项I1-IN-1及下一个项I2-IN之间(也在数组100的开始及结束)。向量VI和VRB保存在一个印鉴方案向量SS中,印鉴方案向量SS格式如下(印鉴方案向量SS中的数字值显示可能的实施例并且不受限):
SS={VI;VRB}={1,2,3,4,...;23,4,46,5,11,...}。
通过这种方式,当没有印鉴方案向量SS时,数组100的简单读取不允许轻松恢复数组100中包括的信息(例如,不能立即记录明文,或者项I1-IN)。
向量VI包括N个域(因此,当每个域包括一个简单值时有N个值),并且向量VRB包括N+1个域(因而当每个域仅仅包括一个值时有N+1值)。因此,印鉴方案向量包括2N+1个值,其中SS(N+1)的值是在数组100中第一个项I1之前的字节数。SS(N+2)的值是数组100中第一个项I1及第二个项I2之间的字节数。SS(N+3)的值是数组100中第二个项I2及第三个项I3之间的字节数。SS(2N+1)值是最后项IN之后数组中添加的字节数。
如前所述,定义(向量)集合VI的步骤相当于以相互***项I1-IN到数组中的顺序定义N个识别号。需要注意的是,形成向量VI的N个值不识别数组的各自域,但表示数组100中项I1-IN的***顺序。例如,考虑沿数组100的行x顺序***。与此处所描述类似,像示例方式一样,向量VI是类型:
VI={1,2,3,4,...}。
向量VI通过以下方式理解:将I1作为第一个项***在数组100(I(VI(1))={I1},因为VI(1)={1}并且I(1)=I1),将I2作为第二个项***在数组中(I(VI(2))={I2},因为VI(2)={2}且I(2)=I2)。将I3作为第三个项***在数组中(I(VI(3))={I3},因为VI(3)={3}且I(3)=I3)。将I4作为第四个项***在数组中(I(VI(4))={I4},因为VI(4)={4}且I(4)=I4),向量I的所有N个项I1-IN以此类推。
一直作为一个定性示例,定义N+1个随机数集合(其中每个数字确定各自块RBx,y的长度)的步骤会产生以下类型的向量VRB。
VRB={23,4,46,5,11,...}。
向量VRB通过以下方式解释:在数组100的第一项之前立即***23个随机字节,如向量VI中所定义(在该示例中,位于项I1之前);在数组100中第一个项之后立即***4个随机字节,如向量VI所定义(在此示例中,在项I1之后)。在数组100中第二个项之后立即***46个随机字节,如向量VI所定义(在此示例中,在项I2之后)。在数组100中第三个项之后立即***5个随机字节,如向量VI所定义(在此示例中,在项I3之后)。在数组100中第四个项之后立即***11个随机字节,如向量VI所定义(在该示例中,在项I4之后)。
数组100中的项I1-IN的排序操作(例如,生成向量VI,如图3中步骤10和12所示)和/或生成向量VRB可以执行任意多次,并且可以以固定间隔和/或在以下特殊的预设事件发生时实现数组100的循环更新。印鉴方案向量SS也以相应的方式进行更新。特别是,给定N个项I1-IN,在再次获得数组100的开始顺序之前有N!种可能的排列。这意味着在返回初始顺序之前,通过向量VI定义的项I1-IN顺序可以改变N!次。
实际上,通过选择两个第一整数“A”及“B”(其值在1和M之间),执行一个洗牌函数,这样以下操作被执行A次。
(1)用向量VI的第二个值的位置置换向量VI的第一个值位置(两个位置随意选择或通过使用两种不同的计数器选择);
(2)将向量VI的一个或多个值的位置与向量VI的各自一个或更多值的位置交换,这些位置位于在点(1)中所述的第一个值被原始包含的位置之后。
置换步骤(1)对“B”的不同值执行“B”次,这样生成一个向量VI,该向量包括事先以非预设方式排列的值。
随机选择B的值,使得B不是N!(N+1)!的除数。通过这种方式,两个数字B及N!(N+1)!是互质数,利用他们不能整除的特性,避免某些次数的重复后,再次返回到相同的值。
更进一步描述,置换操作(1)包括对向量VI各自位置包含的数字值执行置换操作。如前所述,向量VI实际上是整数向量,每个整数描述了各自项I1-IN(或,与每个各自项I1-IN相关的值J1-JN)***数组100的位置。置换步骤包括以下步骤:
(a)选择向量VI中各自第一个域中包含的第一个数字值(例如,VI(1)包括数字“1”);
(b)选择与向量VI的第一个域不同的各自第二个域中包含的第二个数字值。
(c)将第一个域中包括的第一个数字值与第二个域中包括的第二个数字值进行彼此交换。
置换步骤还包括以下可选步骤:
(d)重复步骤(a)-(c)。
图6和7通过流程图更详细地示出了上述步骤(a)-(b)。
参考图6,在步骤20中,假设位于图6中方法的第一次迭代中。例如,向量VI是类型VI={1,2,3,4}。在此示例中,变量p是标识向量VI域的下标(index),且取值为1到(N-1)之间,在这种情况下,(N-1)=4。选择向量VI的倒数第二个位置,是VI(p)=VI(N-1)=VI(3)={3}。
然后,在步骤22中,选择向量VI的最后一个域,即VI(p+1)=VI(N)=VI(4)={4}。
此后,在步骤24中,域VI(N-1)和VI(N)中包含的值彼此进行比较。如果VI(N-1)小于VI(N),则在步骤26中根据以上提及的步骤(a)将VI(N-1)选择为第一个项。
否则,在步骤28,值p减少一个单位并且进行检查。在步骤29,已经达到向量VI的开始。如果p的当前值等于0,则向量VI已经退出并且所有可能置换已经实现(该方法结束)。如果p大于或等于1,则在步骤30选择VI(p)。在步骤32选择VI(p+1)。处理,然后返回步骤24,将VI(p)与VI(p+1)进行比较。
继续前面示例,给定向量VI={1,2,3,4},则步骤24导致步骤26,VI(N-1)<VI(N)。
步骤28-32不执行,然后选择值VI(N-1)=3作为以上步骤(a)的第一个数字值。
处理,然后根据以上所述的步骤(b)选择第二个数字值。参考图7,在步骤36,在图7的方法第一次迭代中选择向量VI(即VI(N))的最后一个值。根据图7中的方法,下标q用于对向量VI进行索引。因此,在步骤36中,q=N。
然后,在步骤38中,在图6的步骤26中选择的值VI(p)与当前值VI(q)进行比较。如果VI(q)>VI(p),那么在步骤40中,域VI(p)中包括的值与域VI(q)中包含的值进行交换。在这种情况下,总是考虑向量VI={1,2,3,4},步骤40会生成向量VI={1,2,4,3}。
如果步骤39中的比较显示VI(q)<VI(p),则在步骤42中值q减少一个单位。在步骤43中,检查是否q的当前值大于p的当前值。如果大于,则处理返回步骤38比较VI(p)和VI(q)。否则,方法结束。
然后处理回到上述的“交换”步骤。在该步骤中,第p个位置后的向量VI的N-p位置中包含的数字值细分为两个(N-p)/2值分组。然后两个(N-p)/2值分组的位置进行交换。当N-p是一个奇数时,可能考虑N-p+1个域,或选择不同的组。
返回图7的步骤40后生成的向量VI,即,VI={1,2,4,3},p的值等于3并且交换步骤没有影响。
通过再次重复步骤6和7中的步骤20-32(第二次迭代),获取的新VI向量具有以下形式:
VI={1,3,4,2}。
然后,执行交换步骤给出:
VI (2)={1,3,2,4}。
通过再次重复图6和图7中的步骤20-32(第三次迭代),获取的新VI向量具有以下形式:
VI (3)={1,3,4,2}。
在这种情况下,交换步骤不会改变向量VI={1,3,2,4}。
通过重复图6和图7中的步骤20-32(第四次迭代),获取的新VI向量具有以下形式:
VI={1,4,3,2}。
然后,执行交换步骤给出:
VI (4)={1,4,2,3}。
以这种方式继续处理,获取向量VI中包括的数字值的所有可能置换。
为了使第一次生成时对数组100的项I1-IN进行随机排序,可能迭代执行图6-7中方法的步骤以及交换步骤“A”次(其中,A是随机数),这样可以在向量VI中生成事先没有预设的数字值顺序。
根据进一步的实施例,在执行交换步骤之前,图6-7中方法的每次步骤迭代执行“B”次。
定义N+1个随机数的(向量)集合VRB的步骤满足以下至少一个要求,其中这些数字中的每个数字标识各自块RBx,y的字节长度:
(1)在数组100中的第一个项I1-IN之前***至少一个块RBx,y(任何大小/长度,以字节计算)。
(2)沿数组100的行x在两个连续项I1-IN之间***至少一个块RBx,y(任何大小/长度,以字节计算),以便对两个连续项I1-IN进行彼此分离。
(3)在数组100内的最后项I1-IN之后***至少一个块RBx,y(任何大小/长度,以字节计算)。
(4)每个块RBx,y的字节长度的概率分布一致。
(5)所有块RBx,y的长度的总和SRB(单位为字节),使得数组100被完全填满(即,∑iL(i)+SRB=M)。
(6)根据本发明的一个实施例,各自的块RBx,y的长度满足所有上述要求(1)-(5)。
返回图3所示的流程图,在步骤14中,根据步骤10和12生成的数组使用由图1中认证令牌1随机生成的密钥ks进行加密。根据选择的加密算法,密钥ks可以根据标准方法生成。在作为示例描述的情况下,是令牌处理其生成。这样,使用密钥ks的加密步骤调用该标准例程(因此,其自身不是本发明的主题)。例如,在AES加密方法中,密钥与加密数据的最小块一样长(通常为32个字节)并且由一个用户可以选择或已经随机生成的初始化向量生成。
另外,数组100使用已知类型的加密方法加密,例如,一个非对称加密算法,如RSA,或一个基于块的加密算法,如AES(高级加密标准)或DES(数据加密标准)算法或任何其它文献中已知的加密算法。以上提及的加密算法RSA、AES及DES在文献中已知,此处为了简洁,没有指定相关的加密步骤。如所述,通过文献中已知的方法也执行生成密钥ks。
此后称为“C_data”的加密数组(或,总称加密文本对象)是图3中步骤14的结果。
密钥ks及加密文本对象C_data存储在认证令牌1的存储器4的私有区域4a。
与数组100加密的描述类似,代表数组100的读密钥的印鉴方案向量SS也通过由图1中认证令牌1随机生成的各自密钥kv进行加密(步骤14)。密钥kv的生成以与通过自由选择的已知方法生成密钥ks相类似方式进行。例如,再次参考AES算法,该密钥kv通过与用于密钥ks的初始化向量不同的初始化向量生成。
向量SS也使用与数组100类似的已知算法进行加密。例如,可以使用AES加密算法。但是,显然,其它算法也可以使用。
密钥kv及加密印鉴方案向量SS(此后也指示为“C_scheme”)保存在认证令牌1的存储器4的私有区域4a。
加密文本对象C_data构成一个保持信息的印鉴(项I1-IN),该信息是能够对所希望保护的进一步数据和/或信息进行访问的必要条件。例如,继续参考本发明的优选应用,该印鉴的解密及读取是授权软件程序执行或获取软件程序使用许可的必需条件。如前所述,包含项I1-IN的向量I的副本通过一种软件程序用户不能访问的方式保存在软件程序中。通过将数组100中的项I1-IN与保存在软件程序中的向量I的项I1-IN比较可以验证是否正确读取了数组100(使用印鉴方案SS)。
执行如图8所示的方法的步骤,以对该数据/信息/软件程序的访问进行授权。
首先,在步骤50中,判断使用的认证令牌1是否与期望的认证令牌1对应。
该判断可以通过检查所使用的认证令牌1的型号和/或序列号是否与期望型号和/或序列号一致或者互相兼容来执行。
如果上述步骤50中的判断结果为“是”时,则在步骤52中,通过访问存储器4的私有区域4a验证所述印鉴是否完整或已被改变。如上所述,使用PIN可以访问存储器4的私有区域4a,其中PIN在许可初始化阶段生成,且由具有足够长度(例如,127个字符)一串可印刷字符(字母数字加符号)构成,使得各种可能的攻击无效或十分困难。事实上,当通过连续尝试猜测PIN时,如果失败尝试超过预设次数,令牌会以不可恢复的方式锁住。在这种情况下,只有联系软件开发商才能解锁令牌。
根据本发明的一个实施例,执行以下步骤:(a)当用户尝试启动待保护软件时,该软件提示用户***令牌并输入个人密码;(b)用户按照步骤(a)的要求提供其个人密码;(c)待保护软件,根据其自身但不是本发明一部分的方法,验证所述用户的个人密码是否正确(例如,使用哈希函数时,计算哈希值并验证计算得到的哈希值与之前存储在,如,文件、数据库、服务器等上的哈希值是否一致);(d)如果上述验证成功,则待保护软件使用与用户许可对应的PIN来开启与令牌的通讯,并根据本发明方法的步骤执行相关验证。
然后,在步骤54中,使用密钥ks和kv,以使用如图3中的步骤14和16所述的加密算法的已知方式,对加密文本对象C_data和加密印鉴方案SS C_scheme解密。随后,对印鉴方案ss标识的数组100中的项I1-IN的位置和数组100中的项I1-IN的有效位置进行一致性检查。
在第一次检查中,通过读取印鉴方案ss中指定的位置,验证得出,例如,通过检查如下参数中的一项或多项,从数组100中读取的内容与待保护软件程序中包含的向量I中的项I1-IN一致:(i)域基数;(ii)域长度;(iii)域类型(数字、字符串、日期等);(iv)固定域内容(即软件开发商名);(v)软件与印鉴指定的软件名的一致性;(vi)与包含通过询问硬件获取的印鉴(例如,令牌芯片的序列号)的硬件有关的信息和印鉴中刻写的等同数据的一致性。特别的,上述最后一点(vi)暗示出,即使有人恶意将整个私有存储区域4a的内容完全拷贝(并未毁坏芯片)至另一相同模式的令牌中,该区域中存储的数据仍不可访问。这是因为,该数据是与其特定的硬件(令牌)绑定的。
在本步骤中,所述方法还用于读取可变信息。通过非限制性的示例,该信息包括以下信息中的一条或多条:许可号;客户端名称;当前印鉴生成的时间(日期/具体时刻);许可激活的模块(如果适用)。
在对待保护数据/信息的访问被拒绝时,在步骤55中,如图8所示的方法结束。
在对待保护数据/信息的访问被允许时,则在步骤56中,随机生成新的印鉴方案向量SS,且在所生成的新的印鉴方案向量SS的基础上,生成与数组100类似的新数组。根据本发明的一个实施例,所述新数组包含数组100中相同的项I1-IN,这些项以新的顺序排列,且被具有不同字节数的块RBx,y分离。可选的,根据不同实施例,所述新数组包含不同于数组100中项I1-IN的新项I1 (a)-IN’ (a);项的I1 (a)-IN’ (a)数量N′也可以不同于项I1-IN的数量N。根据进一步的实施例,所述新数组包含部分与数组100中项I1-IN相同(例如,固定域相同,但可变域不同)的项I1 (a)-IN’ (a)。这样,生成了新的印鉴。
用于生成新印鉴的数据域与原有印鉴中的数据域相同,如上所述。日期/时刻数据由本地计算装置提供,在新印鉴生成过程中,该计算装置上运行所述软件。该方案由其涉及的当前置换方案演进而来。为随机字节(RBxy)预留的空间以随机方式重新分配(采用与上述相同的标准)。
每次印鉴根据如图8所示步骤56演进时,根据图3所示的步骤14-16进行的加密步骤一并执行。为了描述简洁,详细的执行不在赘述。
然后,预设或随机的一段时间之后,再次检查当前印鉴方案SS和当前数组之间的一致性,如步骤54所述。
迭代执行步骤54-56,直到通过步骤54得到可接受的结果,也即,使得当前数组中项I1 (a)-IN’ (a)的排列与当前印鉴方案SS标识的排列一致,以及所述块RBx,y的字节大小与当前印鉴方案SS指定的大小一致。
当通过步骤54得到作为输出的肯定结果时(向量SS与数组100之间的对应关系),认为所使用的令牌有效,此时,获得了访问后续数据和/或信息的授权(例如,执行软件程序的授权,或获得使用该软件程序的许可)。
从此时起,在该软件当前使用会话期间,仅检查所述令牌印鉴是否继续回复其自身的标识,而这在之前已经得到确认。
然而,之前描述的深度检查可以由所述软件再次触发。该软件的触发基于用户请求使用与使用该软件而言关键的功能(或者软件开发商认为重要的功能)的事件。
令牌连接中断时,可以检测到该中断,并要求重新***相同的令牌(“相同”表示同一序列号的令牌)。一旦***令牌,整个检验程序将被重新初始化。
否则,如果没有***该令牌,或者该令牌具有不同的序列号,该软件执行中止(这意味着,一旦用一令牌开始会话,就无法用另一令牌继续会话,即使该另一令牌包含有效的许可)。
本发明***和方法的优点明显。
针对在包含信息项I1-IN的向量中的排序选择,利用了这样一个(数学上可证明的)事实:根据所谓词汇置换排序的概念(可以根据Teinhaus-Johnson-Trotter算法获得),通过一次交换一对项的位置以遍历所有N个项的可能置换方法有且只有一个。该方法计算效率高,且构成了汉密尔顿路径,即,访问假设向量空间多面体所有的顶点,穿过每个顶点仅一次。在这种情况下,向量空间多面体是假设的立方体,其中每个顶点包含信息项I1-IN的可能组合,该组合与其余顶点上出现的其他组合不同。
遍历该序列的方式可以根据特定标准选择:事实上,通过沿着所述序列跳过所选择的一定数量的步骤以不为项数(即N!(N+1)!)的整除数,保证了在独特的汉密尔顿循环中生成原始序列。本质上,所述序列成为非循环回路。这样,定义了一个所谓的知识证据***,在该***中,令牌是“知识”(或者,换言之,印鉴)的所有者。
软件组件用于检查印鉴的完好性,该完好性表明出现在持有测试数据/信息的通用有效令牌上的许可的真实性(因此,其作为“证据”或“证明”)。
因此,考虑到以上因素,以及:
-所述加密***包括初始化第一印鉴的功能,打开印鉴,以及验证印鉴;
-所述印鉴每次根据不改变许可内容的随机方案改变其形式,但改变针对剩余消息的随机材料的排列;
-满足完成标准,即,每个初始和后续印鉴的验证均成功,不论针对许可采用何种方案;
-满足完美的完好性标准,具体的,如果印鉴形式不正确(即,如果经两次连续验证均为伪造),则该印鉴被接受的可能性为零。因此,该***的每次验证均为非交互零知识证明类型,需要指出的是,其使用演进式约定方案。综上,除了明显提高的安全性,还具有以下优点:
(i)即使要求进行数据传输,在软件和硬件之间的用于生效许可而进行的数据交互中,许可信息的安全性也不会打折扣(因为该许可未泄露);
(ii)同时,仍然可以使用相同的软件,在多台机器上管理多个浮动许可(即,最为普通的情形,在该情形下,存在多台机器和多个用户,且每个用户可以在其期望的机器上工作)。
关于PIN的使用,初次初始化时,自动生成目标代码,以达到足够长度(即,128个字符),且不对用户公开,但可由软件自动的、透明的及低级别的使用。这样,需要注意的是,该令牌可以用于,当超过预设失败尝试次数(例如,3或4次)之后对自身进行自动锁定,想要获取所述内容的非法用户访问该令牌私有区域的可能性大大降低。
进一步地,根据本发明,提供了各种保护级别:
(1)物理级,其要求访问所述认证令牌1,且使得该芯片不可篡改,或如果尝试物理地取出该芯片,则实际上不可能恢复芯片中保存的数据;相反,这些数据将丢失/损坏;
(2)私有存储区域4a,其对用户不可见,且仅可以通过软件开发商设置的密码进行访问;
(3)加密级别,在所述存储器的私有区域4a被发现和/或其访问密码被公开的情况下,能够进一步加强信息保护力度;
(4)项I1-IN的相互排列方案,使得该方案或由该方案生成的数组的简单读取不会允许根据该方案排列的数据被轻易恢复;
(5)一致性验证机制,使得对保存在数组中的数据导致甚至最小改变的访问或解密尝试触发印鉴的失效。
(6)在多台机器上安装所述软件以及实现浮动许可的可能性,所述浮动许可仅启用上面***了包含许可的令牌的机器。例如,仅使用3个令牌而将软件安装在10台机器上。
最后,应该清楚的理解到,可以在不脱离本发明保护范围的前提下,对本发明进行各种更改和变化。本发明的保护范围由其权利要求所限定。
例如,存储器4的私有区域4a可以容纳多个按照上述描述生成的印鉴,从而实现多个软件和用户的同时管理。
Claims (26)
1.一种用于对待保护信息的访问进行授权的认证***,其特征在于,包括:
硬件令牌(1),所述硬件令牌(1)具有包括私有存储区域(4a)的存储器,所述私有存储区域可通过个人识别码进行访问且存储:
为数字、和/或字母加数字、和/或字母类型的多个第一信息项(I1-IN);
为数字、和/或字母加数字、和/或字母类型的多个第一随机数据项(RBx,y),每个第一随机数据项具有各自的大小;
所述第一信息项(I1-IN)和所述第一随机数据项(RBx,y)排列在数组(100)内,具有至少一个读取顺序且使得每个所述第一信息项(I1-IN)与下一第一信息项(I1-IN)以所述读取顺序被一个所述第一随机数据项(RBx,y)分离;
所述私有存储区域(4a)进一步存储加密类型的第一印鉴方案向量(SS),所述第一印鉴方案向量(SS)包含所述数组(100)中所述第一信息项(I1-IN)的第一相对排列信息,以及每个第一随机数项(RBx,y)的第一大小信息,以允许对所述数组(100)中每个所述第一信息项(I1-IN)进行访问;
所述认证***进一步用于:
通过***所述个人识别码经受对所述私有存储区域(4a)的访问;
解密所述第一印鉴方案向量,并获取所述数组(100)中所述第一信息项(I1-IN)的所述第一相对排列信息,以及每个第一随机数项(RBx,y)的所述第一大小信息;
检查所述获取的第一相对排列信息和所述数组(100)中所述第一信息项(I1-IN)的排列之间的对应关系,以及所述获取的第一大小信息和所述数组(100)中所述第一随机数据项的大小之间的对应关系;
根据所述获取的第一相对排列信息和所述数组(100)中所述第一信息项(I1-IN)的排列之间的对应关系,以及所述获取的第一大小信息和所述第一随机数据项(RBx,y)的各自大小之间的对应关系检查结果,授权或拒绝对所述待保护信息项的访问;
其中,所述第一信息项(I1-IN)的所述第一相对排列信息在所述第一印鉴方案向量(SS)中以随机顺序相互跟随,所述第一信息项(I1-IN)的所述第一相对排列信息相互跟随所采用的随机顺序通过所述第一信息项(I1-IN)的所述第一相对排列信息置换的随机号获取,以及其中,执行所述置换包括:
(i)将选自所述第一信息项(I1-IN)的一初始信息项的位置与所述第一信息项(I1-IN)中的另一信息项的位置交换;
(ii)交换选自所述第一信息项(I1-IN)的两个或两个以上信息项的位置,这些位置位于,所述数组(100)中在所述交换操作(i)之前已经分配给所述初始信息项的位置之后。
2.根据权利要求1所述的认证***,其特征在于,当所述认证被拒绝时,还用于:
生成加密类型的第二印鉴方案向量,所述第二印鉴方案向量包括所述第一信息项(I1-IN)的第二相对排列信息和第二随机数据项(RBx,y)的第二大小信息;
基于所述第二相对排列信息,将所述第一信息项(I1-IN)排列在所述数组(100)中,且使得每个所述第一信息项(I1-IN)与下一第一信息项(I1-IN)以所述读取顺序,被具有与所述第二大小信息对应的大小的各自第二随机数据项(RBx,y)分离;
经受对所述待保护信息的访问授权的进一步准许以:解密所述第一印鉴方案向量,并获取所述第一相对排列信息和所述第一大小信息;检查所述获取的第一相对排列信息和所述数组(100)中所述第一信息项(I1-IN)的排列之间的对应关系,以及所述获取的第一大小信息和所述数组(100)中所述第一随机数据项的大小之间的对应关系。
3.根据权利要求1所述的认证***,其特征在于,当所述认证被拒绝时,还用于:
获取第二信息项(I1-IN),每个所述第二信息项具有各自的数字、字母加数字、或者字母类型的值(J1-JN);
生成多个第二随机数据项(RBx,y),每个所述第二随机数据项具有各自的数字、字母加数字、或字母类型的值,以及各自的大小;
生成加密类型的第二印鉴方案向量(SS),所述第二印鉴方案向量(SS)包括所述第二信息项(I1-IN)的第二相对排列信息和所述第二随机数据项(RBx,y)的第二大小信息;
基于所述第二相对排列信息,将所述第二信息项(I1-IN)排列在所述数组(100)中,且使得每个所述第二信息项(I1-IN)与下一第二信息项(I1-IN)以所述读取顺序,被具有与所述第二大小信息对应的大小的各自第二随机数据项(RBx,y)分离;
经受对所述待保护信息的访问授权的进一步准许以:解密所述第二印鉴方案向量,并获取所述第二相对排列信息和所述第二大小信息;检查所述获取的第二相对排列信息和所述数组(100)中所述第二信息项(I1-IN)的排列之间的对应关系,以及所述获取的第二大小信息和所述数组(100)中所述第二随机数据项的大小之间的对应关系。
4.根据权利要求1所述的认证***,其特征在于,所述第一信息项(I1-IN)包括固定类型数据和/或可变类型数据。
5.根据前述权利要求中任一项所述的认证***,其特征在于,第一信息项(I1-IN)的数量等于N,且其中,所述交换操作(i)执行B次,B在不为N!·(N+1)!除数的情况下随机选择。
6.根据权利要求5所述的认证***,其特征在于,所述交换操作(i)和(ii)重复执行M次,其中M为大于N的整数。
7.根据权利要求1所述的认证***,其特征在于,所述认证***用于对所述第一印鉴方案向量(SS)的所述第一信息项(I1-IN)的所述第一相对排列信息进行一次或多次置换,以生成第二印鉴方案向量。
8.根据权利要求1所述的认证***,其特征在于,所述认证***进一步用于使用加密算法生成的第一加密密钥(ks)对所述数组(100)进行加密。
9.根据权利要求8所述的认证***,其特征在于,所述第一加密密钥(ks)存储在所述存储器(4)的所述私有存储区域(4a)。
10.根据权利要求1所述的认证***,其特征在于,所述第一印鉴方案向量和第二印鉴方案向量通过各自的由加密算法生成的第二加密密钥(kv)加密。
11.根据权利要求10所述的认证***,其特征在于,所述第二加密密钥(kv)存储在所述存储器(4)的所述私有存储区域(4a)。
12.根据权利要求1所述的认证***,其特征在于,所述认证***进一步用于检查所述硬件令牌(1)是否与期望的硬件令牌对应。
13.根据权利要求1所述的认证***,其特征在于,所述检查所述第一相对排列信息和所述数组(100)中所述第一信息项(I1-IN)的排列之间的对应关系包括,验证以下至少一个:所述数组(100)中的所述第一信息项(I1-IN)的值(J1-JN)与各自期望值的一致性;各自第一信息项(I1-IN)的大小与其期望大小之间的对应关系。
14.根据权利要求1所述的认证***,其特征在于,所述认证***进一步用于,通过检查所述硬件令牌的序列号是否与期望的序列号对应来经受对所述私有存储区域(4a)的访问。
15.一种用于对待保护信息的访问进行授权的认证方法,其特征在于,包括:
获取数字、和/或字母加数字、和/或字母类型的多个第一信息项(I1-IN);
生成数字、和/或字母加数字、和/或字母类型的多个第一随机数据项(RBx,y),每个所述第一随机数据项具有各自的大小;
将所述第一信息项(I1-IN)和所述第一随机数据项(RBx,y)排列在数组(100)内,所述数组具有至少一个读取顺序,且使得每个所述第一信息项(I1-IN)与下一第一信息项(I1-IN)以所述读取顺序被一个所述第一随机数据项(RBx,y)分离;
生成加密类型的第一印鉴方案向量(SS),所述第一印鉴方案向量(SS)包含所述数组(100)中所述第一信息项(I1-IN)的第一相对排列信息,以及每个第一随机数项(RBx,y)的第一大小信息,以允许对所述数组(100)中每个所述第一信息项(I1-IN)进行访问;
经受对所述待保护信息的访问授权的进一步准许以:(i)输入个人识别码;(ii)解密所述第一印鉴方案向量,并获取所述第一相对排列信息和所述第一大小信息;以及(iii)检查所述获取的第一相对排列信息和所述数组(100)中所述第一信息项(I1-IN)的排列之间的对应关系,以及所述获取的第一大小信息和所述数组(100)中所述第一随机数据项的大小之间的对应关系;
当所述对应关系检查结果为“是”时,准许所述授权;
其中,所述生成所述第一印鉴方案向量(SS)包括:以随机顺序排列所述第一信息项(I1-IN)的所述第一相对排列信息,所述以随机顺序排列所述第一信息项(I1-IN)的第一相对排列信息包括:对所述第一信息项(I1-IN)的所述第一相对排列信息执行随机次数的置换;
以及其中,执行所述置换包括:
(i)交换选自所述第一信息项(I1-IN)的一初始信息项的位置和所述第一信息项(I1-IN)中的另一信息项的位置;
(ii)交换选自所述第一信息项(I1-IN)的两个或两个以上信息项的位置,这些位置位于,所述数组(100)中在交换步骤(i)之前已经分配给所述初始信息项的位置之后。
16.根据权利要求15所述的认证方法,其特征在于,当所述认证被拒绝时,还包括:
生成加密类型的第二印鉴方案向量,所述第二印鉴方案向量包括所述第一信息项(I1-IN)的第二相对排列信息和第二随机数据项(RBx,y)的第二大小信息;
基于所述第二相对排列信息,将所述第一信息项(I1-IN)排列在所述数组(100)中,且使得每个所述第一信息项(I1-IN)与下一第一信息项(I1-IN)以所述读取顺序,被具有与所述第二大小信息对应的大小的各自第二随机数据项(RBx,y)分离;
经受对所述待保护信息的访问授权的进一步准许以:解密所述第一印鉴方案向量,并获取所述第一相对排列信息和所述第一大小信息;检查所述获取的第一相对排列信息和所述数组(100)中所述第一信息项(I1-IN)的排列之间的对应关系,以及所述获取的第一大小信息和所述数组(100)中所述第一随机数据项的大小之间的对应关系。
17.根据权利要求15所述的认证方法,其特征在于,当所述认证被拒绝时,还包括:
获取数字、和/或字母加数字、和/或字母类型的第二信息项(I1-IN);
生成数字、和/或字母加数字、和/或字母类型的多个第二随机数据项(RBx,y),每个所述第二随机数据项具有各自的大小;
生成加密类型的第二印鉴方案向量,所述第二印鉴方案向量(SS)包括所述第二信息项(I1-IN)的第二相对排列信息和所述第二随机数据项(RBx,y)的第二大小信息;
基于所述第二相对排列信息,将所述第二信息项(I1-IN)排列在所述数组(100)中,且使得每个所述第二信息项(I1-IN)与下一第二信息项(I1-IN)以所述读取顺序,被具有与所述第二大小信息对应的大小的各自第二随机数据项(RBx,y)分离;
经受对所述待保护信息的访问授权的进一步准许以:解密所述第二印鉴方案向量,并获取所述第二相对排列信息和所述第二大小信息;检查所述获取的第二相对排列信息和所述数组(100)中所述第二信息项(I1-IN)的排列情况之间的对应关系,以及所述获取的第二大小信息和所述数组(100)中所述第二随机数据项的大小之间的对应关系。
18.根据权利要求15所述的认证方法,其特征在于,所述获取所述多个第一信息项(I1-IN)包括:获取固定类型数据和/或可变类型数据。
19.根据前述权利要求中任一项所述的认证方法,其特征在于,第一信息项(I1-IN)的数量等于N,且其中,所述交换步骤(i)执行B次,B在不为N!·(N+1)!除数的情况下随机选择。
20.根据权利要求19所述的认证方法,其特征在于,所述交换步骤(i)和(ii)重复执行M次,其中M为大于N的整数。
21.根据权利要求15所述的认证方法,其特征在于,还包括:对所述第一印鉴方案向量(SS)的所述第一信息项(I1-IN)的所述第一相对排列信息进行随机次数的置换,以生成所述第一相对排列信息的随机顺序。
22.根据权利要求15所述的认证方法,其特征在于,还包括:使用加密算法生成的第一加密密钥(ks)对所述数组(100)进行加密。
23.根据权利要求15所述的认证方法,其特征在于,所述第一印鉴方案向量(SS)通过由加密算法生成的第二加密密钥(kv)加密。
24.根据权利要求16所述的认证方法,其特征在于,所述第二印鉴方案向量(SS)通过由加密算法生成的第三加密密钥(kv)加密。
25.根据权利要求15所述的认证方法,其特征在于,所述检查所述获取的第一相对排列信息和所述数组(100)中所述第一信息项(I1-IN)的排列之间的对应关系包括,验证以下至少一个:所述数组(100)中的所示第一信息项(I1-IN)的值(J1-JN)与各自期望值的一致性;各自第一信息项(I1-IN)的大小与其期望大小之间的对应关系。
26.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机程序指令,所述计算机程序指令被加载在处理装置(1,6)中且设计为使得,当被执行时,所述处理装置用于执行根据权利要求15所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ITTO2012A000462 | 2012-05-28 | ||
IT000462A ITTO20120462A1 (it) | 2012-05-28 | 2012-05-28 | Sistema e metodo di protezione di dati informativi |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103559454A CN103559454A (zh) | 2014-02-05 |
CN103559454B true CN103559454B (zh) | 2018-04-17 |
Family
ID=46548739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310204033.3A Active CN103559454B (zh) | 2012-05-28 | 2013-05-28 | 数据保护***和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9246684B2 (zh) |
EP (1) | EP2670080B1 (zh) |
JP (1) | JP6184751B2 (zh) |
CN (1) | CN103559454B (zh) |
ES (1) | ES2663422T3 (zh) |
IT (1) | ITTO20120462A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11423498B2 (en) * | 2015-12-16 | 2022-08-23 | International Business Machines Corporation | Multimedia content player with digital rights management while maintaining privacy of users |
US10362373B2 (en) * | 2016-01-07 | 2019-07-23 | Cisco Technology, Inc. | Network telemetry with byte distribution and cryptographic protocol data elements |
US9971800B2 (en) * | 2016-04-12 | 2018-05-15 | Cisco Technology, Inc. | Compressing indices in a video stream |
JP6585846B2 (ja) * | 2016-07-06 | 2019-10-02 | 日本電信電話株式会社 | 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム |
US10333963B2 (en) * | 2016-10-28 | 2019-06-25 | Corax Cyber Security, Inc. | Identifying a vulnerability of an asset of a network infrastructure to mitigate |
IT201900016859A1 (it) | 2019-09-20 | 2021-03-20 | Leonardo Spa | Sistema e metodo di valutazione dell'addestramento di un operatore in una missione addestrativa in tempo reale |
CN112134881B (zh) * | 2020-09-22 | 2023-03-21 | 宏图智能物流股份有限公司 | 一种基于序列号的网络请求防篡改方法 |
CN113507448B (zh) * | 2021-06-17 | 2022-05-17 | 中国汽车技术研究中心有限公司 | 安全访问服务认证方法和*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1855810A (zh) * | 2005-04-26 | 2006-11-01 | 上海盛大网络发展有限公司 | 动态密码认证***、方法及其用途 |
CN1913427A (zh) * | 2005-07-29 | 2007-02-14 | 捷讯研究有限公司 | 用于加密智能卡pin输入的***与方法 |
CN102148683A (zh) * | 2010-02-04 | 2011-08-10 | 上海果壳电子有限公司 | 基于hash芯片或加密芯片的双因素认证方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5742035A (en) * | 1996-04-19 | 1998-04-21 | Kohut; Michael L. | Memory aiding device for credit card pin numbers |
US20020116617A1 (en) * | 1998-01-22 | 2002-08-22 | Talton David N. | System and method for authentication |
US7272723B1 (en) * | 1999-01-15 | 2007-09-18 | Safenet, Inc. | USB-compliant personal key with integral input and output devices |
FR2822971A1 (fr) * | 2001-04-03 | 2002-10-04 | St Microelectronics Sa | Systeme et procede de controle d'acces a des donnees protegees stockees dans une memoire |
US20040225880A1 (en) * | 2003-05-07 | 2004-11-11 | Authenture, Inc. | Strong authentication systems built on combinations of "what user knows" authentication factors |
US8799668B2 (en) * | 2009-11-23 | 2014-08-05 | Fred Cheng | Rubbing encryption algorithm and security attack safe OTP token |
-
2012
- 2012-05-28 IT IT000462A patent/ITTO20120462A1/it unknown
-
2013
- 2013-05-24 US US13/901,986 patent/US9246684B2/en active Active
- 2013-05-28 JP JP2013111742A patent/JP6184751B2/ja active Active
- 2013-05-28 EP EP13169589.2A patent/EP2670080B1/en active Active
- 2013-05-28 ES ES13169589.2T patent/ES2663422T3/es active Active
- 2013-05-28 CN CN201310204033.3A patent/CN103559454B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1855810A (zh) * | 2005-04-26 | 2006-11-01 | 上海盛大网络发展有限公司 | 动态密码认证***、方法及其用途 |
CN1913427A (zh) * | 2005-07-29 | 2007-02-14 | 捷讯研究有限公司 | 用于加密智能卡pin输入的***与方法 |
CN102148683A (zh) * | 2010-02-04 | 2011-08-10 | 上海果壳电子有限公司 | 基于hash芯片或加密芯片的双因素认证方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2013251897A (ja) | 2013-12-12 |
ITTO20120462A1 (it) | 2013-11-29 |
ES2663422T3 (es) | 2018-04-12 |
JP6184751B2 (ja) | 2017-08-23 |
EP2670080A1 (en) | 2013-12-04 |
US9246684B2 (en) | 2016-01-26 |
EP2670080B1 (en) | 2018-01-31 |
US20140351582A1 (en) | 2014-11-27 |
CN103559454A (zh) | 2014-02-05 |
US20150326396A9 (en) | 2015-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103559454B (zh) | 数据保护***和方法 | |
EP3639467B1 (en) | Computer-implemented system and method providing a decentralised protocol for the recovery of cryptographic assets | |
EP2359520B1 (en) | Distributed puf | |
WO2018046008A1 (zh) | 一种区块链加密射频芯片存储设计方法 | |
JP2777060B2 (ja) | オフライン端末による携帯用オブジェクトの認証方法及び対応する端末 | |
JP5563067B2 (ja) | 試験装置によってセキュアドチップへのアクセスを認証する方法 | |
US20200106600A1 (en) | Progressive key encryption algorithm | |
CN110472201A (zh) | 基于区块链的文本相似性检测方法及装置、电子设备 | |
WO2002015464A1 (en) | System and method for secure smartcard issuance | |
CN105340211A (zh) | 用于加密数据的***及方法 | |
CN108848064A (zh) | 授权管理方法及*** | |
CN111512590B (zh) | 用于密码认证的同态加密 | |
CN107908932A (zh) | 一种基于l算法的数字货币防伪及验证方法、***和设备 | |
JP4841790B2 (ja) | 不正行為に対する保護のための暗号通信方法 | |
CN101510875B (zh) | 一种基于n维球面的身份认证方法 | |
KR100948043B1 (ko) | 보안 요소의 클로닝을 방지하기 위한 방법 및 장치 | |
CN108574578A (zh) | 一种黑匣子数据保护***及方法 | |
CN105933303A (zh) | 一种文件篡改的检测方法及装置 | |
US7110858B2 (en) | Object identification uses prediction of data in distributed network | |
Paulus et al. | Physical unclonable functions for enhanced security of tokens and tags | |
CN108259471A (zh) | 专有信息的加密方法、解密方法、装置及处理设备 | |
CN107292172A (zh) | 用于相对于参考计算机文件自动验证目标计算机文件的方法 | |
CN107994984A (zh) | 一种密钥保护方法及装置 | |
EVANGELISTA | Security Target SOMA-c003 Electronic Passport Basic | |
Škorić | Physical Unclonable Functions for enhanced security of tokens and tags |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |