掌桥专利:专业的专利平台
掌桥专利
首页

芯片的认证方法、装置、设备及存储介质

文献发布时间:2023-06-19 16:03:19



技术领域

本申请涉及通信认证技术领域,具体而言,涉及一种芯片的认证方法、装置、设备及存储介质。

背景技术

在芯片与上位机之间进行通信时,通常需要进行对应的通信认证,具体认证过程为芯片向上位机发送数字签名,由上位机进行签名认证。

现有技术中,在进行数字签名的生成过程中,通常是通过随机数生成器生成一个随机数,进而基于椭圆曲线数字签名算法(ECDSA,Elliptic Curve Digital SignatureAlgorithm)对随机数进行签名。

然而,随机生成的随机数的容易受到外力作用破解,导致生成的随机数为固定的数字,进而会导致攻击方可以通过多次抓包获取相同的随机数进行对应的破解,从而导致该签名被解密,降低了签名的安全性。

发明内容

本申请的目的在于提供一种芯片的认证方法、装置、设备及存储介质,可以避免生成重复的随机数,从而可以提高签名的安全性。

本申请的实施例是这样实现的:

本申请实施例的一方面,提供一种芯片的认证方法,该方法应用于工作芯片,工作芯片与上位机通信连接,该方法包括:

接收上位机发送的待签名数据,待签名数据为固定长度的随机数字数据;

基于高级加密标准计算模型对待签名数据加密得到第一关键值;

采用椭圆曲线数字签名算法,对第一关键值进行签名处理得到数字签名值;

将数字签名值发送给上位机进行芯片认证。

可选地,基于高级加密标准计算模型对待签名数据加密得到第一关键值,包括:

对待签名数据进行哈希计算,得到目标哈希值;

生成第二关键值,第二关键值为随机数;

基于目标哈希值、第二关键值以及高级加密标准计算模型得到密文数据;

将密文数据作为第一关键值。

可选地,基于目标哈希值、第二关键值以及高级加密标准计算模型得到密文数据,包括:

将目标哈希值作为明文数据,将第二关键值作为密钥输入至高级加密标准计算模型中进行高级加密计算,得到密文数据。

可选地,采用椭圆曲线数字签名算法,对第一关键值进行签名处理得到数字签名值,包括:

基于第一关键值以及预设的子群基点确定目标点的坐标;

基于目标点的坐标确定第一签名值;

根据第一签名值、预先配置的私钥以及随机生成的哈希值得到第二签名值;

将第一签名值以及第二签名值作为数字签名值。

可选地,工作芯片包括:物理随机数生成单元;生成第二关键值,包括:

通过物理随机数生成单元生成第二关键值。

可选地,工作芯片包括:程序存储单元;生成第二关键值,包括:

运行程序存储单元中预先存储的软件程序,生成第二关键值。

可选地,工作芯片包括:硬件算法单元;采用椭圆曲线数字签名算法,对第一关键值进行签名处理得到数字签名值,包括:

通过硬件算法单元采用椭圆曲线数字签名算法,对第一关键值进行签名处理得到数字签名值。

本申请实施例的另一方面,提供一种芯片的认证装置,该装置应用于工作芯片,工作芯片与上位机通信连接,该装置包括:接收模块、加密模块、签名模块以及发送模块;

接收模块,用于接收上位机发送的待签名数据,待签名数据为固定长度的随机数字数据;

加密模块,用于基于高级加密标准计算模型对待签名数据加密得到第一关键值;

签名模块,用于采用椭圆曲线数字签名算法,对第一关键值进行签名处理得到数字签名值;

发送模块,用于将数字签名值发送给上位机进行芯片认证。

可选地,加密模块,具体用于对待签名数据进行哈希计算,得到目标哈希值;生成第二关键值,第二关键值为随机数;基于目标哈希值、第二关键值以及高级加密标准计算模型得到密文数据;将密文数据作为第一关键值。

可选地,加密模块,具体用于将目标哈希值作为明文数据,将第二关键值作为密钥输入至高级加密标准计算模型中进行高级加密计算,得到密文数据。

可选地,签名模块,具体用于基于第一关键值以及预设的子群基点确定目标点的坐标;基于目标点的坐标确定第一签名值;根据第一签名值、预先配置的私钥以及随机生成的哈希值得到第二签名值;将第一签名值以及第二签名值作为数字签名值。

可选地,签名模块,具体用于通过物理随机数生成单元生成第二关键值。

可选地,签名模块,具体用于运行程序存储单元中预先存储的软件程序,生成第二关键值。

可选地,签名模块,具体用于通过硬件算法单元采用椭圆曲线数字签名算法,对第一关键值进行签名处理得到数字签名值。

本申请实施例的另一方面,提供一种计算机设备,包括:存储器、处理器,存储器中存储有可在处理器上运行的计算机程序,处理器执行计算机程序时,实现芯片的认证方法的步骤。

