CN113647049A - 使用生物特征或其他模糊数据的后量子签名方案 - Google Patents

使用生物特征或其他模糊数据的后量子签名方案 Download PDF

Info

Publication number
CN113647049A
CN113647049A CN202080012261.9A CN202080012261A CN113647049A CN 113647049 A CN113647049 A CN 113647049A CN 202080012261 A CN202080012261 A CN 202080012261A CN 113647049 A CN113647049 A CN 113647049A
Authority
CN
China
Prior art keywords
key
signature
time
signing
lattice
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.)
Pending
Application number
CN202080012261.9A
Other languages
English (en)
Inventor
A·埃尔卡法拉尼
胜又修一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oxford University Innovation Ltd
Original Assignee
Oxford University Innovation Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Oxford University Innovation Ltd filed Critical Oxford University Innovation Ltd
Publication of CN113647049A publication Critical patent/CN113647049A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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 digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3226Cryptographic 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
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Bioethics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Abstract

描述了一些密码方法和系统。一种示例密码系统可以包括使用与签名者相关联的模糊数据对消息进行数字签名的签名引擎。该签名引擎被配置为使用格实例化和线性草图生成数字签名。该线性草图基于格实例化配置。该数字签名是该模糊数据和该消息的函数,并使用位于签名密钥空间中的签名时间签名密钥。该签名密钥空间是由该格实例化定义的空间。还描述了一种验证引擎的示例。该验证引擎被配置为接收该消息和该数字签名,并验证该消息是由该签名者签名。该验证引擎被配置为获取该签名者的密钥数据,至少包括初始化时间验证密钥,以基于该密钥数据和该接收到的数字签名计算距离度量,该距离度量指示该签名时间验证密钥的差异的量度,并且响应于该距离度量大于预定义的同态阈值,指示验证失败。该方法和系统可以用作鉴定机制。

Description

使用生物特征或其他模糊数据的后量子签名方案
技术领域
本发明涉及密码方法和系统。特别地,本发明涉及基于模糊数据输入的数字签名配置。所述方法和系统可用于鉴定用户并实现两个计算设备之间的安全通信。
背景技术
公钥加密法在实现数字设备之间的安全通信方面具有重要作用。例如,公钥加密法是现代电子商务、安全消息传递、网上银行和远程计算系统访问的基础。在许多密码方案中,向用户提供私钥和公钥。私钥保密,可用于对数字消息签名。公钥可以广泛传播,然后用于验证消息是否使用了该私钥签名。以这种方式,这对密钥能够通过将消息验证为源自用户来鉴定用户。
公钥密码系统的一个问题是,用户需要安全地存储他们的私钥。在许多情况下,私钥存储在电子设备的存储介质中,例如智能卡或通用串行总线(Universal Serial Bus,USB)设备。为了对消息进行数字签名,用户将该电子设备连接到计算设备,例如将智能卡插入读卡器或插入USB设备。然后,计算设备才能够访问私钥。或者,私钥可以存储在特定计算设备(例如智能手机)的安全存储器中。然而,即使在这种情况下,用户仍然需要该特定的计算设备来执行密码操作。这些系统为加密方法的推广带来了障碍,尤其是对于老年人等用户群体。
需要访问私钥的问题的一种建议解决方案是使用生物特征识别数据。例如,可以对用户的面部、指纹或虹膜进行测量,这些测量可以用于加密方法。这样的系统可以允许用户用其手指在销售点终端支付或用他们的面部授权在线交易。然而,这些方法受到这些测量的固有可变性的限制:每次进行测量时,数据都是嘈杂的并且会波动。在某些密码系统中,这种数据被称为“模糊”数据。
模糊数据为使用生物特征识别数据作为签名密钥带来了障碍。例如,假设用户准备了验证密钥vkFS,其中相应的签名密钥是其指纹x。当用户想要对消息进行签名时,她将使用其指纹作为签名密钥。但是,由于测量错误,她将只能复制与密钥注册期间使用的原始x“接近”的指纹x'。因此,即使使用x'作为签名密钥生成签名,也不会针对使用x生成的vkFS予以验证。为了解决这个问题,某些加密方法假定签名者可以使用额外的帮助,例如在签名期间访问在线服务器或访问离线令牌或电子设备。然而,这些方法又存在生物特征识别数据本要解决的问题。
Takahashi等人在其发表于Cryptology ePrint Archive,Report 2017/1188,2017的论文“具有模糊私钥的签名方案”(“Signature Schemes with a Fuzzy PrivateKey”)中,描述了一种模糊签名方案,该方案对诸如生物特征识别数据的嘈杂字符串进行操作。他们描述了两种不需要特定于用户的辅助数据来生成数字签名的方法,例如模糊提取器上下文中的辅助字符串。他们引入了一种称为“线性草图”(“linear sketch”)的工具,他们将其描述为有点类似于一次性垫加密方案的操作。然后他们展示了他们的模糊签名方案的两个具体实例。
虽然高桥描述的方法推进了密码方法领域,但它的缺点是容易受到量子计算机的攻击。多年来,对量子计算机主要是理论上的兴趣。然而,最近的工作表明,许多众所周知的公钥密码系统可以被足够强大的量子计算机破解。量子计算机的研究实现也在迅速发展。目前已有50和72量子位的量子计算机可用,并且有许多研究小组正在积极研究更高量子位的机器。
因此希望提供避免公钥加密法的常见问题的加密法解决方案,且其同时抵抗在后量子环境中的攻击。
发明内容
在所附的独立权利要求中阐述了本发明的各方面。然后在所附从属权利要求中阐述了本发明的某些变化。
附图说明
现在将参考附图通过仅示例的方式描述本发明的示例,其中:
图1A是示出根据示例的用于对消息进行数字签名的密码系统的示意图;
图1B是示出根据示例的用于验证消息的密码系统的示意图;
图2是示出根据示例的用于对消息进行数字签名和验证的密码系统的示意图;
图3是示出根据另一示例的用于对消息进行数字签名的密码系统的示意图;
图4A是示出根据示例的用于密码系统的签名设备的示意图;
图4B是示出根据示例的用于密码系统的验证设备的示意图;
图4C和图4D是示出示例密码设备的组件的示意图;
图5A至图5C是示出使用模糊数据的示例密码方法的一组流程图;
图6A至图6C是分别示出密钥生成过程、数字签名过程和验证过程的示例的流程图;和
图7A至图7D是示出根据示例的密码方法的密码函数的示意伪代码公式。
具体实施方式
在此描述的某些示例提供了安全抵御量子计算机攻击的密码方法和系统,即提供了所谓的后量子解决方案。某些示例通过使用格(lattice)实例化(例如基于格的加密法的实例)生成数字签名来提供这种安全性。这些示例进一步克服了在使用模糊数据源实施基于格的加密法时出现的问题。为此,提出了一种模糊签名方案,该方案使用与格实例化兼容的线性草图。该模糊签名方案可用于实现对数字消息进行签名和验证的电子设备。模糊签名方案还可用于实现确保数据完整性和/或用户真实性的设备。然后,这些电子设备可用于基于与用户相关联的模糊数据(例如生物特征识别测量)来鉴定用户。因此,某些示例系统和方法能够实现在不使用辅助设备或令牌的情况下在后量子环境中也是安全的生物特征识别鉴定。此处描述的某些示例可用于代替现有数字签名方案,以提供改进的安全性和/或生物特征识别集成。
图1A示出了根据示例的密码系统100。密码系统100可以形成电子设备、通信终端或生物特征识别读取器的一部分。密码系统100被配置为对模糊数据105进行操作。模糊数据105包括跨数据分布变化的数据。例如,模糊数据105可以包括数据值的阵列,并且每个数据值可以是按定义的数据格式存储的实数。模糊数据105可以从传感器测量和/或捕获的图像导出。模糊数据105与消息115一起被签名引擎110接收。消息115可以包括从预定义的字母表中选择的符号序列形式的数字消息。在某些实例中,该字母表可以包括符号“0”和“1”,消息115可以包括比特流。比特流可以表示字符串数据、数据文件或其他数字数据。消息115可以包括被签名以确保数据的完整性的数字数据,例如数字数据未被恶意方修改。签名引擎110使用模糊数据105,代表签名者对消息115进行数字签名。签名者可以包括作为模糊数据105的来源的用户。签名引擎110被配置为使用模糊数据105和消息115生成数字签名120。
在图1A的示例中,签名引擎110被配置为使用格实例化和线性草图函数生成数字签名120,其中线性草图函数是基于格实例化配置的,即线性草图是格兼容的。格实例化使用基于格的计算生成数字签名120的至少一个分量。n维格是
Figure BDA0003192662280000031
的任何离散加性子群。对于
Figure BDA0003192662280000032
的任何基,具有基向量的整数系数的所有线性组合的子群形成格。可以在任何域上的任何有限维向量空间内定义格。基于格的计算可以被视为利用格的计算或函数。基于格的计算生成格数字签名西格玛(sigma),即由定义的格数字签名方案产生的签名数据。在一个实例中,基于格的计算可以包括有错误学习(Learning With Errors,LWE)计算。在其他实例中,可以使用其他基于格的数字签名方案。
在图1A中,数字签名120作为模糊数据105和消息115的函数进行计算。数字签名120包括签名时间验证密钥122、来自基于格的计算的格数字签名西格玛124和线性草图126。签名引擎110使用位于签名密钥空间中的签名时间签名密钥来生成数字签名120。例如,签名时间验证密钥122、格数字签名西格玛124和线性草图126中的一个或更多个可以作为签名时间签名密钥的函数而生成。在一个实例中,签名时间验证密钥122是使用密钥生成器生成的。密钥生成器可以形成格实例化的一部分,例如形成格数字签名方案的一部分。签名密钥空间可以被预定义为具有某些属性。在本示例中,签名密钥空间是由格实例化定义的空间。线性草图可以包括模糊数据105和签名时间签名密钥的函数,例如线性和。线性草图可以被视为使用模糊数据作为编码密钥,对(保密的)签名时间签名密钥进行编码。用于生成线性草图的函数可以使用定义的散列函数来生成结果。示例线性草图实现的细节在上述高桥等人的论文中进行了描述,其内容通过引用并入本文。
图1B也示出了根据示例的密码系统130。图1B的密码系统130和图1A的密码系统100可以形成公共密码系统的一部分,或者可以被实现为单独的系统。在图1B中,密码系统130对消息115和数字签名120进行操作。在图1B中,消息115包括图1A的消息115或消息115的数字副本。消息115可以与数字签名120一起接收、单独接收和/或从可访问的数据存储设备获得。图1B中的数字签名120由诸如图1A的密码系统100之类的密码系统计算。
密码系统130包括验证引擎135。验证引擎135被配置为接收消息115和数字签名120,并且验证由签名者签名的消息。密码系统130可用于鉴定签名者和/或确保消息115在例如通过通信信道传输之后的数据完整性。验证引擎135被配置为获取签名者的密钥数据140,其至少包括初始化时间验证密钥145。初始化时间验证密钥145可以不同于用于生成数字签名数据122的签名时间验证密钥124。初始化时间验证密钥145可以由密钥生成器在与签名引擎110执行的过程不同的时间执行的过程中生成。密钥生成器可以是与用于签名引擎110的密钥生成器相同的密钥生成器,例如可以应用相同的密钥生成函数,但对一个或更多个变量使用不同的值。在一个实例中,可以使用从签名密钥空间采样的初始化时间签名密钥来生成初始化时间验证密钥145。初始化时间验证密钥145可以作为注册过程(例如密钥初始化过程)的一部分生成。在一个实例中,密钥数据140可以包括用初始化时间验证密钥生成的线性草图,其中初始化时间验证密钥145和初始化时间线性草图各自包括保密的初始化时间签名密钥的函数。如前所述,初始化时间线性草图可以包括在初始化时测量的模糊数据和保密的初始化时间签名密钥的函数。验证引擎135可以从可访问的密钥库,例如按签名者索引的数据库条目的形式,检索初始化时间验证密钥145。签名者可以在消息115或数字签名120中予以识别。
验证引擎135被配置为基于密钥数据140和接收到的数字签名120计算距离度量。距离度量指示签名时间验证密钥124的差异的量度。例如,距离度量可以指示签名时间验证密钥124和初始化时间验证密钥145之间的距离。验证引擎135被配置为输出验证成功或失败的指示150。在本示例中,验证引擎135被配置为响应于距离度量大于预定义的同态阈值,指示验证失败。在某些实例中,预定义的同态阈值是非零的。验证引擎135可能需要满足附加条件来指示验证成功。例如,验证引擎135可以尝试验证格数字签名西格玛124。这可以包括使用格数字签名西格玛124、消息115和签名时间验证密钥122的第一组分量来计算第一摘要(digest),并将其与形成格数字签名西格玛124的另一分量的第二摘要进行比较。接收到的数字签名120内的线性草图126可以与密钥数据140一起使用以生成重建的验证密钥。距离度量可以指示签名时间验证密钥和重建的验证密钥之间的差异的量度。如果距离度量大于预定义的同态阈值和/或如果格数字签名西格玛124的验证失败,则验证引擎135可以指示验证失败。
图2示出了包括第一终端202和第二终端204的密码系统200。第一终端形成签名设备。第二终端形成验证设备。这两个终端通过通信信道206通信耦合。通信信道可以包括使用任何合适的物理介质包括有线和无线接口的一个或更多个网络连接208。
第一终端202类似于图1A的密码系统100。参考图1A的数字标记具有相似功能的组件。第一终端202接收模糊数据205。第一终端202包括签名引擎210,签名引擎210一起接收模糊数据205和消息215。签名引擎210被配置为处理模糊数据205和消息215以生成数字签名220。签名引擎210可以以类似于图1A的签名引擎110的方式生成数字签名220。
第一终端202还包括发送器265。发送器265被配置为接收消息215和来自签名引擎210的数字签名220,然后通过通信信道206将该数据发送到第二终端204。发送器265可以将数字签名220和消息215作为公共数据包发送和/或可以分别发送这些数据项。在其他示例中,消息215可能不需要由发送器265发送,例如消息215的副本可以在第一终端202和第二终端204两者处皆可得。
第二终端202类似于图1B的密码系统130。第二终端204包括验证引擎235,其被配置为接收密钥数据240并输出验证成功或失败的指示250。验证引擎235可以以与图1B的验证引擎135类似的方式操作。第二终端204还包括接收器275。在本示例中,接收器275接收数据包280,该数据包280包括已经通过通信信道206传输的消息215和数字签名220。连同密钥数据240一起,数据包280被验证引擎235接收并处理,以输出验证成功或失败的指示250。
许多不同的鉴定系统可以使用类似于图2中所示的布置。例如,第一终端202可以包括生物特征识别读取器、销售点设备、自动柜员机和计算设备(例如台式机、笔记本电脑、智能手机或其他移动电话设备)等中的一个或更多个。第二终端204可以包括远程计算设备以控制对数据资源或位置和/或物理资源或位置的访问。模糊数据205可以包括生物特征识别数据,例如虹膜扫描、指纹扫描和/或面部扫描。消息215可以包括诸如所描述的比特序列之类的数字数据。密码系统200可用于检查消息215的数据完整性和/或鉴定提供模糊数据205的用户。
图3示出了被配置为通过一个或更多个网络进行通信的第一终端300-A和第二终端300-B的示例。该两个终端300-A、300-B可以具有共同的、即共享的配置。例如,每个终端300可以包括计算设备,例如服务器、台式机、膝上型电脑、平板电脑或智能电话。在该示例中,签名设备和验证设备的功能结合在一起。每个终端300因此包括签名引擎310和验证引擎335。每个终端300还包括收发器365以接收和发送数据。尽管收发器365被示为单个设备,但在其他示例中它可以包括单独的接收器和发射器。签名引擎310、验证引擎335和收发器365可以被实现为终端300内的安全密码模块360。例如,它们可以使用安全电子电路和/或计算机程序代码来实现,这些代码被安排为由处理器进行安全地存储和处理。安全电子电路可以基于诸如片上系统(System-on-Chip,SoC)、专用集成电路(Application-SpecificIntegrated Circuit,ASIC)或现场可编程门阵列(Field Programmable Gate Arrays,FPGA)之类的电子电路。在一个实例中,签名引擎310可以被配置为例如使用与生物特征识别传感器等的安全耦合或通过访问安全存储位置安全地访问模糊数据305。
图3的示例示出了两个用户可以如何向彼此发送可验证的消息。第一用户使用第一终端300-A准备第一消息315-A。然后他们提供模糊数据305-A,以使用签名引擎310-A对第一消息315-A进行签名。签名引擎310-A通过第一终端300-A的收发器365-A输出数字签名,与第一消息315-A一起发送到第二终端300-B。第二终端300-B的收发器365-B接收传输的数据,并将其传递给验证引擎335-B。验证引擎335-B获得第一用户340-A的密钥数据,并使用它来验证接收到的消息315-A,例如,如果消息由第一用户有效签名,则指示350-B将指示消息被验证。在某些实例中,成功的验证可用于鉴定例如与第二终端300-B或使用第二终端300-B的第二用户相对的第一用户。
在图3中,该过程也可以在另一个方向上操作。第二用户可以使用第二终端300-B准备第二消息315-B。第二用户提供模糊数据305-B,以使用第二终端300-B的签名引擎310-B对第二消息315-B进行签名。签名引擎310-B通过第二终端300-B的收发器365-B输出数字签名,与第二消息315-B一起发送到第一终端300-A。第一终端300-A的收发器365-A接收传输的数据,并将其传递给验证引擎335-A。验证引擎335-A获得第二用户340-B的密钥数据,并使用它来验证接收到的消息315-B,例如,如果该消息由第二用户有效签名,则指示350-A将指示该消息被验证。在某些实例中,成功的验证可用于鉴定例如与第一终端300-A或第一用户相对的第二用户。
现在将参考图4A,描述签名设备402的示例400的操作。签名设备402可以用作图1至图3中所示的密码系统的一部分,例如,实现签名引擎110、210、310。
签名设备402包括用于接收与签名者相关联的模糊数据405的模糊数据接口404和用于接收用于签名者进行数字签名的消息415的消息接口408。每个接口可以包括特定的硬件接口,或使用通用硬件接口来实现。例如,模糊数据接口404可以包括与生物特征识别传感器等的安全电耦合,消息接口可以包括与存储消息数据的存储器或接收消息数据的网络接口耦合的系统总线。
签名设备402还包括密钥生成器414以生成签名时间签名密钥和签名时间验证密钥。这些密钥可以包括仅用于一次签名操作的临时或暂时密钥。它们可以区别于在单独的初始化阶段生成的签名密钥和验证密钥。密钥生成器414可以被配置为对每个签名操作生成单独的一组签名时间密钥。签名密钥可以包括仅可由密钥生成器414访问的,例如存储在安全存储器中并且不能由密钥生成器414之外的组件和/或进程访问的,私有或保密密钥。密钥生成器414生成位于签名密钥空间中的签名时间签名密钥。签名密钥空间可以指示签名时间签名密钥可以采用的预定义且有限的一组值。在某些示例中,签名时间签名密钥可以从签名密钥空间中进行采样。在某些示例中,密钥生成器414可以生成签名时间验证密钥作为采样的签名时间签名密钥的函数。密钥生成器414可以使用格实例化来生成签名时间验证密钥。
图4A还示出了用于生成线性草图的线性草图生成器412。线性草图是格兼容的,例如可以作为位于用于格实例化的签名密钥空间中的签名时间签名密钥的函数来生成。因此,线性草图与基于格的数字签名方案兼容。格实例化可以包括有错误学习(LWE)方案的实现,例如有错误环学习(Ring-LWE)变体。密钥生成器414使用的签名密钥空间可以被配置为由格实例化定义的空间。在一个实例中,签名密钥空间可以包括Ring-LWE数字签名方案的环空间
Figure BDA0003192662280000061
瓦蒂姆·尤巴舍夫斯基(Vadim Lyubashevsky)的论文“无陷门的格签名”(“Lattice signatures without trapdoors”)中描述了一种经过修改后可以实现本示例的示例性同类Ring-LWE,该论文发表于EUROCRYPT 2012,LNCS的第7237卷,第738-755页,施普林格(Springer),海德堡(Heidelberg),2012年4月,其内容通过引用并入本文。
由线性草图生成器412生成的线性草图包括模糊数据405的函数。在一个实例中,线性草图包括模糊数据405和签名时间签名密钥的线性函数。在一个实例中,线性草图可由线性草图函数生成,该函数计算签名时间签名密钥的逆散列,然后返回逆散列与模糊数据的缩放版本的线性和。在该实例中,逆散列可以是散列函数的逆,散列函数被配置为生成位于签名密钥空间中的输出。线性草图可被视为编码方案的一部分,其中线性草图表示使用模糊数据作为编码密钥的签名时间签名密钥的编码。签名时间签名密钥因此被保密。
在图4A的签名设备402中,签名生成器416通信地耦合到消息接口408、线性草图生成器412和密钥生成器414。签名生成器416被布置为接收来自消息接口408的消息415和来自密钥生成器414的签名时间签名密钥,并为输出接口418提供用于输出的数字签名420。签名生成器416被配置为使用消息415和签名时间签名密钥生成数字签名420。签名生成器416被配置为生成用于包含在数字签名420中的格数字签名西格玛。该格数字签名西格玛使用格实例化生成。格数字签名西格玛可以包括多个子分量,并且可以根据格数字签名方案(例如Ring-LWE)格实例化的签名过程而生成。在本示例中,数字签名420至少包括来自基于格的线性草图生成器412的线性草图、来自密钥生成器414的签名时间验证密钥和由签名生成器416生成的格数字签名西格玛。数字签名420可使用相比签名时间验证密钥有变化的初始化时间验证密钥来验证,其中签名时间验证密钥的变化可与预定义的同态阈值相比较。具体验证过程将参考下面呈现的验证设备的示例更详细地描述。
在签名设备402的一种实现方式中,密钥生成器414被配置为通过对签名密钥空间进行采样来生成签名时间签名密钥。在示例中,签名密钥空间可以包括阿贝尔群(abeliangroup),其与用于生成格数字签名西格玛的格实例化兼容。然后由密钥生成器414生成作为采样的签名时间签名密钥的函数的签名时间验证密钥。在该实现中,签名生成器416被配置为使用采样的签名时间签名密钥来使用签名函数对消息415进行数字签名。签名函数可以包括被配置为输出格数字签名西格玛的格实例化的签名函数。此外,线性草图生成器412被配置为使用以采样的签名时间签名密钥和模糊数据415作为输入的线性草图函数。
在某些实例中,密钥生成器414和签名生成器416被配置为使用公共参数来配置所应用的函数。公共参数可以作为对签名设备402的输入而提供。公共参数可以包括两个分量:配置密钥生成器414和签名生成器416的第一分量和配置线性草图生成器412的第二分量。
图4B示出了验证设备432的示例430。验证设备432可以用作图1至图3中所示的密码系统的一部分,例如,以实现签名引擎135、235、335。验证设备432可以用于验证由签名设备402生成的数字签名420。不过,签名设备402和验证设备432在某些实例中也可以通过位于不同位置的单独的实体而实现,例如如图2所示。在其他实例中,它们也可以组合成单个设备,例如如图3所示。
图4B的验证设备432包括数字签名接口434、消息接口436和密钥数据接口438。如前所述,这些接口可以是相对于其他电子组件(例如安全收发器)的单独电子接口和/或者可以包括通用系统总线接口,例如到存储器的安全接口。数字签名接口434被配置为接收由签名引擎402生成的数字签名420。因此,数字签名包括签名者的签名时间验证密钥、格数字签名西格玛和线性草图。消息接口436可以以类似于消息接口408的方式实现。消息接口接收消息415。消息415可以包括与图4A中的消息415的二进制比特序列相同的二进制比特序列。在某些实例中,可能不知道输入到验证设备432的消息415的二进制比特序列是否与输入到签名设备402的消息415的二进制比特序列相同。验证设备432可以用于检查是否是这种情况。与其他示例一样,消息415可以简单地包括待验证的数据,例如,可以包括文件或数据流以及用于字符串消息的显式比特序列。密钥数据接口438接收密钥数据440,该数据至少包括签名者的初始化时间验证密钥。初始化时间验证密钥是在与数字签名420的生成时间不同的时间,例如在签名的时间之前的时间,密钥生成操作的结果。初始化时间验证密钥和签名时间验证密钥皆是使用签名密钥生成的,签名密钥位于由格实例化定义的签名密钥空间中。例如,初始化时间验证密钥可以由以与图4A的密钥生成器414类似的方式操作的密钥生成器生成。初始化时间验证密钥可以在使用验证引擎进行鉴定之前的用户注册过程期间生成。在一个实例中,在初始化时也获得与用户相关联的模糊数据,这用于生成形成密钥数据440的一部分的线性草图。例如,线性草图生成器412和密钥生成器414可以在初始化时予以应用,以生成初始化时间验证密钥和初始化时间线性草图。
图4B的验证设备432包括与数字签名接口434、消息接口436和密钥数据接口438通信耦合以分别接收数字签名420、消息415和密钥数据440的验证引擎。验证引擎442被配置为执行一系列操作来验证数字签名420。第一操作涉及使用来自数字签名420的线性草图和来自密钥数据440的初始化时间验证密钥生成重建的验证密钥。在某些实例中,可以通过首先确定来自数字签名420的线性草图和来自密钥数据420的线性草图之间的线性草图差异来生成重建的验证密钥。然后,密钥重建函数可以采用该线性草图差异和初始化时间验证密钥作为输入,生成重建的验证密钥。线性草图差异可以由在基于线性草图的签名方案中使用的差异重建(difference reconstruction,DiffRec)函数生成。密钥重建函数可以基于在基于线性草图的签名方案中使用的MVK函数,该函数类似于线性草图生成器412使用的线性草图函数。第二操作涉及计算距离度量,该距离度量指示从数字签名420获得的签名时间验证密钥的差异的量度。该距离度量可以是签名时间验证密钥和重建的验证密钥之间差异的量度。由于模糊数据405的使用,签名时间验证密钥可能不等于通过密钥数据440对验证引擎442可用的初始化时间验证密钥。距离度量允许验证引擎442确定“接近度”的量度,该“接近度”可用于确定签名时间验证密钥是否“足够接近”初始化时间验证密钥以允许验证。距离度量可以是初始化时间验证密钥的函数。在一个实例中,可以将距离度量与指示弱同态水平的阈值β(例如,数字签名方案是β-弱同态)进行比较。阈值β可以是非零的。计算距离度量后,验证引擎442被配置为至少使用距离度量来验证数字签名420,并经由输出接口444输出验证成功或失败的指示446。验证成功可用于鉴定对消息415进行签名的用户、确认被用户批准的消息415,和/或指示签名消息415的数据与接收到的消息415的数据相匹配等其他用途。
在一个实例中,距离度量可以由作为数字签名420的一部分接收的签名时间验证密钥和作为密钥数据440的一部分接收的初始化时间验证密钥的比较产生。如果距离度量大于阈值,则验证引擎442可以指示验证失败。在一个实例中,还可以进行检查以确认格数字签名西格玛得到验证。这可以使用如应用于数字签名420(例如格数字签名西格玛和验证密钥分量)和消息415的来自格数字签名方案的验证函数来执行。在该实例中,数字签名至少基于计算出的距离度量和西格玛验证的输出而被验证。
图4C示出了实现密码系统的计算设备450。计算设备450包括至少一个处理器452、存储器454、传感器接口456、网络接口458和输出接口460。这些组件使用系统总线462电耦合。存储介质470也电耦合到存储总线462。传感器接口456可以实现图4A的模糊数据接口404。传感器接口456可以包括安全接口,以将从生物特征识别传感器读取的传感器数据存储在存储器454的安全区域中。网络接口458可以将计算设备450耦合到诸如通信信道206(例如如在网络208和308上实施的)之类的通信信道。
计算设备450还包括用于实现若干个密码功能的电子电路。该电子电路可以包括一个或更多个微处理器或模块化处理系统。在某些示例中,电子电路可以包括,例如,以SoC、ASIC或FPGA的形式,安全地安装在计算设备450的主板上的专用处理芯片。电子电路包括密钥生成器472、签名电路474和验证电路476。签名电路474可以实现图4A的签名设备402,或图1到图3中的签名引擎110、210、310之一。验证电路476可以实现图4B的验证设备432,或图1到图3中的验证引擎135、235、335之一。在一个实例中,输出接口460可以包括显示器以显示验证指示446。在另一实例中,验证指示446可用于使用网络接口458与客户端设备进行通信。
图4D示出了作为图4C的计算设备405的变体的计算设备455。在图4D中,存储介质包括用于实现使用图4C中的电子电路实现的若干个密码功能的计算机程序代码(即指令)。存储介质可以是非暂时性的,例如磁或固态磁盘驱动器等。如此,计算机程序代码包括密钥生成器代码482、签名引擎代码484和验证代码486。签名引擎代码484可以实现图4A的签名设备402,或图1到图3中的签名引擎110、210、310之一。验证引擎代码486可以实现图4B的验证设备432,或图1到图3中的验证引擎135、235、335之一。计算机程序代码可以被加载到存储器454中,以由至少一个处理器452执行。计算机程序代码可以形成计算设备455的操作系统的一部分,例如可以作为内核或操作系统服务的一部分,在受保护的存储器中安全地执行。
密钥生成器电路472和密钥生成器代码484实现密钥生成器。密钥生成器可以类似于图4A中所示的密钥生成器414。由密钥生成器电路472和密钥生成器代码484实现的密钥生成器可以由签名电路474或签名引擎代码484使用,例如经由应用程序编程接口调用来实现在此描述的密钥生成器414的功能。如上所述,由密钥生成器电路472和密钥生成器代码484实现的密钥生成器也可以用于至少生成初始化时间验证密钥。密钥生成器通常被配置为生成诸如图1至图4的密钥数据140、240、340、440之类的密钥数据。下面更详细地描述密钥生成器可以如何生成初始化时间验证密钥的示例。
在一个示例中,密钥生成器被配置为,例如,在创建任何数字签名之前的初始化或注册阶段,生成初始化时间签名密钥和初始化时间验证密钥。初始化时间签名密钥可以从定义的签名密钥空间中进行采样。初始化时间签名密钥不能在密钥生成器之外使用。然后,可以生成作为初始化时间签名密钥的函数的初始化时间验证密钥。该函数可以生成初始化时间验证密钥作为格实例化中的边界,例如基于下文将更详细地描述的vk=ask+e。在某些实例中,初始化时间签名密钥可用于生成也由密钥生成器输出的线性草图,例如以类似于如上所述的在签名时生成线性草图的方式。在这种情况下,初始化时间线性草图可以包括初始化时间签名密钥的函数和模糊数据的测量,例如不同于如签名时执行的生物特征识别扫描的初始生物特征识别扫描。因此,用于在初始化时生成线性草图的模糊数据可能相比用于生成在签名时形成数字签名一部分的线性草图的模糊数据有变化。如果由密钥生成器生成线性草图,它可以与初始化时间签名密钥一起形成图1至图4的密钥数据140、240、340、440的一部分。
前述示例对模糊数据进行操作。模糊数据可以包括其值随数据分布而变化的数据。这种数据分布可能是多元的。模糊数据可以包括固定长度的二进制数据序列。模糊数据可以代表一个或更多个实数。数据分布可以参考该固定长度的二进制数据序列来定义。在某些实例中,生物特征识别数据(例如指纹或虹膜扫描)可被转换为l位整数。模糊数据的度量空间X可以定义为
Figure BDA0003192662280000091
其中
Figure BDA0003192662280000092
是依赖于实现方式的参数(例如模糊数据的性质,例如获取的生物特征识别数据的维度)。参数
Figure BDA0003192662280000093
可以由安全参数κ参数化。度量空间可以用距离函数定义,例如其中模糊数据的任意两个实例之间的距离具有设定的属性。例如,度量空间可以被定义为关于坐标加模1(coordinate-wise addition modulo 1)的阿贝尔群。数据分布可以被选择为度量空间的离散化版本上的有效可采样分布。在此,分布的离散化可以通过舍入到长度λ来执行。在一个实例中,模糊数据可以包括反映具有噪声的已知模式的数据,例如指定对象的图像或其他测量。
在一个实例中,可以根据Ring-LWE变体生成验证密钥(例如,在初始化时间或签名时间)。在该实例中,来自每组初始化时间验证密钥和签名时间验证密钥的每个验证密钥vk是签名密钥sk、配置参数a和从定义的噪声分布中采样的噪声项e的函数。根据Ring-LWE方案,签名密钥可以表示为一个多项式,而参数a和噪声项e可以表示为多项式向量。在特定的Ring-LWE示例中,vk=ask+e。签名密钥可以是来自签名密钥空间的样本。配置参数根据签名密钥空间选择,例如如果签名密钥空间是
Figure BDA0003192662280000094
则可以从
Figure BDA0003192662280000095
中进行配置参数采样(即选择)。配置参数的分量可以至少包括上述公共参数。配置参数可以由设置过程生成。设置过程可以将安全参数κ作为输入并输出配置参数。配置参数可以作为对密钥生成、签名和验证操作的附加(公共)输入而提供。
签名密钥空间
Figure BDA0003192662280000096
可以看作向量空间
Figure BDA0003192662280000097
在Ring-LWE示例中,可以定义为环空间
Figure BDA0003192662280000098
其中X是上述的模糊数据的度量空间。签名密钥空间可以是阿贝尔群或交换群。在线性草图函数中,线性草图可以计算为R+T·X,其中X是模糊数据,即
Figure BDA0003192662280000099
可以重新整理至([0,1)l)n中,其中n是可以定义为安全参数κ的多项式的格维数,l是模糊数据的位长(例如标量),
Figure BDA0003192662280000101
是n的倍数。在该实例中,R可以表示处理过的签名密钥分量,例如采样的签名密钥分量的逆散列函数。如果散列函数被配置为输出在签名密钥空间中的值,则
Figure BDA0003192662280000102
Figure BDA0003192662280000103
可以在
Figure BDA0003192662280000104
上执行与线性草图相关联的坐标加法和非运算。在一个实例中,T是密码系统的可配置参数,表示其中计算格数字签名西格玛分量的并行重复次数。格数字签名西格玛还可以包括与进一步的噪声样本有关的分量。
在一个实例中,使用Ring-LWE变体,例如根据格数字签名方案,格数字签名西格玛可以包括摘要分量。这可以使用数字签名散列函数生成。该函数可以包括在签名时由格实例化(例如,生成格数字签名西格玛的实例化的签名函数)生成的临时(或“西格玛”)验证密钥b、消息(即115、215、315等之一)以及从签名密钥空间附加采样的分量的函数。在一个实例中,格数字签名西格玛可以包括使用T个采样的(“西格玛”)签名密钥分量
Figure BDA0003192662280000105
生成的(“西格玛”)分量
Figure BDA0003192662280000106
Figure BDA0003192662280000107
其中
Figure BDA0003192662280000108
(例如分量是来自上述签名密钥空间的样本,即随机选择),以及T个采样的噪声分量
Figure BDA0003192662280000109
T个输出可以与消息和临时验证密钥b一起提供给数字签名散列函数以生成摘要。此处的采样可以作为从签名密钥空间中的随机选择(在实现中可能是基于随机数生成器的限制的伪随机)。在一个实例中,散列函数的输入可以串接(concatenated),并将散列函数应用于所得比特序列。摘要、T个分量
Figure BDA00031926622800001010
Figure BDA00031926622800001011
以及临时验证密钥b可以由格实例化输出作为格数字签名西格玛。
在使用Ring-LWE变体的情况下,密钥生成器可以配置为从签名密钥空间中采样初始化时间签名密钥skI和从定义的噪声分布中采样噪声项,并使用验证密钥计算vkI=askI+e来计算初始化时间验证密钥。配置参数可以包括用于签名时间验证密钥计算的相同配置参数。
在一个实例中,距离度量包括在签名时间验证密钥和重建的验证密钥之间评估的l-∞度量。在一个实例中,l-∞度量还用于将初始化时间验证密钥与构成格数字签名西格玛一部分的临时验证密钥b进行比较。可以使用以签名时间验证密钥、消息和数字签名西格玛作为输入的格数字签名方案验证函数来对格数字签名西格玛进行验证。
如果根据上述Ring-LWE变体生成摘要,则如本文所述的验证引擎对格数字签名西格玛的验证可以包括使用格数字签名西格玛计算摘要的第二版本。在一个实例中,与格数字签名签名函数所应用的数字签名散列函数相同的数字签名散列函数也可以应用于消息、从格数字签名西格玛中提取的临时验证密钥b以及T个分量
Figure BDA00031926622800001012
Figure BDA00031926622800001013
如果摘要的第二版本与从格数字签名西格玛获得的摘要不匹配,则可以指示格数字签名西格玛的验证失败。
在某些实例中,可以通过省略摘要输入的某些位来减小形成格数字签名西格玛一部分的摘要的大小,例如通过仅包括将验证密钥计算应用于采样的签名密钥分量的结果的有效位。
在某些实例中,密码系统是使用一个或更多个参数配置的。这些参数可以包括:格实例化的格维度(例如,上文使用的n—这可以设置为安全参数κ的多项式);公共配置参数的大小(例如,上述配置参数空间的k);预定义的同态阈值(例如,如上所述的β);用于定义签名密钥空间(例如
Figure BDA00031926622800001014
)的模数大小(例如q);定义的噪声分布的变化量度;以及待为线性草图计算的一些值(例如上文的T)。模数大小可以被限制为质数。这些参数的值可以根据安全性和实施要求来选择。噪声或误差分布可以定义为离散高斯分布。此处描述的变量可以表示为具有定义的大小的矩阵、向量或张量。例如,可以使用以下参数值配置提供128位安全性的密码系统:n=4096,k=3,q=252+4·23+5,T=20,基于高斯宽度大小27.6的方差集合。本示例中模糊数据度量空间的维数
Figure BDA00031926622800001015
为10*n。本示例的密码系统被配置为生成215个签名(其中Q=215),例如用户每天使用生物特征识别数据签名3次,可以使用30年。下表总结了示例密码系统中使用的某些参数,包括用于测试实现的示例属性和值:
Figure BDA0003192662280000111
图5A示出了根据示例的密码方法500。该方法500可用于鉴定用户。在块510,该方法包括在第一设备处对消息进行数字签名。在其他示例中,第一设备可以包括图2的第一终端202、图3中的终端300之一或图4A的签名设备402。块510产生数字签名,例如前述图中的数字签名120、220、320、420。在块520,数字签名从第一设备传送到第二设备。在其他示例中,第二设备可以包括图2的第二终端204、图3中的终端300之一或图4B的验证设备432。可以通过通信信道,例如通过一个或多个网络建立的有线和/或无线连接和/或通信信道,进行通信。在块530,消息在第二设备处被验证,即确定消息是否已经被签名者有效签名。
图5B示出了可以在第一设备处发生的块510的实现。图5B的方法可以由如前所述的签名设备或签名引擎来执行。在块512,获取将由签名者进行数字签名的消息。这可以包括前述图的消息115、215、315、415。在块514,获取与签名者相关联的模糊数据。这可以包括前述图的模糊数据105、205、305、405。在块514,生成签名时间签名密钥。生成签名时间签名密钥以驻留在定义的签名密钥空间例如
Figure BDA0003192662280000112
中。签名时间签名密钥是从定义的签名密钥空间中采样的。在块516,生成签名时间验证密钥。签名时间验证密钥作为签名时间签名密钥的函数。在一个实例中,签名时间验证密钥是使用Ring-LWE公式例如如上所述使用vk=ask+生成的。在另一实例中,可以使用另一种基于格的函数。
一旦通过块514和516生成了签名时间密钥对,在块518,生成格兼容线性草图。在这种情况下,格兼容线性草图意味着实现线性草图的一组函数适合与用于生成签名和验证密钥并且用于生成格数字签名西格玛(例如,用于根据格数字签名方案对消息进行签名)的一组基于格的函数兼容。可以通过将函数组的输出空间配置为互补和/或兼容来实现兼容性。线性草图包括模糊数据和签名时间签名密钥的函数。它可以包括模糊数据和来自签名密钥空间的样本的线性函数。线性草图包括来自块514的采样密钥和来自块512的模糊数据的函数。签名密钥空间是由格实例化定义的空间。线性草图可以配置为在该空间中操作(例如,通过校准与线性草图一起使用的散列函数以输出该空间内的值)。在线性草图中,模糊数据用作编码密钥来对签名时间签名密钥进行编码。
在块520,生成用于消息的数字签名。数字签名包括线性草图、签名时间验证密钥和格数字签名西格玛。作为块520的一部分,格数字签名西格玛可以基于消息和签名时间签名密钥生成。例如,格数字签名西格玛可以包括使用消息、临时验证密钥b以及基于格实例化计算的分量
Figure BDA0003192662280000113
Figure BDA0003192662280000114
生成的摘要。然后可以输出数字签名。数字签名可使用相比签名时间验证密钥有变化的初始化时间验证密钥来验证。例如,签名时间验证密钥的变化可与预定义的同态阈值相比较,如果变化大于阈值,则可以生成验证失败的指示。
图5C示出了用于执行图5A的块570的密码方法。图5C的方法可以由如前所述的验证设备或验证引擎来执行。在块572,获取消息。这可以包括前文图中的消息115、215、315、415。该消息可以从通过通信信道传输的数据中获取。选择该方法的块来验证由签名者,例如参考图5A和图5B所述的签名者,进行数字签名的消息。或者,这些块可以被视为要验证消息的完整性。在块574,获取数字签名。这可以作为在另一设备上执行的图5B中所示的方法的结果而获得。因此,数字签名包括格数字签名西格玛、签名者的签名时间验证密钥和线性草图。线性草图可以包括签名时间签名密钥和模糊数据的线性函数。在一个实例中,格数字签名西格玛还可以包括数字签名数据,例如摘要、临时验证密钥b以及分量
Figure BDA0003192662280000121
Figure BDA0003192662280000122
格数字签名西格玛是根据格实例化使用签名时间签名密钥生成的。线性草图是基于与签名者相关联的模糊数据生成的,其中线性草图与格实例化兼容。
在块576,获取密钥数据。密钥数据至少包括签名者的初始化时间验证密钥。在初始密钥生成操作还生成初始化时间线性草图的情况下,这也可以作为密钥数据的一部分提供。密钥数据可以是公开的。初始化时间验证密钥和签名时间验证密钥皆是使用签名密钥生成的,签名密钥位于由格实例化定义的签名密钥空间中。
在块578,从线性草图和密钥数据生成重建的验证密钥。可以通过确定形成密钥数据的一部分的线性草图和形成数字签名的一部分的线性草图之间的差异来生成重构的验证密钥。可以使用该差异,与来自密钥数据的初始化时间验证密钥一起,以构建较接近签名时间验证密钥的验证密钥版本(“重建的”密钥)。
在块580,计算指示签名时间验证密钥的差异的量度的距离度量。距离度量可以指示签名时间验证密钥和重建的验证密钥之间的差异的量度。通过重建的验证密钥,距离度量可以被视为初始化时间验证密钥的函数。在一个实例中,距离度量可以包括l-∞度量(也可替代地称为切比雪夫(Chebyshev)或“棋盘”距离)。可以关于签名时间验证密钥和重构的验证密钥之间的差异来评估距离度量。
在块582,使用计算的距离度量验证数字签名。在一个实例中,将距离度量与阈值β进行比较,如果它高于阈值,则认为验证失败,例如无法对用户进行鉴定,无法确认消息经过了用户签名。在一个实例中,验证数字签名还包括使用签名时间验证密钥和消息来验证格数字签名西格玛,该验证是根据格实例化,例如根据格数字签名方案的验证函数来执行的。在该实例中,至少基于计算的距离度量来验证数字签名,包括基于计算的距离度量和验证格数字签名西格玛的结果来验证数字签名。例如,如果两个检查都通过,则数字签名被验证。
在某些示例中,图5A至图5C中所示的任何一种方法可以包括,作为初始操作,为签名者生成密钥数据。在一个实例中,这可以包括生成初始化时间签名密钥、位于签名密钥空间中的初始化时间签名密钥以及生成作为初始化时间签名密钥和噪声项的函数的初始化时间验证密钥,其中噪声项是从定义的噪声分布中采样的。例如,初始化时间签名密钥可以是来自签名密钥空间的样本,可以使用上述的Ring-LWE验证密钥计算来计算初始化时间验证密钥。密钥生成操作仅可返回初始化时间验证密钥。密钥生成操作可以在用户向特定安全系统注册时发生。密钥生成操作还可生成初始化时间线性草图,该草图也构成密钥数据的一部分。密钥数据可以存储在由用户的标识符索引的数据存储中,例如使得该密钥数据可以作为块576的一部分被检索。在一个实例中,生成密钥数据还包括生成作为模糊数据(例如初始生物特征识别扫描)和初始化时间签名密钥的函数的线性草图。
在某些实例中,各组初始化时间验证密钥和签名时间验证密钥中的每个验证密钥是签名密钥、配置参数和从定义的噪声分布中采样的噪声项的函数,配置参数是基于签名密钥空间选择的。例如,这可能是验证密钥计算基于Ring-LWE变体的情况。在某些实例中,格实例化是基于预定义的格维度定义的,签名密钥空间是基于预定义的模数大小定义的。格维度和模数大小可以被配置为满足任何密码系统或方法所需的安全级别。
在某些实例中,线性草图是基于散列函数的逆定义的,散列函数输出签名密钥空间内的值。
在某些实例中,初始化时间验证密钥和签名时间验证密钥是公钥,签名时间签名密钥是私钥,例如适合在公钥基础设施(public key infrastructure,PKI)中使用。
图6A、图6B和图6C示出了密钥生成功能、签名功能和验证功能的示例。这些功能可以由上述系统和方法使用和/或实现。
图6A的密钥生成功能600接收公共参数602作为输入。公共参数包括两个分量:第一密钥生成(“KG”)参数604和第二线性草图(“LS”)参数606。密钥生成参数604可以由格数字签名方案的设置功能生成。线性草图参数606可由线性草图方案的设置功能产生。格数字签名方案的设置功能可以包括从
Figure BDA0003192662280000133
获取样本,而线性草图方案的设置功能可以包括从
Figure BDA0003192662280000132
获取样本。图6A的密钥生成功能600还接收模糊数据608作为输入。
图6A的密钥生成功能600包括三个功能子组件:密钥样本子组件610、密钥生成子组件614和线性草图子组件616。密钥样本子组件610被配置为通过从签名密钥空间采样生成签名密钥612。密钥生成子组件614被配置为使用密钥生成参数604和签名密钥612来生成验证密钥618。密钥生成子组件614可以使用格数字签名方案的子组件来实现并且可以根据Ring-LWE实例化,例如按vk=ask+e生成验证密钥,其中密钥生成参数604设置为a。线性草图子组件616被配置为使用线性草图参数606、签名密钥612和模糊数据608生成线性草图620。线性草图子组件616可以使用来自线性草图的子组件来实现,并且可以将线性草图计算为
Figure BDA0003192662280000131
其中Hz是与格实例化兼容的散列函数(即,其中散列函数的值域对应于签名密钥空间),sk是签名密钥612,T是可配置的缩放参数,并且X是模糊数据608。密钥生成功能600输出验证密钥618和线性草图620作为密钥数据622。可以由如图4C所示的密钥生成器472或如图4D所示的处理器452处理的密钥生成器代码482实现密钥生成功能600。
图6A的密钥生成功能600可以适于在初始化时生成密钥数据622。它也可以用作签名功能625的一部分,如图6B所示。例如,三个功能子组件610、614和616可以包括专用电路和/或由计算设备的处理器处理的计算机程序代码。
图6B的签名功能625可以表示由图1至图3的签名引擎110、210和310、图4A的签名设备402、图4C的签名电路474和/或当由图4D的处理器452实现时的签名引擎代码484执行的过程。签名功能625对公共参数602、模糊数据628和消息630的形式的输入数据进行操作。至少对于给定的用户,公共参数602与图6A的密钥生成功能600使用的参数相同的参数并且同样包括密钥生成参数604和线性草图参数606。密钥样本子组件610、密钥生成子组件614和线性草图子组件616如参考图6A所描述的那样操作,只是在本情况下,采样了新的签名时间签名密钥632,并提供了新的模糊数据628的测量。密钥生成子组件614生成签名时间验证密钥638,线性草图子组件616生成签名时间线性草图640。由于新样本由密钥样本子组件610执行,且使用了新的模糊数据628的测量生成签名时间线性草图640,签名时间验证密钥638和签名时间线性草图640不同于它们的初始化时间对应物,例如形成密钥数据622的一部分的初始化时间验证密钥618和初始化时间线性草图620。
签名功能625还包括格签名子组件642,其被配置为基于密钥生成参数604、消息630和签名时间签名密钥632生成格数字签名西格玛644。格签名子组件642可以使用格数字签名方案的子组件来实现。格签名子组件642可以,例如以类似于密钥生成功能614的方式,使用密钥生成参数604和签名时间签名密钥632来生成另外的临时验证密钥b,并且这可以与从另外的签名密钥样本生成的摘要和分量一起形成格数字签名西格玛的一部分。签名功能625输出数字签名646,其包括签名时间验证密钥638、签名时间线性草图640和格数字签名西格玛644。
图6C示出了示例验证功能650,可由图1至图3的验证引擎135、235和335、图4B的验证设备432、图4C的验证电路476和/或当由图4D的处理器452实现时的验证引擎代码486执行。验证功能650对密钥数据622和数字签名646进行操作。密钥数据622可以由使用图6A的密钥生成功能600执行的初始化时间操作产生。数字签名646可由图6B中所示的签名功能625产生。在图6C中,初始化时间验证密钥618和初始化时间线性草图620是从密钥数据622中提取的。类似地,签名时间验证密钥638、签名时间线性草图640和格数字签名西格玛644是从数字签名646中提取的。初始化时间线性草图620和签名时间线性草图640被输入到差异重建子组件652中,其比较线性草图以产生差异量度654。在该示例中,差异量度代表保密签名密钥的变化,例如初始化时间和签名时间之间的变化。差异重建子组件652可以使用线性草图方案的子组件来实现。它可以用来确定线性草图之间的差异,例如通过减法计算,并将散列函数Hz应用于该差异以产生差异量度654。在某些示例中,差异重构子组件652还可接收线性草图参数606作为输入。
一旦产生差异量度654,就与初始化时间验证密钥618一起,输入到验证密钥重建子组件656中。验证密钥重建子组件656用于使用差异量度重建验证密钥,然后,该差异量度就可以与签名时间验证密钥638进行比较。验证密钥重建子组件656还可以接收密钥生成参数604作为输入。验证密钥重建子组件656可以通过将验证密钥计算应用于差异量度654,例如,vk’=vk+ppKG·Δs,来重建验证密钥。验证密钥重建子组件656输出重建的验证密钥658。
图6C的验证功能650评估两个验证检查:距离比较660和格签名验证662。距离比较将重建的验证密钥658与签名时间验证密钥638进行比较。如果该两个验证密钥之间的差异大于阈值(例如β),则输出验证失败(例如0)。如果该差异小于或等于阈值,则输出验证成功(例如1)。格签名验证662将格数字签名西格玛644、消息630和签名时间验证密钥638作为输入并应用验证。该验证还可包括检查包含在格数字签名西格玛内的临时验证密钥b与签名时间验证密钥638之间的差异是否小于或等于阈值(例如β)。还可以检查以下内容:噪声分量ze在定义的方差界限内,以及格数字签名西格玛中的摘要与使用分量(例如zs和ze)、包含在格数字签名西格玛中的临时验证密钥b和消息重建的摘要匹配。
在图6C中,为了使验证功能650指示验证成功,距离比较660和格签名验证662都必须成功。这可以通过将距离比较660和格签名验证662的输出耦合到与门664来实现,其中仅当距离比较660和格签名验证662都成功(例如输出1)时才输出验证成功(例如1)。
图7A到图7D示出了可以用来实现本文描述的一个或更多个示例的示例密码功能。图7A示出了可用于实现通用模糊签名方案(“FS”)的若干个示例密码功能700,图7B示出了可用于实现通用模糊签名方案中特定线性草图功能的若干个示例密码功能720,图7C示出了可用于实现通用模糊签名方案中特定格数字签名方案功能(“S”)的若干个示例密码功能740,图7D示出了与通用模糊签名方案一起使用的若干个另外的密码功能750。
图7A的示例密码功能700包括设置程序702、密钥生成程序704、签名程序706和验证程序708。设置程序702接收一组配置参数并输出用于通用模糊签名方案的公共配置参数。密钥生成程序704接收公共配置参数和模糊数据,并输出包括验证密钥和线性草图的密钥数据。签名程序706接收公共配置参数、模糊数据和消息,并输出签名数据。验证程序708接收公共配置参数、密钥数据、消息和签名数据,并返回验证指示(例如是否被验证)。
图7B的示例密码功能720包括线性草图设置程序722、线性草图程序724、差异重建程序726、验证线性草图程序728和模拟器程序730。图7B的示例密码功能720可用于实现形成图7A的示例密码功能700的一部分的所指示的子功能。线性草图设置程序722接收一组配置参数并输出用于线性草图的公共配置参数。线性草图程序724接收公共配置参数、签名密钥和模糊数据,并输出线性草图。差异重建程序726接收公共配置参数和线性草图的两个版本,并输出差异度量。验证线性草图程序728接收公共配置参数、线性草图、差异度量和数据并输出线性草图。模拟器程序730接收公共配置参数并输出线性草图。
图7C的示例密码功能740包括格设置程序742、格密钥生成程序744、格签名程序746和格验证程序748。图7C的示例密码功能740可用于实现形成图7A的示例密码功能700的一部分的所指示的子功能。格设置程序742接收配置参数,并输出用于格数字签名方案的公共配置参数。格密钥生成程序744接收公共配置参数,并输出包括验证密钥和签名密钥的密钥数据。应当注意,在实现中,格密钥生成程序744可以不用于图7A的示例密码功能中,并且可以用图7D中的修改的密钥生成程序752代替。格签名程序746接收公共配置参数、签名密钥和消息,并输出格签名数据。格验证程序748接收公共配置参数、验证密钥、消息和格签名数据(例如,以与格签名程序746输出的形式相似的形式)并返回验证指示(例如是否被验证)。
图7D的示例密码功能750包括修改的密钥生成程序752(其可以被称为简单密钥生成过程)、验证程序754、签名密钥编码程序756和模拟器程序758。图7D的示例密码功能750可以用于实现形成图7A的示例密码功能700的一部分的所指示的子功能。修改的密钥生成程序752接收配置参数和签名密钥,并输出验证密钥。验证程序754接收公共配置参数、验证密钥和差异度量,并返回重建的验证密钥。签名密钥编码程序756接收公共配置参数和签名密钥,并输出编码的签名密钥。模拟器程序758接收公共配置参数、编码的签名密钥和多个差异度量并输出重建的验证密钥和密钥分量。签名密钥编码程序756和模拟器程序758可以用作与通用模糊签名方案相关联的密码程序的一部分。
本文描述的某些示例允许用户使用嘈杂的生物特征识别数据来生成可验证的数字签名。这可以避免对加密狗、智能卡或专用设备的需要。这样,用户可以扫描其身体的一部分以生成模糊数据的来源,其可以在本文描述的密码方法和系统中使用。在某些示例中,提供了一种模糊数字签名方案,该方案对量子计算机的攻击是安全的。因此,用户可以以后量子安全的方式使用生物特征识别数据来鉴定自己。
在某些示例中,使用线性草图的模糊数字签名方案被配置为与数字签名方案的格实例化一起操作。这并不简单。例如,如何将后一种基于格的方案中使用的“噪声”合并到前一种模糊数字签名方案中并不是显而易见的。LWE等基于格的方案使用噪声项来生成验证密钥;如果将模糊密钥用作签名密钥,则实际上有两个“噪声”来源——模糊数据和噪声项。这导致比较性的模糊数字签名方案失败。本文描述的某些数字签名示例通过配置弱同态的属性和验证密钥可模拟性来提供兼容性。如果弱同态的阈值大于零,则验证密钥可模拟性可以由参数Q参数化,即可以显示Q-验证密钥可模拟性。弱同态可以通过为存在变化的情况下生成的验证密钥定义“接近度”量度来实现。可以看出本文描述的示例相对于签名密钥编码算法是安全的。某些示例还提供简单的密钥生成过程,其中可以在给定从定义的签名密钥空间均匀采样的签名密钥的情况下生成验证密钥。在这种情况下,无论签名密钥是否传递给密钥生成过程,由该过程生成的验证密钥都具有相同的(数据)分布(例如,密钥生成过程可以仅使用配置参数)。根据本文描述的示例实现的数字签名方案可以体现出相关密钥攻击安全性(也称为编码签名密钥相关的密钥攻击安全性)的版本。基于格的方法的“硬度”可实现安全性,甚至抵御量子计算机攻击。
某些示例因此可以包括实现基于格的模糊数字签名方案的密码系统,其中基于格的模糊数字签名方案是β-弱同态和Q-验证密钥可模拟的,并且其中β大于0。某些示例通过当考虑线性草图时将数字签名方案的签名密钥空间视为
Figure BDA0003192662280000161
而将线性草图和基于格的方法予以组合,签名密钥空间因此是
Figure BDA0003192662280000162
Figure BDA0003192662280000163
的自然系数嵌入(这是同构)。这些系统可用于验证消息、数据完整性和/或作为鉴定机制。
本文描述的某些示例以非确定性的密钥生成操作为特征,例如这可以看作是从分布中采样的随机函数。这然后需要对验证操作进行调整,因为普通用户的验证密钥可能会随着签名操作而变化(即可能会随着每个密钥生成操作而变化)。进一步注意,当前描述的签名操作不将初始化时间验证密钥作为输入;事实上,这可能会使数字签名方案不安全。
本文描述的某些系统组件和方法可以通过可存储在非暂时性存储介质上的计算机程序代码来实现,例如如参考图4D所述。上述示例应理解为说明性的。设想了另外的例子。尽管各个示例的某些组件是分别描述的,但是应当理解,参考一个示例描述的功能可以在另一示例中适当地实现,并且可以根据实现方式省略某些组件。应当理解,关于任何一个示例描述的任何特征可以单独使用,或者与描述的其他特征组合使用,并且还可以与任何其他示例或者任何其他示例的任何组合的一个或更多个特征组合使用。例如,关于系统组件所描述的特征也可以适于作为所描述方法的一部分来执行。此外,在不脱离由所附权利要求限定的本发明的范围的情况下,也可以采用以上未描述的等同物和修改。

Claims (37)

1.一种密码系统,包括:
使用与签名者相关联的模糊数据对消息进行数字签名的签名引擎,所述签名引擎被配置为使用格实例化和线性草图生成数字签名,所述线性草图基于所述格实例化配置,所述数字签名是所述模糊数据和所述消息的函数,所述数字签名使用位于签名密钥空间中的签名时间签名密钥,所述签名密钥空间是由所述格实例化定义的空间,所述数字签名包括签名时间验证密钥;和
接收所述消息和所述数字签名并验证所述消息系由所述签名者签名的验证引擎,所述验证引擎被配置为获取所述签名者的密钥数据,所述密钥数据至少包括初始化时间验证密钥,以基于所述密钥数据和所述接收到的数字签名计算距离度量,所述距离度量指示所述签名时间验证密钥的差异的量度,并且响应于所述距离度量大于预定义的同态阈值,指示验证失败。
2.一种密码系统,包括:
签名设备,包括:
接收与签名者相关联的模糊数据的模糊数据接口;
接收待所述签名者进行数字签名的消息的消息接口;
生成签名时间签名密钥和签名时间验证密钥的密钥生成器,其中所述签名时间签名密钥被生成于签名密钥空间中;
生成线性草图的格兼容线性草图生成器,所述线性草图包括所述模糊数据和所述签名时间签名密钥的函数,其中所述模糊数据用作所述线性草图中的编码密钥,以对所述签名时间签名密钥进行编码;
接收所述消息和所述签名时间签名密钥、并使用所述签名时间签名密钥为所述消息生成格数字签名西格玛的格签名生成器,其中所述格数字签名西格玛使用格实例化生成,并且所述签名密钥空间是由所述格实例化定义的空间;和
输出数字签名的输出接口,所述数字签名包括所述格数字签名西格玛、所述线性草图和所述签名时间验证密钥,
其中所述数字签名可使用相比所述签名时间验证密钥有变化的初始化时间验证密钥验证,其中所述签名时间验证密钥的变化可与预定义的同态阈值相比较。
3.一种密码系统,包括:
验证设备,包括:
接收消息以验证其系由签名者数字签名的消息接口;
接收数字签名的数字签名接口,所述数字签名包括格数字签名西格玛、所述签名者的签名时间验证密钥和线性草图,所述格数字签名西格玛使用所述签名时间签名密钥生成,所述线性草图基于与所述签名者相关联的模糊数据生成,所述格数字签名西格玛基于格实例化生成,并且所述线性草图使用与所述格实例化兼容的线性草图函数生成;
接收密钥数据的密钥数据接口,所述密钥数据至少包括所述签名者的初始化时间验证密钥,其中所述初始化时间验证密钥和签名时间验证密钥均使用位于所述格实例化定义的签名密钥空间中的签名密钥生成;
与所述消息接口、所述数字签名接口和所述密钥数据接口通信耦合以分别接收所述消息、所述数字签名和所述密钥数据的验证引擎,所述验证引擎被配置为:
从所述线性草图和所述密钥数据生成重建的验证密钥;
计算距离度量,所述距离度量指示所述签名时间验证密钥和所述重建的验证密钥之间的差异的量度;和
至少基于所述计算的距离度量验证所述数字签名,和
从所述验证引擎输出结果的输出接口。
4.根据权利要求1或3所述的密码系统,其中所述验证引擎被配置为:
使用所述签名时间验证密钥和所述消息执行所述格数字签名西格玛的验证,所述验证根据所述格实例化进行,
其中所述数字签名至少基于所述计算的距离度量和所述验证的输出来验证。
5.根据权利要求1至4中任一项所述的密码系统,包括:
为所述签名者生成所述密钥数据的密钥生成器,所述密钥生成器被配置为:
生成初始化时间签名密钥,所述初始化时间签名密钥位于所述签名密钥空间中;和
生成所述初始化时间验证密钥作为所述初始化时间签名密钥和噪声项的函数,所述噪声项从定义的噪声分布中采样。
6.根据权利要求1至5中任一项所述的密码系统,其中所述模糊数据包括生物特征识别数据。
7.根据权利要求1至6中任一项所述的密码系统,其中所述格实例化包括有错误学习LWE实例化。
8.根据权利要求7所述的密码系统,其中所述格实例化包括有错误环学习Ring-LWE实例化,其中所述签名密钥空间包括所述Ring-LWE实例化的所述环。
9.根据权利要求1至8中任一项所述的密码系统,其中来自各组所述初始化时间验证密钥和所述签名时间验证密钥的每个验证密钥是签名密钥、配置参数和噪声项的函数,所述噪声项从定义的噪声分布中采样,所述配置参数基于所述签名密钥空间选择。
10.根据权利要求1至9中任一项所述的密码系统,其中所述密码系统使用以下参数中的一个或更多个配置:
所述格实例化的格维度;
所述预定义的同态阈值;
用于定义所述签名密钥空间的模数大小;和
为所述线性草图计算的若干个值。
11.根据权利要求1至10中任一项所述的密码系统,其中所述线性草图使用散列函数计算,所述散列函数输出在所述签名密钥空间中的值。
12.根据权利要求1至11中任一项所述的密码系统,其中所述模糊数据包括固定长度的二进制数据序列。
13.根据权利要求1至12中任一项所述的密码系统,其中所述初始化时间验证密钥和所述签名时间验证密钥是公钥,并且所述签名时间签名密钥是私钥。
14.根据权利要求1所述的密码系统,包括:
包括所述签名引擎的第一终端;
包括所述验证引擎的第二终端;和
通信地耦合所述第一终端和所述第二终端的通信信道。
15.根据权利要求1或2所述的密码系统,其中所述签名引擎被配置为从所述签名密钥空间中采样所述签名时间签名密钥,并生成所述签名时间验证密钥作为所述签名时间签名密钥和噪声项的函数,所述噪声项从定义的噪声分布中采样,其中所述格数字签名西格玛使用从所述定义的噪声分布中采样的进一步的噪声项生成。
16.根据权利要求4所述的密码系统,其中所述验证引擎被配置为:通过比较所述格数字签名西格玛的噪声项与方差阈值执行所述格数字签名西格玛的验证,以及响应于所述方差阈值被超过,指示验证失败。
17.一种密码方法,包括:
在第一设备处对消息进行数字签名,包括:
获取与签名者相关联的模糊数据;
生成签名时间签名密钥,所述签名时间签名密钥位于定义的签名密钥空间中;
生成作为所述签名时间签名密钥的函数的签名时间验证密钥;
生成格兼容线性草图,所述线性草图包括所述模糊数据和所述签名时间签名密钥的函数;和
为所述消息生成数字签名,所述数字签名包括所述线性草图、所述签名时间验证密钥和格数字签名西格玛,所述格数字签名西格玛是所述签名时间签名密钥和所述消息的基于格的函数,所述线性草图与所述基于格的函数兼容;
将所述数字签名从所述第一设备传送到第二设备;
在所述第二设备处验证所述消息被所述签名者签名,包括:
获取所述签名者的密钥数据,所述密钥数据至少包括初始化时间验证密钥;
基于所述密钥数据和所述接收到的数字签名计算距离度量,所述距离度量指示所述签名时间验证密钥的差异的量度;和
响应于所述距离度量大于预定义的同态阈值,指示验证失败。
18.一种密码方法,包括:
获取待签名者进行数字签名的消息;
获取与所述签名者相关联的模糊数据;
生成签名时间签名密钥,所述签名时间签名密钥位于定义的签名密钥空间中;
生成作为所述签名时间签名密钥的函数的签名时间验证密钥;
生成格兼容线性草图,所述线性草图包括所述模糊数据和所述签名时间签名密钥的函数,其中所述模糊数据用作所述线性草图中的编码密钥,以对所述签名时间签名密钥进行编码;和
使用所述模糊数据为所述消息生成数字签名,所述数字签名包括所述线性草图、所述签名时间验证密钥和格数字签名西格玛,所述格数字签名西格玛是所述签名时间签名密钥和所述消息的基于格的函数,所述线性草图与所述基于格的函数兼容,
其中所述数字签名可使用相比所述签名时间验证密钥有变化的初始化时间验证密钥验证,其中所述签名时间验证密钥的变化可与预定义的同态阈值相比较。
19.一种密码方法,包括:
获取消息以验证其被签名者数字签名;
获取数字签名,所述数字签名包括格数字签名西格玛、所述签名者的签名时间验证密钥和线性草图,所述数字签名根据格实例化使用所述签名时间签名密钥生成,所述线性草图基于与所述签名者相关联的模糊数据生成,其中所述线性草图与所述格实例化兼容;
获取密钥数据,所述密钥数据至少包括所述签名者的初始化时间验证密钥,其中所述初始化时间验证密钥和所述签名时间验证密钥均使用位于由所述格实例化定义的签名密钥空间中的签名密钥生成;
从所述线性草图和所述密钥数据生成重建的验证密钥;
计算距离度量,所述距离度量指示所述签名时间验证密钥和所述重建的验证密钥之间的差异的量度;和
至少基于所述计算的距离度量验证所述数字签名。
20.根据权利要求19所述的密码方法,包括:
使用所述签名时间验证密钥和所述消息验证所述格数字签名西格玛,所述验证根据所述格实例化执行,
其中至少基于所述计算的距离度量验证所述数字签名包括:基于所述计算的距离度量和验证所述格数字签名西格玛的结果,验证所述数字签名。
21.根据权利要求17至20中任一项所述的密码方法,包括:
为所述签名者生成所述密钥数据,包括:
生成初始化时间签名密钥,所述初始化时间签名密钥位于所述签名密钥空间中;和
生成所述初始化时间验证密钥作为所述初始化时间签名密钥和噪声项的函数,所述噪声项从定义的噪声分布中采样。
22.根据权利要求17至21中任一项所述的密码方法,其中所述模糊数据包括生物特征识别数据。
23.根据权利要求17至22中任一项所述的密码方法,其中所述格实例化包括有错误学习LWE实例化。
24.根据权利要求23所述的密码方法,其中所述格实例化包括有错误环学习Ring-LWE实例化,其中所述签名密钥空间包括所述Ring-LWE实例化的所述环。
25.根据权利要求17至24中任一项所述的密码方法,其中来自各组所述初始化时间验证密钥和所述签名时间验证密钥的每个验证密钥是签名密钥、配置参数和噪声项的函数,所述噪声项从定义的噪声分布中采样,所述配置参数基于所述签名密钥空间选择。
26.根据权利要求17至25中任一项所述的密码方法,其中所述格实例化基于预定义的格维度定义,所述签名密钥空间基于预定义的模数大小定义。
27.根据权利要求17至26中任一项所述的密码方法,其中所述线性草图基于散列函数的逆定义,其中所述散列函数输出在所述签名密钥空间中的值,并且所述散列函数用于生成所述重建的验证密钥。
28.根据权利要求17至27中任一项所述的密码方法,其中所述模糊数据包括固定长度的二进制数据序列。
29.根据权利要求17至28中任一项所述的密码方法,其中所述初始化时间验证密钥和所述签名时间验证密钥是公钥,并且所述签名时间签名密钥是私钥。
30.根据权利要求17或18所述的密码方法,其中生成所述签名时间签名密钥包括从所述签名密钥空间,对所述签名时间签名密钥进行采样。
31.根据权利要求30所述的密码方法,包括通过以下方式生成所述格数字签名西格玛:
从定义的噪声分布中对噪声项采样;
生成西格玛验证密钥,作为配置参数、所述签名时间签名密钥和所述噪声项的函数;
从所述签名密钥空间和来自所述定义的噪声分布的附加噪声项生成西格玛签名密钥项;
计算摘要,作为所述西格玛签名密钥项、所述西格玛验证密钥、所述附加噪声项和所述消息的散列函数;和
使用所述西格玛签名密钥项和所述噪声项生成签名数据,
其中所述格数字签名西格玛包括所述西格玛验证密钥、所述摘要和所述签名数据。
32.根据权利要求17至31中任一项所述的密码方法,其中所述线性草图包括所述模糊数据和所述签名时间签名密钥的逆散列的线性函数。
33.一种存储指令的非暂时性计算机可读存储介质,所述指令在由处理器执行时,使所述处理器执行如权利要求17至32中任一项所述的密码方法。
34.一种实现基于格的模糊数字签名方案的密码系统,所述基于格的模糊数字签名方案是β-弱同态和Q-验证密钥可模拟的,其中β大于0。
35.一种生物特征识别安全终端,包括:
为用户输出生物特征识别数据的生物特征识别传感器;
与所述生物特征识别传感器通信耦合的签名设备,所述签名设备包括:
从采样的签名时间签名密钥生成签名时间验证密钥的密钥生成器,所述采样的签名时间签名密钥位于定义的签名密钥空间中,所述签名时间验证密钥是所述签名时间签名密钥和噪声项的函数,所述噪声项从定义的噪声分布中采样;和
生成作为所述生物特征识别数据和所述采样的签名时间签名密钥的函数的格兼容线性草图的线性草图生成器,其中所述模糊数据用作所述线性草图中的编码密钥,以对所述采样的签名时间签名密钥进行编码;
通信地接收所述消息和所述采样的签名时间签名密钥并使用所述采样的签名时间签名密钥为所述消息生成格数字签名西格玛的格签名生成器;和
输出所述数字签名的输出接口,所述数字签名包括所述格数字签名西格玛、所述线性草图和所述签名时间验证密钥,
其中所述数字签名可使用相比所述签名数据中的签名时间验证密钥有变化的实例化时间验证密钥验证,其中所述签名时间验证密钥的变化可与预定义的同态阈值相比较。
36.根据权利要求35所述的生物特征识别安全终端,其中所述生物特征识别传感器是以下之一:
捕获所述用户的虹膜的表征的虹膜读取器;和
捕获用户的指纹的表征的指纹读取器。
37.一种销售点POS终端,包括:
根据权利要求35或36所述的生物特征识别安全终端。
CN202080012261.9A 2019-02-01 2020-01-31 使用生物特征或其他模糊数据的后量子签名方案 Pending CN113647049A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1901447.1A GB2581144A (en) 2019-02-01 2019-02-01 Cryptography using fuzzy data
GB1901447.1 2019-02-01
PCT/GB2020/050238 WO2020157520A1 (en) 2019-02-01 2020-01-31 Post-quantum signature scheme using biometrics or other fuzzy data

Publications (1)

Publication Number Publication Date
CN113647049A true CN113647049A (zh) 2021-11-12

Family

ID=65996959

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080012261.9A Pending CN113647049A (zh) 2019-02-01 2020-01-31 使用生物特征或其他模糊数据的后量子签名方案

Country Status (5)

Country Link
US (1) US20220103375A1 (zh)
EP (1) EP3918744A1 (zh)
CN (1) CN113647049A (zh)
GB (1) GB2581144A (zh)
WO (1) WO2020157520A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115208586A (zh) * 2022-09-13 2022-10-18 中安网脉(北京)技术股份有限公司 一种基于秘密分享的数字签名方法及系统

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020174516A1 (ja) * 2019-02-25 2020-09-03 日本電気株式会社 リニアスケッチシステム、装置、認証方法、プログラムと記録媒体
KR102399762B1 (ko) * 2020-09-09 2022-05-19 이규인 전력선 노이즈 기반 비밀키를 이용하는 페어링 장치 및 그 방법
WO2022187959A1 (en) * 2021-03-10 2022-09-15 Quantropi Inc. Quantum-safe cryptographic methods and systems
US11483310B1 (en) 2022-05-11 2022-10-25 King Fahd University Of Petroleum And Minerals Post-quantum biometric template protection system using smart card

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3007383B1 (en) * 2013-05-28 2019-08-14 Hitachi, Ltd. Biometric signature system, signature verification method, registration terminal, signature generation terminal, and signature verification device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115208586A (zh) * 2022-09-13 2022-10-18 中安网脉(北京)技术股份有限公司 一种基于秘密分享的数字签名方法及系统

