CN113940027B - 用于加速证书提供的系统和方法 - Google Patents

用于加速证书提供的系统和方法 Download PDF

Info

Publication number
CN113940027B
CN113940027B CN202080027884.3A CN202080027884A CN113940027B CN 113940027 B CN113940027 B CN 113940027B CN 202080027884 A CN202080027884 A CN 202080027884A CN 113940027 B CN113940027 B CN 113940027B
Authority
CN
China
Prior art keywords
bank
computer hardware
hardware system
instruction
data
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
Application number
CN202080027884.3A
Other languages
English (en)
Other versions
CN113940027A (zh
Inventor
H·K·帕蒂尔
H·S·小川
T·E·卢瑟
J·E·里卡尔迪尼
H·库尼亚
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.)
LG Electronics Inc
Original Assignee
LG Electronics Inc
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 LG Electronics Inc filed Critical LG Electronics Inc
Publication of CN113940027A publication Critical patent/CN113940027A/zh
Application granted granted Critical
Publication of CN113940027B publication Critical patent/CN113940027B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/606Protecting data by securing the transmission between two devices or processes
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • H04W4/44Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for communication between vehicles and infrastructures, e.g. vehicle-to-cloud [V2C] or vehicle-to-home [V2H]
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption
    • 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/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor
    • 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/84Vehicles

Abstract

本文中描述的实施方式提供了用于防止例如可能出现在其中支持常规蝶形密钥(RBK)协议和联合蝶形密钥(UBK)协议二者的安全凭证管理系统(SCMS)中的共存攻击或提供针对该共存攻击的对策的系统和方法。本文中描述的实施方式提供、支持、采用或实现针对例如用于密码操作(例如,块密码、数字签名方案和密钥交换协议)的硬件安全模块(HSM)的硬件加速。

Description