本申请实施例的另一方面,提供一种计算机可读存储介质,存储介质上存储有计算机程序,该计算机程序被处理器执行时,实现芯片的认证方法的步骤。

本申请实施例的有益效果包括:

本申请实施例提供的一种芯片的认证方法、装置、设备及存储介质中,可以接收上位机发送的待签名数据,待签名数据为固定长度的随机数字数据;基于高级加密标准计算模型对待签名数据加密得到第一关键值;采用椭圆曲线数字签名算法,对第一关键值进行签名处理得到数字签名值;将数字签名值发送给上位机进行芯片认证。其中,通过高级加密标准计算模型对待签名数据加密得到的第一关键值,可以使得第一关键值的随机性增加,避免了进行椭圆曲线数字签名算法时输入相同的第一关键值,从而提高了签名的安全性。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的工作芯片的结构示意图;

图2为本申请实施例提供的芯片的认证方法的流程示意图;

图3为本申请实施例提供的芯片的认证方法的另一流程示意图;

图4为本申请实施例提供的芯片的认证方法的另一流程示意图;

图5为本申请实施例提供的芯片的认证方法的流程顺序示意图;

图6为本申请实施例提供的芯片的认证装置的结构示意图;

图7为本申请实施例提供的计算机设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本申请的描述中,需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

现有技术中,在进行数字签名认证的过程中,通常是直接基于椭圆曲线数字签名算法,对一个随机生成的随机数进行签名,然而,现有技术的随机数生成通常是在一定范围内从多个数字中随机选择一个,难免存在重复生成的情况;并且,随机生成的数字可能会受到外力作用对随机数破解,例如:物理破坏随机数生成器,使得随机数生成器固定生成同一个数字,在这种情况下,攻击方可以通过多次抓包获取相同的随机数进行对应的破解,从而破解数字签名,具体破解的过程如下:

获取两次抓包的通信,获取哈希值(z1,z2)、两次的签名结果(r1,s1)和(r2,s2),若两次随机数k相同,则可以确定签名结果的r1和r2相等,进而可以根据预设的公式计算出s1和s2,并根据s1和s2的差值计算出私钥,从而实现数字签名的破解。

为了避免以上问题的发生导致私钥被破解,本申请实施例中提供了一种芯片的认证方法来解决现有技术中存在的不足。

下面来具体解释本申请实施例中提供的实现芯片的认证方法的工作芯片的具体结构。

图1为本申请实施例提供的工作芯片的结构示意图,请参照图1,该工作芯片包括:控制单元110、数据存储单元120、程序存储单元130、硬件算法单元140、物理随机数生成单元150。

其中,控制单元110可以分别与数据存储单元120、程序存储单元130、硬件算法单元140、物理随机数生成单元150连接(图中未具体画出连接关系),实现对这些单元的控制。

控制单元110具体可以是MCU(Microcontroller Unit,微控制单元)或者CPU(Central Processing Unit,中央处理器)等任意一种具有处理功能的控制单元,在此不作具体限制。

数据存储单元120可以是进行数据存储的单元,具体可以是一个RAM(RandomAccess Memory,随机存取存储器)。

程序存储单元130可以包括ROM(Read Only Memory,只读存储器)和闪存存储器(FLASH)。

硬件算法单元140可以是进行数据运算的算法单元,具体可以是高速处理的运算单元。

物理随机数生成单元150可以是用于实现随机数生成的硬件电路。

下面基于上述工作芯片的具体结构来解释本申请实施例中提供的芯片的认证方法的具体实施过程。

图2为本申请实施例提供的芯片的认证方法的流程示意图,请参照图2,该方法包括:

S210:接收上位机发送的待签名数据。

其中,待签名数据为固定长度的随机数字数据。

可选地,该方法的执行主体可以是上述工作芯片,具体可以是该工作芯片中的控制单元,工作芯片可以与上位机通信连接,在实现芯片认证的过程中具体可以是由工作芯片向上位机发送数字签名实现认证。

其中,上位机可以是与工作芯片相连的设备,例如:若工作芯片为耳机或者充电线中的芯片,上位机可以是与耳机或者充电线相连的手机等终端设备。

可选地,待签名数据具体可以是上位机发送的数据,具体可以是一个固定长度的随机数字数据。该数据具体可以用于指示工作芯片进行认证。工作芯片接收到该待签名数据之后,可以进行加密后将数据发送给上位机进行对应的认证。

S220:基于高级加密标准计算模型对待签名数据加密得到第一关键值。

可选地,高级加密标准计算模型可以是AES(Advanced Encryption Standard,高级加密标准)计算模型。该计算模型可以是密码学中的一种加密方式,基于该加密方式可以将待签名数据进行加密得到第一关键值。

S230:采用椭圆曲线数字签名算法,对第一关键值进行签名处理得到数字签名值。

可选地,基于上述方式得到第一关键值后,可以采用椭圆曲线数字签名算法输入第一关键值,进行签名处理得到数字签名值。

具体可以通过硬件算法单元进行椭圆曲线数字签名算法完成数字签名处理。

S240:将数字签名值发送给上位机进行芯片认证。

可选地,得到数字签名值后,可以通过工作芯片的输入输出接口将高数字签名值发送给上位机进行芯片认证。

本申请实施例提供的一种芯片的认证方法中,可以接收上位机发送的待签名数据,待签名数据为固定长度的随机数字数据;基于高级加密标准计算模型对待签名数据加密得到第一关键值;采用椭圆曲线数字签名算法,对第一关键值进行签名处理得到数字签名值;将数字签名值发送给上位机进行芯片认证。其中,通过高级加密标准计算模型对待签名数据加密得到的第一关键值,可以使得第一关键值的随机性增加,避免了进行椭圆曲线数字签名算法时输入相同的第一关键值,从而提高了签名的安全性。

下面来具体解释本申请实施例中提供的芯片的认证方法中计算第一关键值的具体实施过程。

图3为本申请实施例提供的芯片的认证方法的另一流程示意图,请参照图3,基于高级加密标准计算模型对待签名数据加密得到第一关键值,包括:

S310:对待签名数据进行哈希计算,得到目标哈希值。

可选地,可以对待签名数据进行哈希计算,具体可以是通过哈希函数进行对应的计算,得到待签名数据对应的目标哈希值。

S320:生成第二关键值。

其中,第二关键值为随机数。

可选地,第二关键值为一个随机数,具体生成方法可以是人为输入一个随机数或者随机生成的数字,在此不作具体限制,凡是可以得到第二关键值即可。

S330:基于目标哈希值、第二关键值以及高级加密标准计算模型得到密文数据。

可选地,分别得到目标哈希值以及第二关键值之后,可以将目标哈希值、第二关键值输入至高级加密标准计算模型中进行AES运算,得到密文数据。

S340:将密文数据作为第一关键值。

可选地,得到的密文数据可以作为上述第一关键值进行后续的椭圆曲线数字签名算法。

本申请实施例提供的一种芯片的认证方法中,可以对待签名数据进行哈希计算,得到目标哈希值;生成第二关键值;基于目标哈希值、第二关键值以及高级加密标准计算模型得到密文数据;将密文数据作为第一关键值。其中,通过高级加密标准计算模型对目标哈希值、第二关键值进行处理之后,可以得到随机性较高的第一关键值,使得第一关键值的随机性增加,即便待签名数据被破解,由于第二关键值并不相同,通过高级加密标准计算模型得到的第一关键值也不会相同,提高了签名的安全性。

可选地,基于目标哈希值、第二关键值以及高级加密标准计算模型得到密文数据,包括:将目标哈希值作为明文数据,将第二关键值作为密钥输入至高级加密标准计算模型中进行高级加密计算,得到密文数据。

其中,在进行高级加密标准计算的过程中,可以包括明文数据和密钥,高级加密标准计算模型的输入可以是一个明文数据和密钥,输出可以是一个密文数据。

可以将将目标哈希值作为明文数据,将第二关键值作为密钥输入至高级加密标准计算模型中进行计算,得到对应的密文数据。该密文数据即可以作为上述第一关键值。

例如:目标哈希值为z,第二关键值为k,则可以分别将z和k输入至高级加密标准计算模型中进行高级加密计算得到密文数据c,该密文数据c即为第一关键值。

下面来具体解释得到第一关键值后,基于第一关键值进行椭圆曲线数字签名算法的具体实施过程。

图4为本申请实施例提供的芯片的认证方法的另一流程示意图,请参照图4,采用椭圆曲线数字签名算法,对第一关键值进行签名处理得到数字签名值,包括:

S410:基于第一关键值以及预设的子群基点确定目标点的坐标。

可选地,通过上述方式得到密文数据c之后,可以将该密文数据c作为第一关键值。

基于公式如下公式可以确定目标点的坐标:

P=KG;

其中,K为第一关键值;G为预设的子群基点,得到的P记为目标点的坐标。

S420:基于目标点的坐标确定第一签名值。

可选地,得到目标点的坐标之后,可以基于如下公式计算第一签名值:

r=x

其中,r为第一签名值,x

S430:根据第一签名值、预先配置的私钥以及随机生成的哈希值得到第二签名值。

得到第一签名值后,可以基于预设的公式得到第二签名值,具体公式如下:

s=K

其中,Z为随机生成的哈希值,可以与前述目标哈希值z相同,也可以不同,在此不作限制,K

需要说明的是,预设的子群基点G、预设的数字modn均是椭圆曲线数字签名算法中配置的参数。

S440:将第一签名值以及第二签名值作为数字签名值。

可选地,通过上述算法的分别得到第一签名值以及第二签名值之后,可以得到数字签名值,具体可以表示为(r,s)。

可选地,工作芯片包括:物理随机数生成单元;生成第二关键值,包括:通过物理随机数生成单元生成第二关键值。

其中,物理随机数生成单元具体可以是一种数字电路,可通过该电路随机生成一个固定长度的数字,将该数字作为第二关键值。

可选地,工作芯片包括:程序存储单元;生成第二关键值,包括:运行程序存储单元中预先存储的软件程序,生成第二关键值。

其中,程序存储单元中可以预先存储有进行随机数生成的软件程序,可以通过圆形该软件程序,以软件的方式生成固定长度的随机数,将该随机数作为第二关键值。

可选地,工作芯片包括:硬件算法单元;采用椭圆曲线数字签名算法,对第一关键值进行签名处理得到数字签名值,包括:通过硬件算法单元采用椭圆曲线数字签名算法,对第一关键值进行签名处理得到数字签名值。

需要说明的是,硬件算法单元可以是具有高速运算功能的算法单元,在进行具体的计算过程中,可以更快地得到数字签名值。

图5为本申请实施例提供的芯片的认证方法的流程顺序示意图,请参照图5,图5中具体解释了进行AES计算的过程以及ECDSA的计算过程,具体如下:

待签名数据m进行哈希处理后得到目标哈希值z,基于目标哈希值z以及第二关键值k进行AES运算后得到密文数据c,将密文数据c作为第一关键值K,根据第一关键值K、随机生成的哈希值Z以及预先配置的私钥d

下述对用以执行的本申请所提供的芯片的认证方法对应的装置、设备及存储介质等进行说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。

图6为本申请实施例提供的芯片的认证装置的结构示意图,请参照图6,该装置包括:接收模块610、加密模块620、签名模块630以及发送模块640;

接收模块610,用于接收上位机发送的待签名数据,待签名数据为固定长度的随机数字数据;

加密模块620,用于基于高级加密标准计算模型对待签名数据加密得到第一关键值;

签名模块630,用于采用椭圆曲线数字签名算法,对第一关键值进行签名处理得到数字签名值;

发送模块640,用于将数字签名值发送给上位机进行芯片认证。

可选地,加密模块620,具体用于对待签名数据进行哈希计算,得到目标哈希值;生成第二关键值,第二关键值为随机数;基于目标哈希值、第二关键值以及高级加密标准计算模型得到密文数据;将密文数据作为第一关键值。

可选地,加密模块620,具体用于将目标哈希值作为明文数据,将第二关键值作为密钥输入至高级加密标准计算模型中进行高级加密计算,得到密文数据。

可选地,签名模块630,具体用于基于第一关键值以及预设的子群基点确定目标点的坐标;基于目标点的坐标确定第一签名值;根据第一签名值、预先配置的私钥以及随机生成的哈希值得到第二签名值;将第一签名值以及第二签名值作为数字签名值。

可选地,签名模块630,具体用于通过物理随机数生成单元生成第二关键值。

可选地,签名模块630,具体用于运行程序存储单元中预先存储的软件程序,生成第二关键值。

可选地,签名模块630,具体用于通过硬件算法单元采用椭圆曲线数字签名算法,对第一关键值进行签名处理得到数字签名值。

本申请实施例提供的一种芯片的认证装置中,可以接收上位机发送的待签名数据,待签名数据为固定长度的随机数字数据;基于高级加密标准计算模型对待签名数据加密得到第一关键值;采用椭圆曲线数字签名算法,对第一关键值进行签名处理得到数字签名值;将数字签名值发送给上位机进行芯片认证。其中,通过高级加密标准计算模型对待签名数据加密得到的第一关键值,可以使得第一关键值的随机性增加,避免了进行椭圆曲线数字签名算法时输入相同的第一关键值,从而提高了签名的安全性。

上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。

以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器,或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。

图7为本申请实施例提供的计算机设备的结构示意图,请参照图7,计算机设备,包括:存储器710、处理器720,存储器710中存储有可在处理器720上运行的计算机程序,处理器720执行计算机程序时,实现芯片的认证方法的步骤。

其中,计算机设备具体可以是上述工作芯片,处理器720具体可以是上述工作芯片的控制单元,存储器710具体窥视上述工作芯片的数据存储单元120以及程序存储单元130。

本申请实施例的另一方面,还提供一种计算机可读存储介质,存储介质上存储有计算机程序,该计算机程序被处理器执行时,实现芯片的认证方法的步骤。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 芯片的认证方法、装置、设备及存储介质
  • 安全认证方法及装置、安全认证芯片、存储介质
技术分类

06120114688239