Also Published As

Publication number Publication date
US20220103375A1 (en) 2022-03-31
EP3918744A1 (en) 2021-12-08
GB201901447D0 (en) 2019-03-27
WO2020157520A1 (en) 2020-08-06
GB2581144A (en) 2020-08-12

Similar Documents

Publication Publication Date Title
CN113647049A (zh) 使用生物特征或其他模糊数据的后量子签名方案
EP3038286B1 (en) Information processing method, information processing program, and information processing apparatus
US9860060B2 (en) Information processing method, computer-readable recording medium, and information processing apparatus
CN101159554B (zh) 生物体认证系统、登录终端、认证终端以及用户服务器
US8325994B2 (en) System and method for authenticated and privacy preserving biometric identification systems
KR20190052631A (ko) 물리적으로 복제 불가능한 기능의 원격 재등록
US8195951B2 (en) Data processing system for providing authorization keys
JP2007510349A (ja) 物理ランダム関数を共有する信頼できるフォワード秘密鍵のシステム及び方法
US12063293B2 (en) Collation system, client and server
WO2020121460A1 (ja) 照合システム、クライアントおよびサーバ
EP2247025B1 (en) Apparatus, method, and program for updating a pair of public and secret key for digital signature
AU2020216358B2 (en) Biometric public key system providing revocable credentials
JP7231023B2 (ja) 照合システム、クライアントおよびサーバ
US10567155B2 (en) Securing a cryptographic device
Sarkar et al. A multi-instance cancelable fingerprint biometric based secure session key agreement protocol employing elliptic curve cryptography and a double hash function
JP7235055B2 (ja) 認証システム、クライアントおよびサーバ
CN113872769B (zh) 基于puf的设备认证方法、装置、计算机设备及存储介质
Seo et al. Construction of a New Biometric‐Based Key Derivation Function and Its Application
CN113691367B (zh) 脱敏安全的生物特征身份认证方法
TWI381696B (zh) 基於利用個人化秘密的rsa非對稱式密碼學之使用者認證
Kirci et al. A digest-based method for efficiency improvement of security in biometrical cryptography authentication
Seo et al. Fuzzy vector signature and its application to privacy-preserving authentication
WO2024154273A1 (ja) デジタル署名システムと方法
Harikrishnan et al. A novel verification framework to analyse security attacks in a fingerprint authentication system
JP6492141B2 (ja) ベクトル変換システム及びベクトル変換方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20211112