用于加速证书提供的系统和方法
对相关申请的交叉引用
本申请要求于2019年4月11日提交的美国临时专利申请No.62/832,319“ACCELERATED V2X PROVISIONING WITH EXTENSIBLE PROCESSOR PLATFORM”的优先权,该美国临时专利申请的全部内容以引用方式明确并入本文中。
版权声明
该专利文献的公开内容的一部分包含受版权保护的内容。版权所有者不反对任何人用传真再现专利文献或专利公开内容,如它在美国专利和商标局的专利文献或记录中出现的,但是在其它方面保留了所有版权权利。
技术领域
本发明涉及通信安全,特别是用于使用假名证书来实现车辆之间的安全且保护隐私的通信的场景的通信安全。
背景技术
近来,嵌入物理对象中的数字技术激增,造成了今天所谓的物联网(IoT)。这种趋势也已到达汽车行业,汽车行业对统称为车辆到一切(V2X)通信的诸如车辆到车辆(V2V)、车辆到基础结构(V2I)和车辆到行人(V2P)这样的探索交互模型表现出日益浓厚的兴趣。V2X使得目的在于改进运输安全性、效率以及人机交互的若干应用成为可能。例如,利用V2X,车辆可以交换或传达(例如,针对速率、方向和制动状态)的信息,该信息可以帮助驾驶员与其它车辆保持安全距离,同时保持合适的速度。
事实上,美国交通部已发起了一项“互联车辆”计划“以测试和评估将使汽车、公共汽车、卡车、火车、道路和其它基础设施以及我们的智能手机和其它装置能够彼此‘交谈’的技术。例如,公路上的汽车将使用短距离无线电信号彼此通信,所以道路上的每个车辆将获悉附近其它车辆在哪里。驾驶员将接收危险情形的通知和警报,诸如人当他们正接近十字路口或迎面而来的汽车时正要闯红灯、在弯道之外看不见、转向进入他们的车道以避开道路上的物体”美国运输部,网址https://www.its.dot.gov/cv_basics/cv_basics_what.htm。“互联车辆可以大大降低我们的道路和公路上的事故造成的死亡和重伤的人数。[他们]还承诺增加运输选择并减少行驶时间。交通管理器将能够利用可用的高级通信数据更轻松地控制交通流量,并且防止或减轻发展的拥堵。通过帮助减少燃油消耗和减少排放,这可能对环境产生重大影响。”
随着互联车辆和V2X通信的蓬勃发展,安全与隐私问题是至关重要的。通过将密码机制与合适的密钥管理架构结合,常常减轻了这样的问题。然而,加密操作可能相当耗费资源,从而给车辆的V2X计算单元带来了相当大的负担。此外,现有协议有可能易受安全攻击。
附图说明
图1例示了根据一些实施方式的本公开的系统和方法可以在其中进行操作的示例SCMS基础结构。
图2例示了根据一些实施方式的供图1中示出的任何实体使用的计算装置的实施方式。
图3提供了例示根据一些实施方式的SCMS中的常规蝶形密钥扩展的示例图。
图4提供了例示根据一些实施方式的SCMS中的联合蝶形密钥扩展的示例图。
图5例示了根据一些实施方式的共存攻击的场景。
图6描绘了根据一些实施方式的总结了共存攻击的表。
图7是根据一些实施方式的用于针对共存攻击的对策的方法的逻辑流程图。
图8A和图8B例示了根据一些实施方式的用于对策方法的执行的场景。
图9描绘了根据一些实施方式的总结了针对共存攻击的对策的表。
图10描绘了根据一些实施方式的总结用于PRESENT块密码的扩展指令的表。
图11示出了根据一些实施方式的可扩展处理器平台上的指令扩展的剖析。
图12示出了根据一些实施方式的具有双存储体的处理器核的实现的概述。
图13示出了根据一些实施方式的具有用于enc64和keysch指令的数据路径扩展模块的PRESENT密码盒的实现。
图14示出了根据一些实施方式的用于PRESENT密码盒中的解密指令的扩展模块的实现。
图15示出了根据一些实施方式的enc64、keysch和dec64指令到辅助寄存器的整合。
图16描绘了根据一些实施方式的Curve25519或F2255-19实现中的基于乘法的函数的列表的表。
图17描绘了根据一些实施方式的具有关于指定的Curve25519函数的F2255-19乘法运算所花费的执行时间的百分比的表。
图18示出了教科书乘法(schoolbook multiplication)方案的示例。
图19示出了根据一些实施方式的使用mul_word运算和累加器-移位器的512位乘法的方案。
图20示出了根据一些实施方式的使用累加器-移位器实现256×256位全乘法的系统。
图21描绘了根据一些实施方式的带有具有对应的AUX寄存器和数据路径模块的用于F2255-19上的乘法运算的定制扩展指令列表的表。
图22例示了根据一些实施方式的mul_word模块或乘法器单元的实现。
图23至图25例示了将本公开的实施方式的性能结果对照其它实现进行比较的示例。
具体实施方式
例示了方面、实施方式、实现方式或应用的本说明书和附图不应该被当作限制—权利要求书限定了受保护的本发明。在不脱离本说明书和权利要求书的精神和范围的情况下,可以进行各种机械、组成、结构、电气和操作上的改变。在某些情形下,未详细示出或描述公知的电路、结构或技术,因为这些是本领域的技术人员已知的。在两幅或更多副图中相似的数字表示相同或相似的元件。
在本说明书中,阐述了描述与本公开一致的一些实施方式的具体细节。阐述了众多具体细节,以便提供对实施方式的透彻理解。然而,对于本领域的技术人员将显而易见的是,可以在没有这些具体细节中的一些或全部的情况下实践一些实施方式。本文中公开的具体实施方式意在是例示性而非限制性的。尽管这里没有具体描述,但是本领域的技术人员可以认识到在本公开的范围和精神内的其它元件。另外,为了避免不必要的重复,除非另外特别说明或者如果一个或更多个特征将使实施方式不起作用,否则与一个实施方式关联地示出和描述的一个或更多个特征可以被并入其它实施方式中。
在整个说明书中,使用以下符号:
G-椭圆曲线群的生成元
r,ε-随机数
sig-数字签名
cert–数字证书
meta–数字证书的元数据
U,公共签名密钥(程式化/>被保留用于假名证书认证机构)
u,u–与U,关联的私有签名密钥
S,s–公共和私有caterpillar(毛毛虫)密钥
或S^,s^-公共和私有cocoon(蚕茧)密钥
或E^,e^-公共和私有caterpillar加密密钥
X,x-公共和私有联合caterpillar密钥
X^,x^b-公共和私有联合cocoon密钥
β–批量证书中cocoon密钥的数目
f,f1,f2-伪随机函数
Enc(K,str)–使用密钥K的位串str的加密
Dec(K,str)–使用密钥K的位串str的解密
Sign(K,str)–使用密钥K的位串str的签名
Ver(K,str)–使用密钥K的str上的签名的验证
安全凭证管理系统
图1例示了本公开的系统和方法可以在其中操作的示例安全凭证管理系统(SCMS)基础结构103。SCMS是与美国交通部(USDOT)和汽车行业合作开发的。SCMS已被用作保护V2X通信的领先车辆公钥基础结构(VPKI)候选设计。为了实现这一点,SCMS的架构包括用于向获授权车辆颁发多个短期假名证书的VPKI。然后,每个车辆可以使用其证书对其消息进行数字签名,因此它们的真实性可以得以验证。如果车辆沿途定期更改所采用的假名,则它也可以避免其对等方的跟踪尝试:结果,仅仅通过分析对应证书的内容来将不同的消息链接到同一车辆应当是不简单的。
具体地,SCMS结合了车辆用于获得大批假名证书(也称为蝶形密钥扩展)的高效的且保护隐私的方法以及在不当行为的情况下撤销用户隐私的附属处理,使得可以将属于同一用户的多个证书链接在一起。可以是车辆、移动装置和/或类似物的装置102a-c可以通过SCMS基础设施103来通信。
在SCMS中,每个装置102a-c接收两种类型的证书:具有长的过期时间并标识系统中的有效装置的登记证书以及其各自具有短的有效期(例如,几天)的多个假名证书。C(例如,≥1)个假名证书可以同时有效。为了保护隐私,特定车辆(例如,102a或102b)接着可以频繁更改其通信中采用的假名证书,从而避免了附近车辆或路边单位的跟踪。在一些实现方式中,假名证书的个数C常常被限制在小数目以避免“女巫类(sybil-like)”攻击,在该攻击中,一台车辆假装成排(platoon),旨在获得优于该系统的某个优势。例如,这样的假排最终可能受到来自被编程为对拥堵道路给予较高优先级的交通信号灯的优惠待遇。
SCMS被配置为允许以高效方式向车辆102a-c分配多个假名证书,同时提供了在其车主不当行为的情况下轻松撤销它们的机制。如图1中所示,SCMS基础结构103包括负责向装置102a-c颁发假名证书的假名证书认证机构(PCA)105(也被称为授权证书认证机构(ACA))。注册机构(RA)108经由位置模糊代理112接收并验证来自装置102a-c的对批量假名证书的请求,装置102a-c是通过它们的登记证书来标识的。这些请求被分别转发到PCA105,其中,与不同装置关联的请求被一起混排,因此PCA 105不能将一组请求链接到同一装置。
在一些实施方式中,PCA 105可以包括一个或更多个分布式PCA,这些PCA经由一个或更多个中间证书认证机构117连接到根证书认证机构118。根证书认证机构118可以与SCMS管理器云120相接,以从管理器云120接收控制命令、配置数据等。
SCMS基础结构103还包括链接管理机构(LA)模块,例如,115a-b。LA模块115a-b生成被添加到证书的类似随机的位串,因此可以有效撤销证书(即,可以通过将少量信息添加到证书撤销列表(CRL)来将属于同一装置的证书链接在一起)。尽管在SCMS基础结构103中示出了两个LA 115a-b,但可以支持附加的LA。
SCMS基础结构103还包括不当行为管理机构(MA)116,MA 116被配置为识别装置的不当行为,并且如有必要,例如,通过撤销证书来采取适当的动作。在一些实施方式中,MA116通过将其证书放置到CRL中来撤销向不当行为的装置颁发的证书。例如,MA 116包括CRL生成器116c,CRL生成器116c将不当行为的装置的证书添加到CRL储存器122,并通过CRL广播模块124广播被撤销的证书信息。如果确认了越界,则除了撤销其假名证书之外,MA 116还可以与其它系统实体协作以识别肇事方。这防止了恶意用户或配备有故障部件的车辆对系统造成过长时间的干扰。类似地,基于选举人(elector)的信任管理方法允许在不当行为的情况下撤销系统权限本身。
图2例示了根据一些实施方式的供图1中示出的任何实体使用的计算装置150的实施方式。例如,计算装置150可以被容纳在车辆102a-b、PCA(或ACA)105、RA 108等内。
如图2中所示,计算装置150包括一个或更多个联接到计算机储存器(存储器)150S的计算机处理器150P以及用于无线电通信的无线通信设备150W。计算装置150的操作由处理器150P控制,处理器150P可以被实现为一个或更多个中央处理单元、多核处理器、微处理器、微控制器、数字信号处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、图形处理单元(GPU)、张量处理单元(TPU)和/或计算装置150P中的类似物。
存储器150S可以用于存储由计算装置150执行的软件和/或在计算装置150操作期间使用的一个或更多个数据结构。存储器150S可以包括一种或更多种类型的机器可读介质。一些常见形式的机器可读介质可以包括软盘、柔性盘、硬盘、磁带、任何其它磁性介质、CD-ROM、任何其它光学介质、穿孔卡、纸带、任何具有孔图案的其它物理介质、RAM、PROM、EPROM、EEPROM、FLASH-EPROM、任何其它存储芯片或盒和/或处理器或计算机适于读取的任何其它介质。
处理器150P和/或存储器150S可以以任何合适的物理布置方式来布置。在一些实施方式中,处理器150P和/或存储器150S可以在同一板上、同一封装(例如,系统级封装)中、同一芯片(例如,系统级芯片)和/或类似物上实现。在一些实施方式中,处理器150P和/或存储器150S可以包括分布式、虚拟化和/或容器化的计算资源。与这种实施方式一致,处理器150P和/或存储器150S可以位于一个或更多个数据中心和/或云计算设施中。在一些示例中,存储器150S可以包括包含可执行代码的非暂态的有形机器可读介质,该可执行代码在由一个或更多个处理器(例如,处理器150P)运行时可以致使计算装置150单独地或与环境中的其它计算装置相结合地执行本文中进一步描述的方法中的任一种。
计算装置或设备150可以例如包括诸如存在于智能电话、汽车信息装置中的、某种其它类型装置的、供行人、车辆驾驶员、乘客、交通管理员和可能其它人使用的用户界面150i。
蝶形密钥扩展处理
当与其它VPKI相比时,SCMS的优势之一是其被称为“蝶形密钥扩展”的高效假名证书提供处理。该处理存在两个版本:(1)原始版本,其可以被称为“常规蝶形密钥”(RBK),以及(2)优化版本,其可以被称为“联合蝶形密钥”(UBK)。
图3是例示了SCMS中的常规蝶形密钥扩展的示例图。SMCS中的假名证书提供处理提供了装置102用于获得具有小尺寸请求消息的任意大批量的(短期)证书的有效机制。它包括以下步骤,如图3中例示的。
首先,装置(例如,车辆102a)生成两个caterpillar私钥/公钥对201即(s,S=s·G)和(e,E=e·G)。然后,将caterpillar公钥201S和E与两个合适的伪随机函数fs和fe一起发送到注册机构(RA 108)。RA 108在生成β公共cocoon签名密钥时采用密钥S,其中,对于任意值β,0≤i<β;类似地,RA 108使用E来生成β个公共cocoon加密密钥然后,通过蝶形密钥扩展处理203生成的cocoon密钥对/>从不同装置被RA 108混排,并被批量发送到PCA(或ACA)105以生成对应的假名证书。
在接收到cocoon密钥之后,PCA 105针对随机值ri,将装置的公共签名密钥206a-n计算为将Ui插入到包含任何必要的元数据的证书certi中,并对该证书进行数字签名。然后,使用/>将签名的证书207a-n与ri的值一起加密,因此只有原始装置可以解密该结果以学习Ui,并计算对应的私有签名密钥ui=s+ri+fs(i)。
还由PCA 105使用其自身的私有签名密钥对加密的数据进行签名,目的是防止“诚实但好奇的(honest-but-curious)”RA 108行动中间人(MitM)攻击。即,在没有该签名的情况下,RA 108的MitM攻击可以如下地执行:(1)代替针对z的任意值,RA 108向PCA 105发送假cocoon加密密钥/>(2)RA 108使用z解密PCA的响应,从而学习Ui的值;并且(3)RA 108用正确的/>将证书重新加密,从而将结果发送到装置,装置照常继续执行协议。然而,只要装置在RA的响应上验证了PCA的签名,攻击就会失败,因为RA 108将不能够使用PCA105的私有签名密钥为重新加密的证书208a-n提供有效签名。
只要RA 108和PCA 105不共谋,用户的隐私就在该处理中受到保护。毕竟,由RA108执行的公共cocoon密钥205a-n的混排防止PCA 105学习批中的一组密钥是否属于同一装置。进而,也获得公共密钥朝向RA 108的不可链接性,因为RA 108没有学习由PCA 105使用ri而随机化的Ui的值。
本质上,RBK要求车辆计算两组“caterpillar密钥”,在一些实施方式中,这两组密钥均是使用椭圆曲线加密法(ECC)创建的:签名密钥对(s,S←s·G)和加密签名密钥对(e,E←e·G)。然后,车辆102与RA 108建立安全通信信道并向其发送:(1)公钥S和E;(2)两个伪随机函数f1和f2;以及(3)长期凭证(证明其被授权以请求假名证书)。然后,在假名认证提供处理期间,RA 108执行两次蝶形密钥扩展:一次用于签名密钥S,一次用于加密密钥E。也就是说,RA 108通过应用车辆提供的f1和f2来将每个caterpillar公钥扩展成若干“cocoon公钥”。这样得到了与车辆102应该接收的假名证书的数目一样多的公钥(S^ i←S+f1(i)·G,E^ i←E+f2(i)·G)元组。随后,RA108将各个元组发送给负责颁发假名证书的PCA 105。为了保护车辆的隐私,RA-到-PCA请求使得与不同车辆102对应的元组被一起混排,并且不向PCA105提供关于车辆的身份的信息。
进而,PCA 105对接收到的签名cocoon密钥S^i进行随机化,从而获得蝶形密钥UiS^ i+ri·G。由PCA 105将这些密钥与任何相关元数据(例如,有效期)一起签名,从而产生对应的假名证书certi。最后,为了防止RA 108学习证书的内容(并因此防止RA 108将certi链接到请求车辆),PCA 105使用E^i来加密其对RA 108的响应。结果,只有车辆102可以使用其私钥e^i←e+f2(i)解密接收到的封装,并验证certi被正确颁发。另外,在RBK中,该加密的封装也由PCA 105签名,以防止恶意RA 108充当中间人(MitM)。否则,RA 108可能向PCA 105提供RA 108知道私钥的虚假加密密钥Eei。然后,它可以解密PCA的响应,将certi映射到车辆的身份,然后用正确的E^i重新加密所有内容,以避免有嫌疑。RBK中PCA 105的这个额外签名造成了多个地方的额外开销:在PCA 105上,用于额外签名的计算和传输;在RA 108上,用于其接收和重新发送;以及在终端装置102上,用于除了证书的签名本身的验证之外的签名接收和验证。
图4提供了例示SCMS中的联合蝶形密钥(UBK)扩展的示例图。与RBK相比,UBK方法的主要区别在于,它只涉及一个caterpillar公钥和私钥对301(x,X←x·G)而非两个。因此,由车辆102向RA 108提供单个公钥X,RA 108使用伪随机函数f将X扩展为多个cocoon公钥305a-n(Xbi←X+f(i)·G)。与RBK类似,在UBK中,RA 108将来自不同车辆102的Xbi混排,之后将它们中继到PCA 105。最后,PCA 105创建随机化的蝶形公钥306a-n(U i←Xbi+ri·G),将其放置在证书中,并用Xbi加密该结果,之后对RA 108做出响应。然而,与RBK不同,在UBK中不需要对加密的封装进行签名。由于UBK将加密密钥Xbi绑定于证书的密钥Ui,因此RA108不能在不篡改其自身证书的情况下提供假加密密钥Eei。换句话说,车辆或装置102可以简单地通过验证装入书中的Ui的值满足Ui=(x^i+ri)·G来间接断言PCA 105使用的是正确的加密密钥Xbi=(x+f(i))·G。因此,UBK方法可以被看作是RBK方法的优化,从而在提供假名证书时减少带宽使用和处理成本。
UBK/RBK共存攻击和解决方案/对策
通常,分别分析RBK和UBK方法或协议的安全性。然而,如果在SCMS环境(例如,图1)中使用RBK和UBK方法二者,则存在基于协议误绑定的MitM攻击-即共存攻击的可能性。特别地,在以下情况下,可以引起该攻击:(1)RBK和UBK协议二者在某一时间点共存;以及(2)当PCA(或ACA)105实际上正在运行RBK协议时,车辆或装置102被引导相信它们正在运行UBK协议。尽管共存攻击没有使RBK或UBK协议的个体安全性失效,但由于它假定协议并不完全按指定运行,因此这对应于相当实际的场景。事实上,如果一些PCA在操作时决定只支持一个协议(RBK或UBK),则即使当其它PCA正在运行两个协议时,也将是这种情况。
图5例示了共存攻击的场景。在该共存场景中,希望能够跟踪车辆102的恶意RA108可以执行以下MitM攻击(参见图6中表600的底部)。首先,流氓RA 108向车辆102公告它能够颁发UBK证书。在501中,被UBK过程的更高效率所吸引的受害车辆102照常遵循该协议:它计算公共caterpillar密钥X并将其与伪随机函数f一起发送到RA。进而,RA 108针对0 6i<β计算正确cocoon密钥Xbi←X+f(i)·G。然而,在502中,RA 108还创建假加密密钥—即,计算针对zi的任意值的β个cocoon加密密钥Eei←zi·G。然后,RA将该对(Xbi,Eei)发送到运行RBK的PCA 105,就好像这样的密钥是根据RBK协议生成的一样。在503中,不知道该共存攻击的PCA 105简单地运行用于生成假名证书certi的RBK协议,将其与随机化因子ri一起加密,然后对该加密的封装进行签名。RA 108不充当代理,而是简单地丢弃来自PCA的响应的该最终签名,并在504中,借助解密密钥zi恢复对应的certi
为了完成MitM攻击,流氓RA 108还用Xbi重新加密该对{certi,ri},并将结果发送到请求车辆102,就好像加密是由PCA 105执行一样。由于车辆102接收到的响应与真正的UBK封装相同,因此原则上在505中,车辆102可能相信证书确实是由使能UBK的PCA生成的。此外,流氓RA 108学习通过它颁发的所有假名证书的内容,并因此能够在这些证书在现场使用时将车辆102的真实身份链接到这些证书。因此,所描述的共存攻击违反了RBK和UBK的一个基本性质:假名证书不能被任何(非共谋)系统实体链接。UBK处理的隐私设计被丢失。
图6描绘了根据一些实施方式的总结了共存攻击的表600。表600示出了在共存环境中由各种实体(例如,车辆102、RA 108、PCA 105)做出的各种假定和执行的处理以及流氓RA 108有可能进行的攻击。共存攻击的问题的根源在于,车辆102和PCA 105未获悉它们正在运行不同的协议-即,协议误绑定。也就是说,车辆102错误地认为PCA 105正在运行UBK协议,但实际上,PCA 105正在运行的协议是RBK。在这种情形下,车辆102不需要加密的封装上的签名,在RBK中需要该签名来防止RA 108的MitM尝试。
根据一些实施方式,本公开的系统和方法可以例如通过确保或提供车辆102可以验证PCA 105实际使用了哪个协议(RBK或UBK)来防止共存攻击或提供针对共存攻击的对策。
用于防止共存攻击的对策的一种方法涉及在PCA的证书中使用或包括协议标识符。在一些实施方式中,例如,协议标识符可以为用于指示RBK的“0”以及用于指示UBK的“1”,从而给系统增加的开销极小。结果,车辆102可以检查PCA 105是运行UBK还是RBK,然后使用正确的过程来验证接收到的假名证书的真实性。只要用于RBK的PCA证书不与用于UBK的任何PCA证书共享相同的公钥,车辆102就不能被诱骗接受RBK假名证书,就好像它们是使用UBK生成的一样,从而防止共存攻击。该方法的开销可忽略不计,因为它可以与向PCA的长期证书添加单个比特一样小。
在用于防止共存攻击的对策的另一方法中,PCA 105可以使用假名证书的元数据本身来告知车辆102采用哪个协议(UBK或RBK)来生成它。这种情况的开销可以再次与用于区分UBK与RBK的单个比特一样小。然而,该方法的效率可能较低,因为:(1)系统中的短期的假名证书比长期的PCA证书多得多;以及(2)即使该额外的比特只在颁发处理期间有用,它也必须此后在车辆对其自身消息进行签名时发送。
图7是根据一些实施方式的用于针对共存攻击的对策的方法700的逻辑流程图。在一些实施方式中,方法700可以由在其中正利用或采用RBK和UBK协议二者(共存)的SCMS环境中的车辆或装置102执行。
在702中,车辆102初始化或设置其针对UBK协议的操作。在一些实施方式中,该初始化是基于来自它支持或可以颁发UBK证书的RA 108的公告的。此时,尚不清楚RA 108是否可能正充当有可能试图通过MitM攻击破坏或损害安全性的流氓。
在704中,基于针对UBK协议的初始化,车辆102根据正常UBK操作来生成用于证书请求的单个caterpillar私钥/公钥。在706中,车辆102将带有单个公钥对的证书请求发送到公告UBK支持的RA 108。
RA 108计算正确的cocoon密钥。如果RA 108是合法行动者,则它按正常UBK协议转发到PCA 105以获得证书。另一方面,如果RA 108是流氓行动者,则它按RBK协议创建假加密密钥并将其作为请求呈现给PCA(或ACA)105。
PCA 105按照RA 108所呈现的协议处理来自RA108的请求。也就是说,如果RA 108是合法行动者并按RBK协议呈现请求,则PCA 105运行用于生成假名证书的RBK协议,将其与随机化因子一起加密,然后对该加密的封装进行签名。另选地,如果RA 108是流氓行动者并且按UBK协议呈现请求,则PCA 105运行用于生成假名证书的UBK协议,但不对加密的封装进行签名。在任一情况下,按照一些实施方式,PCA 105包括其采用或利用哪个协议(RBK或UBK)的指示符。在一些实施方式中,该指示符可以是协议标识符-例如,用于指示RBK的“0”和用于指示UBK的“1”。在一些实施方式中,PCA 105使用假名证书的元数据本身来指示采用哪个协议(UBK或RBK)。然后,PCA 105将(带有协议指示符的)加密的封装发送到RA108。
如果RA 108是合法行动者,则它根据UBK协议处理加密的封装,然后(在不损害安全性的情况下)发送到装置或车辆102。另一方面,如果RA 108是流氓行动者,则它丢弃来自PCA 的RBK响应的最终签名并恢复对应的证书,由此损害了安全性。流氓RA 108将封装发送到请求车辆102,就好像它已经按UBK协议被处理或生成,即使PCA 105实际上已经按RBK协议被处理也是如此;特别地,发送到车辆102的封装不包括签名。
在708中,车辆102(假定它已经根据UBK协议被操纵或处理的情况下从RA 108接收加密的响应,因此不存在或不需要签名。在710中,车辆102在不使用签名的情况下解密封装,因为按照UBK不需要签名。
然而,在712中,装置或车辆102检查关于PCA 105是按照RBK协议还是按照UBK协议处理证书请求的指示符(例如,协议标识符或证书元数据)。如果指示符指示采用的是UBK协议(这将是针对合法RA 108的情况),则在714中,车辆102将使用证书。另选地,如果指示符指示采用了RBK协议(这将是针对流氓RA 108的情况),则在716中,车辆102将丢弃证书。在一些实施方式中,车辆102将记录数据以注释该特定RA 108是流氓,并有可能向SCMS环境中的管理机构报告,使得可以采取适当的动作(例如,撤销针对RA 108的授权)。
在图8A和图8B中进一步示出了对策方法的执行或实现。图8A例示了车辆102最初相信PCA 105正在运行UBK但实际上PCA正在使用RBK的情况。响应于来自车辆102的请求,PCA 105使用RBK生成证书,并且要么包括协议标识符(例如,“0”)要么使用证书的元数据来指示RBK。因此,当车辆102接收到证书时,它可以检查或验证PCA正在运行UBK。在这种情况下,由于PCA 105实际上正在运行RBK,因此车辆将知道其关于UBK的最初信任是错误的,因此安全性有可能受损害。因此,车辆102将例如丢弃或不使用这些证书。此外,在718中,车辆102可以将RA 108作为流氓或不良行动者报告给SCMS中的适当管理机构,使得可以采取适当的动作,例如,撤销对RA的授权。
图8B例示了车辆102最初相信PCA 105正在运行UBK并且实际上PCA正在这样做的情况。响应于来自车辆102的请求,PCA 105使用UBK生成证书,并且要么包括协议标识符(例如,“1”)要么使用证书的元数据来指示UBK。因此,当车辆102接收到证书时,验证PCA正在像车辆最初相信的那样运行UBK,因此,证书没有因共存攻击而受损害。
图9描绘了根据一些实施方式的总结了针对共存攻击的对策的表900。表900示出了在共存环境中由各种实体(例如,车辆102、RA 108、PCA 105)做出的各种假定和执行的处理以及针对流氓RA 108有可能进行的攻击的对策。
硬件安全模块和硬件加速
如本文中描述的,本公开的系统和方法--包括例如SCMS的车辆或装置102的方面和操作--可以以硬件与软件的某种组合来实现。例如,随着V2X技术变得普遍,在车辆102中需要V2X网关。此外,为了利用密钥管理和密码操作支持网关,可以使用嵌入式硬件安全模块(HSM)。
在对V2X HSM的许多安全需求当中,密码操作(例如,数字签名和加密)和密钥管理是突出的特征。当前用于处理V2X证书(例如,验证密码签名和消息)的要求是低于10毫秒,因此需要更快的密码操作。并且,一个提议要求使用ECDSA(椭圆曲线数字签名算法)和ECIE(椭圆曲线集成加密方案)对一次性会话密钥进行加密。ECDSA和ECIES二者是建立在椭圆曲线算法和散列函数上的,并且ECIES还利用了对称密码和MAC。支持椭圆曲线需要对远大于典型处理器字大小的操作数的有限域算术。当需要信道侧保护时,在嵌入式系统软件中高效地实现对称算法可能是一个挑战。简言之,密码操作可能相当耗费资源,从而给车辆的V2X计算单元带来了相当大的负担。
为了解决这个问题,在一些实施方式中,本公开的系统和方法提供、支持、采用或实现用于HSM的硬件加速以例如用于它们的密码操作(例如,诸如块密码、数字签名方案和密钥交换协议这样的公共密码原语)。硬件加速可以按各种方式实现,包括要么通过将独立的存储器映射的协处理器模块连接到主中央处理单元(CPU)来实现,要么通过用定制指令扩展CPU来实现。在一些实施方式中,可以使用吞吐量和等待时间要求来确定或选择用于硬件加速的哪个选项更合适。在一些示例中,开发并采用定制扩展指令,因为它们以低到中等的逻辑开销地实现了微调的硬件加速,同时还减小了代码大小。
可扩展处理器平台
作为示例,SCMS的一些实现使用或采用PRESENT密码块(如以下更详细描述的)。可以用组合逻辑数据路径来实现PRESENT密码的轮次替换和置换操作。经由存储器映射的总线接口连接该数据路径引入了大量的处理等待时间,这是通过总线基础设施移动数据的处理所固有的。相比之下,可扩展处理器平台允许同一数据路径成为基本算术逻辑单元(ALU)的扩展,可以就像任何其它指令一样在软件中访问该ALU。因此,在PRESENT密码的替换和置换操作的位片(bit-sliced)实现中,可以用单个定制扩展指令替换数十条常规CPU指令。
用专用指令替换软件操作减少了代码大小、存储器访问和寄存器使用。除了减少的处理等待时间之外,还减少能耗。因此,可扩展处理器平台可以提供或支持硬件加速,其中可以以低逻辑开销和减少的能耗实现微调的改进。
可扩展处理器平台的一个示例是基于ARC EM处理器家族。来自Synopsys的处理器IP组合(portfolio)包括针对嵌入式应用的大范围的处理器。基于32位ARCv2指令集的ARC EM处理器家族以用于同时指令和存储器访问的Harvard存储器-处理器架构为特色。一整套的数字信号处理(DSP)、安全和互连处理器组件允许这些处理器被配置用于高度专业化的嵌入式应用。ARC处理器扩展(APEX)技术实现了整合用户定义的定制指令,而ARC XY存储器DSP选项为ARC EM处理器中的IILP带来了DSP引擎。
APEX技术APEX技术允许通过用户定义的指令和辅助(AUX)寄存器来定制ARC处理器实现。所提供的流水线接口允许实现专用的和扩大宽度的数据路径。与基于总线的协处理器相比,这实现了平滑的软件整合、降低的接口复杂度、较低的门计数和处理输出等待时间。图11示出了针对ARC处理器流水线的概述的可扩展处理器平台1100上的指令扩展的剖析,特别是APEX技术中的定制指令的剖析。指令扩展可以包括用辅助寄存器1106和定制逻辑1108实现的放大的数据路径1102和/或专用的数据路径1104。
ARC XY存储器DSP选项除了扩展指令之外,IILP还可以通过ARC XY存储器DSP选项来实现,ARC XY存储器DSP选项是用于快速和紧密耦合的存储器访问的指令级并行(IILP)引擎。图12示出了ARC XY存储器DSP核1200的概述。如图12中描绘的,ARC XY存储器系统1200包括由地址生成单元(AGU)1206和内部专用直接存储器访问(DMA)引擎1208操作的双数据存储体(即,X存储体1202和Y存储体1204),从而允许CPU读取两个源操作数并在同一周期中存储结果。这也提供了增加的代码密度,因为显式数组索引更新可以直接与AGU的地址更新机制一起使用。
定制扩展指令
一些可扩展处理器平台支持经由扩展指令包含定制逻辑。在这些平台中,暴露了紧密耦合的硬件接口,以将专用逻辑模块连接到主处理器的流水线中。然而,这样的连接可以施加更加限制性的关键路径约束:具有较长数据路径的复杂定制指令可以降低处理器的最大时钟频率。一种解决方案是引入流水线寄存器,以将指令数据路径划分为多个级,从而提高最大时钟频率。然而,这种方法增加了所需寄存器的数目,这意味着更大的芯片面积以及额外的等待时间。可选地,具有若干流水线级的指令数据路径可以被划分为具有较短数据路径的多条指令。在一些实施方式中,可以使用隐式指令级并行(IILP)技术来提高这些较小集合指令的吞吐量。
PRESENT块密码和扩展
在SCMS中采用了各种加密和安全方案和模型。在SCMS中提出的原始RBK扩展处理使用或假定使用椭圆曲线密码法(ECC),在一些实施方式中,ECC是用椭圆曲线数字签名算法(ECDSA)、非对称椭圆曲线集成加密方案(ECIES)和高级加密标准(AES)块密码来实现的,或者采用了它们。在一些实施方式中,用于SCMS的UBK实现侧重于在可以在蒙哥马利(Montgomery)(或扭曲爱德华兹(Twisted Edwards))模型中表示的素数域内定义的曲线,从而允许更快的公式。在一个版本中,Curve25519的扭曲爱德华兹表示被称为“edwards25519”。
edwards25519曲线使得能够使用爱德华兹(Edwards)曲线数字签名算法(EdDSA),EdDSA是基于Edwards模型在表示的椭圆曲线的Schnorr签名的签名方案变型。与其它基于离散对数的签名方案一样,EdDSA需要每个签名唯一的秘密值或随机数。为了降低随机数发生器失败的风险,EdDSA确定性地计算该随机数作为消息和私钥的散列。因此,对于不同的签名消息,随机数不太可能重复。这减少了随机数生成方面的攻击面,并提高了签名处理期间随机数滥用的抵抗力。然而,密钥生成仍需要高质量的随机数。在给定EdDSA优于ECDSA的上述优点的情况下,在一些实施方式中,EdDSA可被选择或用作UBK提供处理的底层签名算法。
对于加密算法,在一些实施方式中,可以使用或采用对称PRESENT块密码。PRESENT块密码是轻量级的块密码算法,以其紧凑的大小(约比AES小2.5倍)而闻名,因此,可以在SCMS环境中作为期望的硬件实现。块密码可以采用一个或更多个替换盒(S-box)和一个或更多个置换层或盒(pLayer或P盒)或用它们来实现。S盒是执行替换的对称密钥算法的基本组成部分;在块密码中,S盒通常用来模糊密钥与密文之间的关系。P盒或pLayer用于跨S盒输入来置换或转置位,在转置的同时保留扩散。在块密码中,S盒和P盒用来使明文与密文之间的关系难以理解。
在一些实施方式中,PRESENT块密码的4位替换盒(S盒)可以被实现为查找表。然而,这种方法容易受到缓存存储器定时攻击。还提出了针对ARM处理器的恒定时间和位片的软件实现。在该示例中,64位S盒层被实现为对四个16位字输入的14次布尔运算以及对逆S盒对应物的15次布尔运算。所提出的交换置换和S盒的方法以及置换分解的方法使得软件实现的性能有了显著的提高。
在一些实施方式中,本公开的系统和方法将定制扩展指令与双数据存储体一起应用于PRESENT块密码的硬件加速以及基于Curve25519的密码原语中采用的F2255-19有限域算法(例如,EdDSA和X25519)。结果,当与先前开发的软件优化实现相比,PRESENT块密码的性能提高了17-34倍,代码大小减少了70%,而现场可编程门阵列(FPGA)逻辑开销仅增加了4.37%。另外,当与可比较的处理器上的汇编实现相比时,Curve25519上的运算性能提高了约2.5倍,逻辑开销适中(即,9.1%)。最后,通过利用硬件加速的密码原语,在V2X提供处理中实现了显著的性能增益。
PRESENT块密码的指令扩展
PRESENT块密码的设计可以以硬件与软件的组合来实现。在一些实施方式中,本公开的系统和方法采用或实现用于计算PRESENT密码的加密、解密和密钥更新轮次的单周期非阻塞扩展指令或定制逻辑。由于PRESENT块密码的大小为64位,所以可以使用两个AUX寄存器来实现用于加密指令(enc64)的64位数据路径,并将另外两个AUX寄存器用于解密指令。同样,四个AUX寄存器被用在用于密钥调度指令(keysch)的128位数据路径的实现中。根据一些实施方式,图10中的表1000总结了所提出的用于PRESENT块密码的扩展指令连同为了实现相应指令的数据路径而采用或使用的逻辑模块。
图13示出了根据一些实施方式的具有用于enc64和keysch指令的数据路径扩展模块或定制逻辑1320、1330的PRESENT密码盒1310的实现1300。
enc64指令数据路径:在一些实施方式中,PRESENT S盒实现1300使用从Karnaugh映射的应用中获得的S盒输出位的布尔方程,之后是Quine-McCluskey逻辑最小化算法。下面提供了根据一些实施方式的用于实现用于enc64和keysch指令的布尔S盒的Verilog代码段:
列表1
用于跨S盒输入置换或转置位的置换层(pLayer或P盒)可以通过简单的位连线在硬件中实现。下面提供了根据一些实施方式的用于实现pLayer模块的Verilog代码段:
列表2
在一些实施方式中,S盒层是由在单个模块内的S盒的16个实例一起构成的模块。如图13中可见,在一些示例中,在定制逻辑或扩展模块1320中,通过将128输入XOR模块1322(addRoundKey)的输出接到S盒层模块1324的输入来获得用于enc64指令的数据路径,S盒层模块1324的输出接着连接到pLayer(表12的列表)模块1326的输入。blk_out信号是单个PRESENT轮次的输出。
keysch指令数据路径:PRESENT密钥调度的61位左旋转步骤可以与用于pLayer实现的位连线方法类似地实现。下面提供了根据一些实施方式的实现leftRot_61模块的Verilog代码段:
列表3
在一些实施方式中,在定制逻辑或模块1330中,通过连接leftRot_61模块1332、sbox模块1334和XOR(异或)门1336来获得用于所提出的keysch指令的数据路径,如图13中所示。图13中示出的key_out输出信号是单轮密钥调度的结果,而key_out[127:64]输出信号是对于给定加密轮次的轮次子钥密钥。
dec64指令数据路径:对于PRESENT密码的逆S盒模块(isbox),重复用于S盒模块的过程。图14示出了用于PRESENT密码盒中的解密指令的扩展模块或定制逻辑的实现1400。也就是说,图14示出了根据一些实施方式的用于PRESENT解密的所提出的dec64指令的数据路径的实现1400。下面提供了根据一些实施方式的用于实现用于dec64指令的isbox模块1402的Verilog代码段。
列表4
逆置换层(ipLayer)1404也可以通过简单的位连线在硬件中实现。下面示出了根据一些实施方式的用于实现ipLayer模块1404的Verilog段:
列表5
在一些实施方式中,逆S盒层1402由16个isbox模块实例(列表4)组成。通过将ipLayer模块1404的输出连接到逆S盒层1402的输入来获得所提出的dec64指令的数据路径,逆S盒层1402的输出接着连线到128输入XOR门1406(即,addRoundKey),如图14中描绘的。
APEX整合:为了将图10的表1000中提出的指令整合到APEX流水线中,在一些实施方式中,enc64、keysch和dec64指令(图13和图14)的数据路径或定制逻辑模块应该连接到指定的AUX寄存器。图10的表中示出的AUX寄存器是传统的加载/存储指令可见的。在如图15中所示的实现1500中,可以使用指令操作数和结果向指令模块1320、1330、1400传送数据和从指令模块1320、1330、1400传送数据。
图15示出了根据一些实施方式的enc64、keysch和dec64指令定制逻辑或扩展到AUX寄存器的整合。keysch指令数据路径模块或定制逻辑1330在没有任何源操作数的情况下操作,因为它使用直接来自所指派的AUX寄存器--KEY0_AR、KEY1_AR、KEY2_AR、KEY3_AR寄存器1502、1504、1506、1508的数据。此外,keysch模块1330返回当前由KEY2_AR 1506保持的值,该值是轮次子钥的低32位。enc64和dec64指令数据路径模块或定制逻辑1320、1400取两个源操作数:src1和src2,它们分别是轮次子钥的高32位和低32位。从用于enc64的BLK0_AR和BLK1_AR AUX寄存器1512、1514(或用于dec64的IBLK0_AR和IBLK1_AR AUX寄存器1522、1524)读取64位消息块。enc64和dec64指令没有任何指令输出值。替代地,结果被写入其相应的AUX寄存器。
用于F2255-19算法的指令扩展
F2255-19乘法运算的表征在一些实施方式中,Galois域GF(P)(或FP)上定义了Curve25519算术运算,其中,p=2255-19。对于32位平台,单个255位有限域元素(fe)的普通表示需要8个32位字。从此以后,32位字被称为字。
在一些实施方式中,通过适用于Synopsys ARC的软件中的重新实现来运行DesignWare MetaWare Debugger执行存档工具。预计有限域乘法函数是Curve25519实现中的性能瓶颈。在Curve25519的优化软件实现中,在一些实施方式中,乘法运算在图16的表1600中列出。
在一些实施方式中,使用X25519和Ed25519来描绘域乘法运算的轮廓。结果表明,大约80%的总循环计数被图16的表1600中列出的函数消耗。图17的表1700中示出的这些百分比指示或建议用于乘法有限域算术的定制扩展指令将对整体性能有相当大的影响。如此,在一些实施方式中,工作集中在这些操作上。
256×256位乘法:设计定制指令以提高图16的表1600中列出的函数的性能的初始挑战将是勾勒指令数据路径。大型乘法器单元是可能的,但不是所期望的,因为它们需要大量稀缺的硬件资源,这些资源在嵌入式硬件平台中是有限的。因此,根据一些实施方式,本公开的系统和方法通过基于fe_mul_word的联合数据路径为诸如Curve25519的fe_sqr、fe_power和fe_mul这样的运算实现定制扩展指令或逻辑,而不是为所列出的每个乘法运算创建单独的数据路径。
考虑使用32×32位乘法将域元素与字相乘(mul_word运算),如图18中描绘的教科书乘法方案所示。在其中{a[7],...,a[0]}是构成域元素的32位字的这个背景下,完整的结果乘积(包括进位)将被表示为288位序列{p0[8],...p0[0]},如图18中所示。
针对后续乘积行扩展以上的乘法方案,显然fe×fe全乘法将需要512位累加器。512位的累加器单元将需要在中间乘法行计算期间不会被充分利用的更大的加法器和寄存器单元。图19和图20示出了根据一些实施方式的使用288位累加器-移位器2010代替512位累加器来实现256×256位全乘法的方法1900和系统2000。重要的观察是,只要获得乘法行(即,执行了mul_word运算),就可以获取构成最终的完整512位乘积的16个32位字中的每个字。图19和图20例示了将mul_word运算(图18)与288位累加器-移位器模块2010相结合的256×256位乘法的实现。
参照图19,从乘法枢轴b[0]开始,例如,由mul_word运算模块2020(图20)执行mul_word运算1902。所得的288位乘积行1904被添加到当前由288位累加器保持的值(对于第一次运算,该值为零)。在一些实施方式中,这由累加器-移位器模块2010的加法器2012(图20)执行。累加器最右侧的字p0[0]成为输出值,并且288位累加器寄存器在1906处向右移位32位。可以由累加器-移位器模块2010的移位寄存器2014(图20)执行的该运算确保累加器决不会溢出。mul_word运算模块2020和累加器-移位器模块2010(包括加法器2012和移位寄存器2014)在例如1908-1918等处重复该过程(即,mul_word运算、加法和移位),直到枢轴b[7]。此时,收集到的输出值{s6[0]、…、s1[0]、是s0[0]、p0[0]}是512位乘法结果的低256位。高256位是由288位累加器保持的位。连续捕获的{s14,...、s7,s6[0]、...、s0[0]、p0[0]}字集构成最终的完整512位乘积。该系统和方法的一个优点是弱简化处理。它可以在到达枢轴b[7]后立即启动,与高八个字的移位检索处理并行地执行,节省处理时间和临时寄存器。
指令集扩展(ISE):针对图16的表1600中列出的乘法运算来组织指令集扩展(ISE)时的考虑是设计联合的指令数据路径模块。这种方法不同于PRESENT块密码的ISE(图10),其中APEX指令中的每个指令具有专用的数据路径和AUX寄存器。以这种方式,APEX技术还提供了创建指令扩展组的选项。该特性允许同一组中的指令访问共享的数据路径模块和AUX寄存器。图21的表2100示出了用于图16的表1600中列出的F2255-19乘法运算的所提出的定制扩展指令。它们将共享来自联合数据路径构造的硬件资源。另外,作为mword指令的操作数之一的域元素通过FEi_AR寄存器而可用于APEX指令数据路径,其中,i={0,...,7}。
mul_word模块:实现mul_word运算的初始步骤是设计最小的算术单元:带有进位输入、进位输出信号的32×32位(逐字)乘法单元。由于用于该工作的目标平台是FPGA器件,因此可以利用DSP切片来实现mul32模块。
mul32模块2210用作用于实现图22中示出的mul_word模块2200的构建块,mul_word模块2200本身可以是mul_word运算模块2020(图20)的实现。如图22中所示,在一些实施方式中,使用具有级联进位信号的总共八个mul32模块2210a-h;a是有限域元素(FE)并且out是288位输出。在一些实施方式中,该模块可以被分割为流水线级,以实现更高的吞吐量。然而,在其中最小等待时间是主要目标的实施方式中,未引入流水线寄存器,因为它将导致若干个额外的等待时间周期。
APEX整合:为了将指令的数据路径模块整合到APEX流水线中,AUX寄存器2030(例如,FE0_AR、FE1_AR、FE2_AR、FE3_AR、FE4_AR、FE5_AR、FE6_AR、FE7_AR)直接连接到mul_word运算模块2020的域元素输入端口,如图20中所示。mul_word模块2020的字操作数作为mword指令的源操作数(src2)被传递到指令数据路径。mul_word的输出值被转发到加法器模块2012的输入之一,然后加法器模块2012将该值与当前存储在移位寄存器模块2014中的值相加。同时,mword指令还使能移位寄存器的负载信号,从而使移位寄存器模块2014存储加法器模块2012的当前输出值。此外,没有源操作数的shacc指令简单地使能shift_en信号以将移位寄存器模块2014的内部寄存器的内容移位。用图20中示出的指令数据路径,在假定域元素(FE)源操作数在AUX寄存器2030中已经可用的情况下,在两个时钟周期内执行mul_word运算。
利用双数据存储体的编程
根据一些实施方式,例如在V2X环境中用于硬件加速的系统和方法可以用硬件中的双数据存储体实现。双数据存储体的一个目的是提供更大的带宽。例如,在数字信号处理(DSP)机制当中,双数据存储体(通常称为X存储体和Y存储体)已被合并,以便使得能够同时获取指令数据加上两个操作数数据。这为对数组进行重复操作的算法实现了更大的存储器访问带宽。
但是,使用双数据存储体需要将数据正确指派给每个存储体,这对于获得最佳性能而言是一项有挑战性的任务。该问题通过列表7的代码段例示,这是具有双数据存储体的点积的示例实现。首先使用下面的C片段介绍这个示例:
以上示出的代码段可以被直接转换为列表6的汇编语言实现。
列表6列表7
在该示例中使用传统的mul指令。.ab标签指定加载(ld)和存储(st)指令的后增量地址写回模式。
对于使用双数据存储体(即,XY存储器)的等效实现,假定数组a、b和out已经分别通过AGU寄存器%agu_r0、%agu_r1和%agu_r2映射到XY存储器地址空间。另外考虑每当访问%agu_r0、%agu_r1和%agu_r2时,对应的AGU指针就递增4个字节。在该配置中,点积可以使用XY存储器实现,如列表7的代码段中所示。
在给定以上比较的情况下,注意到(如图12中所示的)ARC XY存储器DSP子系统能够以单条指令执行两个操作数获取和写回。在传统的加载/存储编程方案中,这样的操作将需要至少三条指令。然而,在单个周期内执行上述指令主要取决于将输入数组正确分配到适当的存储体:在列表7中,通过将数组a和b分配到不同的存储体,可以在单个周期内并行地获取a[i]和b[i]元素。然而,如果输入数组被编程到同一存储体中,则数组元素将只能依次可访问(即,在两个周期中),从而使性能降低一半。因此,双数据存储体的最佳使用可以依赖于将数据正确分配到可用的存储体中。
还要注意,使用XY存储器的实现继承了关于索引模式和AGU寄存器的初始化的代码开销。然而,由于传统的加载/存储方法需要额外的指令,导致每当在8个或更多个元素的数组上循环时,这个开销就变得可忽略不计。
密码函数常常使用类似于DSP的重复的基于数组的技术(例如,PRESENT密码的加密/解密轮次和F2255-19算术运算)来实现。因此,双数据存储体还提供了密码处理的性能增强的机会。
本文中证实了,根据一些实施方式,本公开的系统和方法如何将用于PRESENT和F2255-19的指令集扩展(ISE)与(例如,如图12中所示的)ARC XY存储器DSP子系统相结合以便实现性能的显著提高。在一些实施方式中,这需要指令操作数位于正确的X存储体和Y存储体中。在下述的示例中,用%agu_x标记的AGU寄存器被指定到X存储体1202,而用%agu_y标记的寄存器被指定到Y存储体1204。
用于PRESENT密码的XY存储器编程
本节概述了根据一些实施方式的用于利用(如参考图12示出和描述的)ARC XY存储器DSP选项以便用针对PRESENT开发的指令集扩展(ISE)实现隐式指令级并行(IILP)的方法。根据一些实施方式,用于块加密指令的定制扩展逻辑的第一数据通过X存储体和Y存储体中的一个提供,并且用于密钥调度指令的定制扩展逻辑的第二数据通过X存储体和Y存储体中的另一个提供。在一些实施方式中,通过X存储体和Y存储体中的一个提供第一数据与通过X存储体和Y存储体中的另一个提供第二数据同时进行,从而提供或支持指令的并行。
在一些实施方式中,首先,证实了使用传统加载/存储流实现的密钥调度(keysch)函数如何能够被转换为等效的XY存储器编程方案。对于列表8和列表9的代码段,假定%KEY0_AR、%KEY1_AR、%KEY2_AR和%KEY3_AR AUX寄存器(例如,图15)已经用128位密钥值初始化。另外,假定得自每个密钥调度轮次的64位值被连续存储在两个不同的32位数组即round_keys_h和round_keys_l中。这样,对于给定的轮次i,64位轮次密钥由{round_keys_h[i],round_keys_l[i]}的串联给出。
列表8列表9
对于列表9上的代码,还假定round_keys_l和round_keys_h被指派给X存储体1202和Y存储体1204(图12)。这是通过AGU寄存器%agu_x0和%agu_y0(图12中的AGU寄存器1210)进行的。由于(例如,由图13和图15的扩展模块1330实现的)keysch指令只返回被写回%KEY2_AR AUX寄存器(参见图15)的值,因此可能必须手动地从%KEY3_AR读取该值,以便捕获完整的轮次密钥值。
通过将keysch指令连同XY存储器一起使用,可以使用减少50%的指令来实现密钥调度算法的内循环轮次。对于该特殊情况,XY存储器分配并不关键,因为没有同时获取两个操作数的指令。
此时,假定轮次密钥值已经被计算并存储在X存储体1202和Y存储体1204中的round_keys_l和round_keys_h数组中。列表10和列表11的代码段示出了加密函数的主循环(即,加密轮次)根据加载/存储流和等效的XY存储器流的实现。当比较这两个代码段时,证实了加密函数的内循环可以利用(例如,在图13和图15的扩展模块1320中实现的)enc64指令在单个周期中执行,同时获取两个操作数。最终的64位加密消息被存储在AUX寄存器%BLK0_AR和%BLK1_AR(例如,图15的AUX寄存器1512、1514)中,其中可以使用lr指令读取该消息。
列表10列表11
使用dec64指令的解密函数遵循与列表12和列表13的代码段所示出的相同的逻辑。
列表12列表13
这里唯一的区别在于,最终的64位解密消息被存储在AUX寄存器%IBLK0_AR和%IBLK1_AR(例如,图15的AUX寄存器1522、1524)中,其中可以使用lr指令读取该消息。对于以上示出的密钥调度、加密和解密例程,(诸如,在图12中示出的)XY存储器子系统的利用使得能够使用少了50%至66%的指令实现主内循环。在一些实施方式中,这可以使性能提高2至3倍。
用于F2255-19算法的XY存储器编程
继续ARC XY存储器DSP选项,本节概述了用针对F2255-19算法开发的指令集扩展(ISE)获得隐式指令级并行(IILP)的技术。根据一些实施方式,通过X存储体提供用于域元素乘以字的指令的定制扩展逻辑的第一数据,并且通过Y存储体提供用于域元素乘以字的指令的定制扩展逻辑的第二数据。在一些实施方式中,通过X存储体提供第一数据与通过Y存储体提供第二数据同时进行,从而提供或支持指令的并行。
在一些实施方式中,首先,示出了如何将fe×fe全乘法运算从传统的加载/存储实现转换为XY存储器方法。对于列表14和列表15中的fe×fe运算,考虑256位操作数a已经由8个%Fei_AR AUX寄存器(例如,图20中的AUX寄存器2030)保持,其中,i={0,...,7}。第二个操作数由b数组表示,并且512位输出在两个单独的256位数组out_l和out_h中返回。它们分别包含输出的最低有效的一半和最高有效的一半。对于列表8中的XY存储器实现,out_l和out_h数组被包含在不同的X存储体1202和Y存储体1204中,使得它们可以在同一周期中获取。
列表14列表15
弱简化和非乘法运算:为了允许中间结果适合于256位(8个字)内,一些实施方式执行到2256–38的模数简化,正好是真实域模数2255-19的两倍。这样做是为了提高效率:到2256-38的简化可以只使用带有进位的加法来完成。完全简化只在最后完成一次,并需要一些位级操纵,这些操纵在时间上成本更高。
除了fe×fe和弱简化运算之外,一些实施方式还需要fe+fe、fe-fe和全简化。在一些实施方式中,这些非乘法F2255-19运算全是使用标准的ARC处理器指令连同AGU一起来实现的,以有效地从存储器中加载域元素(FE)并进行存储。这些运算的基本实现方法如下:(1)设置AGU以在域元素中一次读取一个字;(2)设置AGU以写入结果;(3)执行该运算,从而将中间结果存储在常规处理器寄存器中;(4)对中间结果进行弱简化,并将简化后的输出写入XY存储器。将中间结果存储在常规CPU寄存器中的益处在于,因不必设置另一个AGU基地址寄存器(必须使用sr指令来进行),节省了周期。
关于弱简化的其它细节:弱简化本身可以被解释为:假定在其中P[8]最有效的九个字P[8],...,P[0]的数组中有288位的结果。将P[8]乘以38,并将其加到P[7,...,0]。由于域元素为256位长,因此加上2、减去2和乘以2将只向P[8]进位至多一位。这意味着如果P[8]==1,则将38加到P[7,...,0]。虽然简单,但当P[7..0]>=2256-38时,有两种极端情况需要考虑:
如果P[8]==0,则不加38,而只取P[7..0]中的结果,这不会完全简化到mod2256-38。可以安全地忽略这一点,因为所有域算术运算被设计为利用256位输入来工作。
如果P[8]==1,则将38加到P[7...0]将使P[7...1]为0并且P[0]是非常小的值。在这种情况下,必须加上额外的38以便实现正确的简化。由于弱简化是域运算的组成部分,因此在该背景下讨论其实现的细节更有意义。这在下面针对fe_add运算完成。
fe_add:fe_add运算在XY存储器中取两个256位输入,并将所得的和简化到2256-38存储到XY存储器。为此,利用ARC处理器的带进位加法指令:adc a、b、c#(a=b+c+carry)。
列表16是fe+fe运算的利用XY存储器的实现。
列表16
在列表16中,P0-P8是与成为弱简化的输入的中间288位结果相对应的任意处理器寄存器。
第一个字的添加使用的是加法,因为没有需要携带的先前运算。“.f”指示如果加法结果溢出32位目标,则应该设置进位标志。后续的加法使用adc,然后adc将先前运算的进位标志的值添加到结果中。在技术上,在最终的adc产生进位的情况下,最高有效字P[8]应该为1,否则为0。这可以使用adc P8,0,0来完成。然而,在为弱简化做准备时,在进位的情况下可能期望的是具有38,因为这是需要被添加的值。这是使用条件移动指令(mov.c)来实现的:在进位的情况下,P8将被设置为38,否则它将包含先前设置的值0。
列表17是加法之后的弱简化运算的实现。
列表17
列表17中的代码紧跟着先前的加法,并且是已经讨论的弱简化的直接实现:P8将包含被添加到P0中的中间和的最低有效字的0或38。下面的带进位加法运算将传播任何附加的进位,还将结果写入目标XY存储器。jcc指令是条件跳转指令(在该情况下,如果没有设置进位,则跳转):如果最终的adc没有生成进位,则就完成了并将返回到调用方。如果设置了进位,则附加的38被添加到P[0]并被写入输出。
fe_sub:fe_sub运算在XY存储器中取两个256位输入,并将所得的差简化到2256-38存储到XY存储器。为此,利用ARC处理器的带进位减法指令:sbc a,b,c#(a=b–c-carry)
该实现遵循与fe_add相同的模式,不同之处在于所有add/adc都变为sub/sbc。
fe_mul2:在高级椭圆曲线函数中,需要多次进行域乘以2。为此使用现有的域乘以数字函数(fe_mul_word)可以效率不高。使用fe_add函数将域元素添加到其本身将完成该任务。然而,当使用AGU 1206从同一存储体读取相同值两次时,表现出了问题,因为这会为每次读取引入额外的等待时间周期。另选地,通过进位指令向左旋转允许通过使用单个输入操作数来高效地实现乘以2:rlc b,c#(b=c<1;b=b OR carry)。
对于第一个字的左移,使用asl指令,因为没有初始进位。对于后续的移位,使用rlc。弱简化与fe_add中的弱简化相同。
fe_rdc:如先前讨论的,在每次域运算结束时进行的弱简化将得到的模简化到2256-38以便将中间结果保持在256位内。作为一系列计算中的最后一步,需要进行到2255-19的最终模数简化。为此,查看中间输出的第256位:如果设置了该位,则清除它并将19加上结果。这个代码段与完全简化运算对应地在列表18中示出。
列表18
由于只看第256位,因此存在其中简化之前的输入值在2255-1和2255-19的范围内的极端情况。这将对应于0-18的椭圆曲线点。
测试方法学
来自ISO/IEC 29192-2标准和lightweightcrypto.com二者的测试矢量用于验证本文中描述的用于PRESENT块密码的实现的中间输出和最后输出。此外,来自RFC7748和RFC8032的测试矢量用于分别验证本文中描述的用于X25519和EDDSA的硬件加速的实现。
在测试床的一些实施方式中,选择了以下ARC EM9D处理器规范: (1)
ARCv2EM核,(2)各自65K大小的DCCM和ICCM存储体,(3)各自8K大小的X存储体和Y存储体,以及(4)中等大小的AGU控制器。所有时间测量和验证过程都是通过DesignWareARC xCAM周期精确处理器模型工具执行的。为了估计由所开发指令的数据路径引入的FPGA逻辑开销,以Xilinx UltraScale XCZU9EG FPGA装置为目标来合成ARC的RTL处理器模型(包含开发的指令集扩展(ISE))。
结果
如图23至图25中示出的结果所证实的,本公开的实施方式提供了优于先前开发的实现的改进。
参照图23,关于PRESENT块密码实现,结合指令集扩展(ISE)导致速度增加了9至12倍,并且代码大小减小了7.6倍。结合指令集扩展(ISE)并使用双数据存储体(XY存储器)导致速度增加了17至34倍,并且代码大小仍小了70%。为了实现ISE的数据路径,FPGA逻辑开销增加,但不显著:4.37%的附加CLB LUT(逻辑)8.26%的附加CLB寄存器(FF)。
参照图24和图25,关于Curve25519实现,结合指令集扩展(ISE)并使用双数据存储体(XY存储器)导致fe_sqr中提高了2.45倍并且fe_mul中提高了2.56倍,并且代码大小减小了约45%。为了实现ISE的数据路径,FPGA逻辑开销增加,但同样不显著:9.1%的附加CLBLUT(逻辑)、14,7%的附加CLB寄存器(FF),32个DSP块、140个CARRY8块。
以上描述的实施方式例示但未限制本发明。例如,针对车辆描述的技术可以供其它移动系统使用,例如,供行人的智能电话或配备有计算机和通信系统150的其它移动系统使用。术语“车辆”不限于地面车辆,而是包括飞机、船只、宇宙飞船,并且可以是其它类型的移动对象。车辆技术也可以供非移动系统使用,例如,它们可以在计算机系统上使用。
例示了发明的方面、实施方式、实现方式或应用的本说明书和附图不应该被当作限制。在不脱离本说明书和权利要求书的精神和范围的情况下,可以进行各种机械、组成、结构、电气和操作上的改变。在某些情形下,未详细示出或描述公知的电路、结构或技术,以免模糊本公开的实施方式。两幅或更多副图中相似的数字通常表示相同或相似的元件。
在本说明书中,阐述了描述与本公开一致的一些实施方式的具体细节。阐述了众多具体细节,以便提供对实施方式的透彻理解。然而,对于本领域的技术人员将显而易见的是,可以在没有这些具体细节中的一些或全部的情况下实践一些实施方式。本文中公开的具体实施方式意在是例示性而非限制性的。尽管这里没有具体描述,但本领域的技术人员可以认识到在本公开的范围和精神内的其它元件。另外,为了避免不必要的重复,除非另外特别说明或者如果一个或更多个特征将使实施方式不起作用,否则与一个实施方式关联地示出和描述的一个或更多个特征可以被并入其它实施方式中。
尽管已示出和描述了例示性实施方式,但在以上公开中预期大范围的修改、改变和替代,并且在某些情形下,可以在没有其它特征的对应使用的情况下采用实施方式的一些特征。本领域的普通技术人员将认识到许多变化、替代和修改。因此,本发明的范围应该仅由所附权利要求书来限制,并且适当的是,以与本文中公开的实施方式的范围一致的方式广义地解释权利要求书。

Claims (32)

1.一种被配置用于提供用于认证操作的数字证书时的加速操作的计算机硬件系统,该计算机硬件系统包括:
处理器核;
存储器核,该存储器核与所述处理器核通信以实现用于支持密码算法的PRESENT块密码,所述PRESENT块密码包括用于块加密的指令和用于密钥调度的指令;
用于所述PRESENT块密码的块加密指令的第一定制扩展逻辑,其中,所述第一定制扩展逻辑包括实现用于所述PRESENT块密码的所述块加密指令的第一数据路径的第一组多个辅助寄存器;以及
用于所述PRESENT块密码的密钥调度指令的第二定制扩展逻辑,其中,所述第二定制扩展逻辑包括实现用于所述密钥调度指令的第二数据路径的第二组多个辅助寄存器。
2.根据权利要求1所述的计算机硬件系统,其中,所述计算机硬件系统至少部分地在可扩展处理器平台中实现。
3.根据权利要求1所述的计算机硬件系统,其中,用于所述块加密指令的所述第一定制扩展逻辑和用于所述密钥调度指令的所述第二定制扩展逻辑中的至少一个是从所述处理器核或所述存储器核的资源实现的。
4.根据权利要求1所述的计算机硬件系统,其中,所述PRESENT块密码包括用于块解密的指令,所述计算机硬件系统包括用于所述PRESENT块密码的块解密指令的第三定制扩展逻辑。
5.根据权利要求1所述的计算机硬件系统,其中,所述存储器核包括双数据存储体。
6.根据权利要求5所述的计算机硬件系统,其中,所述双数据存储体包括X存储体和Y存储体。
7.根据权利要求6所述的计算机硬件系统,其中,用于所述第一定制扩展逻辑的第一数据通过所述X存储体和所述Y存储体中的一个提供,并且其中,用于所述第二定制扩展逻辑的第二数据通过所述X存储体和所述Y存储体中的另一个提供。
8.根据权利要求7所述的计算机硬件系统,其中,通过所述X存储体和所述Y存储体中的一个提供所述第一数据与通过所述X存储体和所述Y存储体中的另一个提供所述第二数据同时进行。
9.一种配置用于提供用于认证操作的数字证书时的加速操作的计算机硬件系统的方法,该方法包括以下步骤:
提供包括处理器核和存储器核的计算机硬件系统,所述存储器核与所述处理器核通信以实现用于支持密码算法的PRESENT块密码,所述PRESENT块密码包括用于块加密的指令和用于密钥调度的指令;
在所述计算机硬件系统中配置第一定制扩展逻辑,其中,所述第一定制扩展逻辑用于所述PRESENT块密码的块加密指令,其中,所述第一定制扩展逻辑包括实现用于所述PRESENT块密码的所述块加密指令的第一数据路径的第一组多个辅助寄存器;以及
在所述计算机硬件系统中配置第二定制扩展逻辑,其中,所述第二定制扩展逻辑用于所述PRESENT块密码的密钥调度指令,其中,所述第二定制扩展逻辑包括实现用于所述密钥调度指令的第二数据路径的第二组多个辅助寄存器。
10.根据权利要求9所述的方法,其中,所述计算机硬件系统至少部分地在可扩展处理器平台中实现。
11.根据权利要求9所述的方法,其中,用于所述块加密指令的所述第一定制扩展逻辑和用于所述密钥调度指令的所述第二定制扩展逻辑中的至少一个是从所述处理器核或所述存储器核的资源实现的。
12.根据权利要求9所述的方法,其中,所述PRESENT块密码包括用于块解密的指令,所述方法包括在所述计算机硬件系统中配置第三定制扩展逻辑,其中,所述第三定制扩展逻辑用于所述PRESENT块密码的块解密指令。
13.根据权利要求9所述的方法,其中,所述存储器核包括双数据存储体。
14.根据权利要求13所述的方法,其中,所述双数据存储体包括X存储体和Y存储体。
15.根据权利要求14所述的方法,该方法包括以下步骤:
通过所述X存储体和所述Y存储体中的一个提供用于所述第一定制扩展逻辑的第一数据;以及
通过所述X存储体和所述Y存储体中的另一个提供用于所述第二定制扩展逻辑的第二数据。
16.根据权利要求15所述的方法,其中,通过所述X存储体和所述Y存储体中的一个提供所述第一数据与通过所述X存储体和所述Y存储体中的另一个提供所述第二数据同时进行。
17.一种被配置用于提供用于认证操作的数字证书时的加速操作的计算机硬件系统,该计算机硬件系统包括:
处理器核;
存储器核,该存储器核与所述处理器核通信以实现用于支持密码算法的F25519有限域算法,所述F25519有限域算法包括将域元素乘以字的指令;以及
用于将域元素乘以字的所述指令的定制扩展逻辑,
其中,用于将域元素乘以字的所述指令的所述定制扩展逻辑包括:
累加器-移位器模块,该累加器-移位器模块能够操作以存储当前和值;以及
mul_word运算模块,该mul_word运算模块能够操作以生成与将域元素乘以字相关的n位乘积;
其中,所述累加器-移位器模块能够操作以将所述n位乘积与所述当前和值组合,并将结果移位以生成新和值。
18.根据权利要求17所述的计算机硬件系统,其中,所述计算机硬件系统至少部分地在可扩展处理器平台中实现。
19.根据权利要求17所述的计算机硬件系统,其中,用于将域元素乘以字的所述指令的所述定制扩展逻辑是从所述处理器核或所述存储器核的资源实现的。
20.根据权利要求17所述的计算机硬件系统,其中,用于域元素的乘法的所述指令的所述定制扩展逻辑包括多个辅助寄存器,所述多个辅助寄存器实现用于将域元素乘以字的所述指令的数据路径。
21.根据权利要求17所述的计算机硬件系统,其中,所述存储器核包括双数据存储体。
22.根据权利要求21所述的计算机硬件系统,其中,所述双数据存储体包括X存储体和Y存储体。
23.根据权利要求22所述的计算机硬件系统,其中,用于所述定制扩展逻辑的第一数据通过所述X存储体提供,并且其中,用于所述定制扩展逻辑的第二数据通过所述Y存储体提供。
24.根据权利要求23所述的计算机硬件系统,其中,通过所述X存储体提供所述第一数据与通过所述Y存储体提供所述第二数据同时进行。
25.一种配置用于提供用于认证操作的数字证书时的加速操作的计算机硬件系统的方法,该方法包括以下步骤:
提供包括处理器核和存储器核的计算机硬件系统,所述处理器核与所述存储器核通信以实现用于支持密码算法的F25519有限域算法,所述F25519有限域算法包括将域元素乘以字的指令;
在所述计算机硬件系统中配置定制扩展逻辑,其中,所述定制扩展逻辑用于将域元素乘以字的所述指令,
其中,用于将域元素乘以字的所述指令的所述定制扩展逻辑包括:
累加器-移位器模块,该累加器-移位器模块能够操作以存储当前和值;以及
mul_word运算模块,该mul_word运算模块能够操作以生成与将域元素乘以字相关的n位乘积;
其中,所述累加器-移位器模块能够操作以将所述n位乘积与所述当前和值组合,并将结果移位以生成新和值。
26.根据权利要求25所述的方法,其中,所述计算机硬件系统至少部分地在可扩展处理器平台中实现。
27.根据权利要求25所述的方法,其中,用于将域元素乘以字的所述指令的所述定制扩展逻辑是从所述处理器核或所述存储器核的资源实现的。
28.根据权利要求25所述的方法,其中,用于域元素的乘法的所述指令的所述定制扩展逻辑包括多个辅助寄存器,所述多个辅助寄存器实现用于将域元素乘以字的所述指令的数据路径。
29.根据权利要求25所述的方法,其中,所述存储器核包括双数据存储体。
30.根据权利要求29所述的方法,其中,所述双数据存储体包括X存储体和Y存储体。
31.根据权利要求30所述的方法,该方法包括以下步骤:
通过所述X存储体提供用于所述定制扩展逻辑的第一数据;以及
通过所述Y存储体提供用于所述定制扩展逻辑的第二数据。
32.根据权利要求31所述的方法,其中,通过所述X存储体提供所述第一数据与通过所述Y存储体提供所述第二数据同时进行。
CN202080027884.3A 2019-04-11 2020-05-13 用于加速证书提供的系统和方法 Active CN113940027B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962832319P 2019-04-11 2019-04-11
US15/931,159 US11343106B2 (en) 2019-04-11 2020-05-13 Systems and methods for accelerated certificate provisioning
PCT/IB2020/000367 WO2020208427A1 (en) 2019-04-11 2020-05-13 Systems and methods for accelerated certificate provisioning

Publications (2)

Publication Number Publication Date
CN113940027A CN113940027A (zh) 2022-01-14
CN113940027B true CN113940027B (zh) 2023-07-21

Family

ID=72751081

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080027884.3A Active CN113940027B (zh) 2019-04-11 2020-05-13 用于加速证书提供的系统和方法

Country Status (4)

Country Link
US (1) US11343106B2 (zh)
EP (1) EP4008083A4 (zh)
CN (1) CN113940027B (zh)
WO (1) WO2020208427A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200252804A1 (en) * 2017-06-11 2020-08-06 Lg Electronics Inc. V2x communication device and data communication method thereof
US11165592B2 (en) * 2018-08-21 2021-11-02 Lg Electronics, Inc. Systems and methods for a butterfly key exchange program
EP3970316A1 (en) * 2019-05-14 2022-03-23 Volkswagen Aktiengesellschaft Implementation of a butterfly key expansion scheme
CN114760090B (zh) * 2022-02-25 2023-07-28 全球能源互联网研究院有限公司 一种电力5g网络切片的通信安全认证方法及装置
US20240031354A1 (en) * 2022-07-22 2024-01-25 Viam Inc. Fleet management system and method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102687457A (zh) * 2009-05-15 2012-09-19 里维尔技术有限责任公司 用于加密和解密纯文本消息的具有认证的系统
CN107147487A (zh) * 2017-05-23 2017-09-08 高胜法 对称密钥随机分组密码

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6850252B1 (en) * 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
AU2001243463A1 (en) 2000-03-10 2001-09-24 Arc International Plc Memory interface and method of interfacing between functional entities
US20020038420A1 (en) 2000-04-13 2002-03-28 Collins Timothy S. Method for efficient public key based certification for mobile and desktop environments
US6970862B2 (en) 2001-05-31 2005-11-29 Sun Microsystems, Inc. Method and system for answering online certificate status protocol (OCSP) requests without certificate revocation lists (CRL)
US7251326B2 (en) * 2001-06-29 2007-07-31 Harris Corporation Method and apparatus for data encryption
US7043682B1 (en) * 2002-02-05 2006-05-09 Arc International Method and apparatus for implementing decode operations in a data processor
US9818136B1 (en) * 2003-02-05 2017-11-14 Steven M. Hoffberg System and method for determining contingent relevance
US7519833B2 (en) * 2003-04-18 2009-04-14 Via Technologies, Inc. Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine
US9002018B2 (en) * 2006-05-09 2015-04-07 Sync Up Technologies Corporation Encryption key exchange system and method
US8879727B2 (en) * 2007-08-31 2014-11-04 Ip Reservoir, Llc Method and apparatus for hardware-accelerated encryption/decryption
US20110191581A1 (en) 2009-08-27 2011-08-04 Telcordia Technologies, Inc. Method and system for use in managing vehicle digital certificates
US10153908B2 (en) 2010-04-30 2018-12-11 T-Central, Inc. Secure communication of IOT devices for vehicles
US9137017B2 (en) 2010-05-28 2015-09-15 Red Hat, Inc. Key recovery mechanism
US9166958B2 (en) 2012-07-17 2015-10-20 Texas Instruments Incorporated ID-based control unit-key fob pairing
DE102014204044A1 (de) 2014-03-05 2015-09-10 Robert Bosch Gmbh Verfahren zum Widerrufen einer Gruppe von Zertifikaten
EP3391681B1 (en) * 2015-12-17 2021-10-06 OnBoard Security, Inc. Secure vehicle communication system
US10581620B2 (en) 2016-11-14 2020-03-03 Integrity Security Services Llc Scalable certificate management system architectures
CN110945881A (zh) 2017-05-18 2020-03-31 黑莓有限公司 检测智能运输站的不当行为
JP7136903B2 (ja) 2017-10-22 2022-09-13 エルジー エレクトロニクス インコーポレイティド デジタル認証書を管理するための暗号化方法及びそのシステム
US10476679B2 (en) 2017-11-14 2019-11-12 INTEGRITY Security Services, Inc. Systems, methods, and devices for multi-stage provisioning and multi-tenant operation for a security credential management system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102687457A (zh) * 2009-05-15 2012-09-19 里维尔技术有限责任公司 用于加密和解密纯文本消息的具有认证的系统
CN107147487A (zh) * 2017-05-23 2017-09-08 高胜法 对称密钥随机分组密码

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FPGA Modeling and Optimization of a SIMON Lightweight Block Cipher;Sa’ed Abed等;SENSORS;第19卷(第4期);全文 *

Also Published As

Publication number Publication date
EP4008083A1 (en) 2022-06-08
CN113940027A (zh) 2022-01-14
US11343106B2 (en) 2022-05-24
EP4008083A4 (en) 2022-12-21
US20210111904A1 (en) 2021-04-15
WO2020208427A1 (en) 2020-10-15

Similar Documents

Publication Publication Date Title
CN113940027B (zh) 用于加速证书提供的系统和方法
US11018877B2 (en) Cryptographic methods and systems for managing digital certificates
Dobraunig et al. Ascon v1. 2: Lightweight authenticated encryption and hashing
CN114391239B (zh) 对抗共存攻击的系统和方法
Ma et al. Attribute-based secure announcement sharing among vehicles using blockchain
Biswas et al. LRBC: a lightweight block cipher design for resource constrained IoT devices
CN111684764B (zh) 使用盲激活码进行数字证书撤销的密码方法和系统
CN112926051B (zh) 多方安全计算方法和装置
US11165592B2 (en) Systems and methods for a butterfly key exchange program
EP3125462A1 (en) Balanced encoding of intermediate values within a white-box implementation
CN111684763A (zh) 使用激活码进行数字证书吊销的加密方法和系统
US20170302454A1 (en) Encryption for transactions in a memory fabric
CN104243137A (zh) 数据处理系统以及初始化数据处理系统的方法
Newe et al. Efficient and high speed fpga bump in the wire implementation for data integrity and confidentiality services in the iot
Ogawa et al. Accelerated v2x provisioning with extensible processor platform
EP3391583B1 (en) A computation device and method
Lu et al. White-box implementation of the KMAC message authentication code
Kumar et al. Implementation of low power scalable encryption algorithm
Oliveira qSCMS: post-quantum security credential management system for vehicular communications.
Labbi et al. Cryptographic algorithm approach for low cost rfid systems
Lilhore et al. Secure WSN Architecture Utilizing Hybrid Encryption with DKM to Ensure Consistent IoV Communication
Hicks Cryptographic key management for the vehicles of tomorrow
Garay et al. E cient Techniques for Securing O-Chip Memory

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant