一种PIN码设置方法、认证方法及存储设备与流程

文档序号:13768969阅读:748来源:国知局

本申请涉及信息安全领域,尤其涉及一种pin码设置方法、认证方法及存储设备。



背景技术:

随着人们对存储设备的数据安全要求不断提高,存储设备的结构从只包括存储介质逐渐发展为在存储介质上连接有能进行身份认证的主控芯片,通过主控芯片设置用户pin码(personalidentificationnumber,个人识别密码),从而建立起身份认证机制,用户在访问存储设备时,只有输入正确的pin码,才能通过身份认证机制,进而读写存储介质中的数据。

现有技术中,存储设备的主控芯片通常设置有只读存储介质,用于存储一组由字母、数字和/或符号组成的随机数,将该随机数作为密钥来对用户设置的pin码进行加密,得到pin码密文。由于主控芯片通常不再设置可读写的存储介质,因此pin码密文需要被存储在存储设备的存储介质上,这样在用户访问存储设备时,主控芯片将存储介质存储的pin码密文解密后,与用户输入的测试pin码进行比对,如果一致则认为用户通过身份认证机制,可以读写存储介质中的数据。

但是,采用上述方法来保护存储设备的数据存在以下缺陷:如果存储设备被其他用户得到,其他用户利用一些破解手段可能从存储介质中提取出pin码密文,并从主控芯片中提取出密钥,利用密钥对pin码密文进行解密,就能得到正确的pin码,从而获得了存储设备的使用权限。



技术实现要素:

本申请提供了一种pin码设置方法、认证方法及存储设备,以解决pin码安全性较低的问题。

第一方面,本申请提供了一种pin码设置方法,该方法包括:

获取用户输入的pin码;

获取主控芯片存储的随机数;

将所述pin码作为密钥加密所述随机数,得到随机数密文;

将所述随机数密文存储到存储介质内。

优选地,所述获取用户输入的pin码之前,还包括:

检测到主控芯片的任务进程为设置pin码。

优选地,所述加解密模块对所述随机数进行加密的算法为sm4中的ecb算法。

第二方面,本申请提供了一种pin码认证方法,该方法包括:

获取用户输入的测试pin码;

获取存储介质存储的随机数密文;

将所述测试pin码作为密钥解密所述随机数码密文,得到测试随机数明文;

获取主控芯片内存储的随机数;

比对所述测试随机数明文和随机数,如果一致,则认证通过。

优选地,所述获取用户输入的测试pin码之前,还包括:

检测到主控芯片的任务进程为认证pin码。

第三方面,本申请提供了一种存储设备,应用于上述任一方案中的所述方法,该设备包括主控芯片和存储介质,其中:

所述主控芯片,与所述存储介质连接,包括控制模块、加解密模块和存储模块;

所述控制模块,用于将用户输入的pin码发送至所述加解密模块,将所述加解密模块加密的随机数密文发送至所述存储介质;

所述加解密模块,包括密钥输入端口、存储密码输入端口和加解密单元,所述密钥输入端口与所述控制模块连接,用于将所述pin码发送至所述加解密单元,所述存储密码输入端口与存储模块连接,用于从所述存储模块中获取所述随机数,并发送至所述加解密单元,所述加解密单元,用于根据所述pin码加密所述随机数,得到随机数密文;

或,

所述控制模块,用于将用户输入的测试pin码发送至所述加解密模块,将所述加解密模块解密得到的测试随机数明文与存储模块中的随机数进行对比认证;

所述密钥输入端口用于将所述测试pin码发送至所述加解密单元,所述存储密码输入端口与存储介质连接,用于从所述存储介质中获取随机数密文,并发送至所述加解密单元,所述加解密单元,用于根据所述测试pin码解密所述随机数密文,得到测试随机数明文;

所述存储模块,用于存储所述随机数;

所述存储介质,用于存储所述主控芯片的随机数密文。

优选地,所述控制模块,用于检测到主控芯片的任务进程为设置pin码,则生成加密指令并发送到所述加解密模块和所述存储模块;

所述存储模块,用于根据所述加密指令,发送所述随机数到所述加解密模块;

所述加解密模块,用于根据所述加密指令,利用获得的所述pin码对所述随机数进行加密。

优选地,所述控制模块,用于检测到主控芯片的任务进程为认证pin码,则生成解密指令并发送到所述存储介质和所述主控芯片的存储模块;

所述存储介质,用于根据所述解密指令,发送所述随机数密文到所述加解密模块;

所述加解密模块,用于根据所述解密指令,利用获得的所述测试pin码对所述随机数密文进行解密。

本申请提供的pin码设置方法、认证方法及存储设备的有益效果包括:

本申请提供的pin码设置方法、认证方法及存储设备,通过将pin码作为密钥,加密主控芯片存储的随机数,生成随机数密文,将随机数密文存储到存储介质中。由于pin码仅作为用于加密的密钥,不存在存储设备中,因此,即使存储设备丢失,获得存储设备的人只能获取到存储设备中存储的随机数密文和随机数明文,不能获得密钥。密钥是随机数明文到随机数密文的加密运算,以及随机数密文到随机数明文的解密运算的必要条件,没有了密钥则不能进行加密运算或解密运算,从而不能利用加密或解密运算推导出pin码,避免了现有技术在存储设备的密钥等信息被得到的情况下,通过解密运算,pin码被推导出来的风险,大大提高了存储设备的安全性。

附图说明

为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种存储设备的结构示意图;

图2为本申请实施例提供的一种pin码设置方法的流程示意图;

图3为本申请实施例提供的一种pin码认证方法的流程示意图。

具体实施方式

本申请实施例提供了一种存储设备,该存储设备包括主控芯片和存储芯片,如固态硬盘(ssd,solidstatedisk)。存储芯片是存储设备的存储介质,用于存储用户存储到存储设备中的数据,主控芯片用于管理存储设备的用户权限。参见图1,为本申请实施例提供的一种存储设备的结构示意图。如图1所示,本实施例提供的存储设备,主控芯片与存储芯片通过电路连接。主控芯片包括cpu、加解密模块和一次性可编程存储器(otp,onetimeprogramable),加解密模块和otp均与cpu连接。

具体的,cpu是主控芯片的控制模块,即管理器,用于在设置pin码时,调用加解密模块,将用户输入的pin码作为密钥来加密一次性可编程存储器内存储的随机数,得到随机数密文,将随机数密文存入存储芯片,以及在认证pin码时,将随机数密文从存储芯片中读出并发送给加解密模块,利用用户输入的测试pin码进行解密运算,将解密运算后的随机数与一次性可编程存储器内存储的随机数进行比对认证。其中,测试pin码是相对于用户设置的pin码而言,可能与用户设置的pin码相同,也可能与用户设置的pin码不同。

加解密模块用于对随机数进行加密运算或对随机数密文进行解密运算。加解密模块可用硬件电路实现,也可辅以软件程序,还可只用软件程序来实现,具体可采用常规的加解密硬件电路或加解密软件程序。

本实施例中,加解密模块用硬件电路实现,硬件电路包括密钥输入端口、存储密码输入端口和加解密单元。其中,密钥输入端口与cpu连接,用于获取pin码或测试pin码;存储密码输入端口在设置pin码时与otp连接,用于获取随机数;在认证pin码时与存储芯片连接,用于获取随机数密文;加解密单元,分别与密钥输入端口、存储密码输入端口连接,用于在设置pin码时,获取pin码和随机数,利用pin码作为密钥,加密随机数得到随机数密文;在认证pin码时,获取测试pin码和随机数密文,将获测试pin码作为密钥,解密随机数密文得到测试pin码。

当加解密模块用硬件电路实现辅以软件程序或只用软件程序来实现时,其设置pin码方法或认证pin码方法类似,即均采用用户输入数据作为密钥,加密存储设备中存储的数据。

otp是具有一次性编程且掉电后数据不会丢失的存储器。本实施中,otp用于存储随机数,随机数在主控芯片出厂前被烧录在otp内,每个主控芯片具有唯一的随机数,安全性高。

存储芯片具体可为nandflash芯片或其他类型的存储芯片。

为对pin码的安全性进行详细说明,本申请实施例还提供了一种pin码设置及认证方法,参见图2,为本申请实施例提供的一种pin码设置方法的流程示意图。如图2所示,本实施例提供的pin码设置方法,具体包括以下步骤:

步骤s110:获取用户输入的pin码。

具体的,主控芯片的cpu检测到主控芯片的任务进程为设置pin码,则获取用户输入的pin码,本实施例中,用户输入的pin码为:

128'hb1f0_5663_8484_d609_c089_5e81_1215_3524。

进一步的,cpu生成包含pin码的加密指令,其中,加密指令内还包含存储模块(otp)与加解密模块中的存储密码输入端口的连接控制信号。cpu将加密指令分别发送至加解密模块和otp。加解密模块中的密钥输入端口接收加密指令,得到pin码。

步骤s120:获取主控芯片存储的随机数。

具体的,otp根据加密指令内包含的连接控制信号,与加解密模块中的存储密码输入端口建立连接,将存储模块随机数发送到加解密模块。本实施例中,随机数r1的值为:

r1=128'h8937_5212_b2c2_8465_46df_998d_06b9_7b0d。

步骤s130:将pin码作为密钥加密随机数,得到随机数密文。

具体的,加解密模块的加解密单元,根据存储密码输入端口获得的随机数r1和密钥输入端口获得的pin码进行加密运算,以pin码为密钥,加密随机数r1。本实施例中,加密算法为sm4的ecb算法,得到的随机数r1密文为:

r1的密文=128'ha54c_5497_6775_bc86_9bab_ebe1_127f_c87d。

步骤s140:将随机数密文存储到存储介质内。

具体的,加解密模块计算得到随机数r1密文后,将随机数r1密文发送至cpu,cpu将随机数r1存储到nandflash芯片内。

利用本实施例提供的pin码设置方法,在存储设备中存储的是随机数r1的密文,不存储用户设置的pin码,因此,当存储设备遗失时,pin码不能从存储设备中被窃取到,提高了pin码的安全性。

参见图3,为本申请实施例提供的一种pin码认证方法的流程示意图,如图3所示,本申请实施例提供的pin码认证方法,具体包括以下步骤:

步骤s210:获取用户输入的测试pin码。

具体的,主控芯片的cpu检测到主控芯片的任务进程为认证pin码,则获取用户输入的测试pin码。

进一步的,cpu生成包含测试pin码的解密指令,cpu将解密指令分别发送至加解密模块和nandflash芯片。加解密模块中的密钥输入端口接收解密指令,得到测试pin码。

步骤s220:获取存储介质存储的随机数密文。

具体的,nandflash芯片接收解密指令,将随机数r1的密文发送到cpu。

进一步的,cpu将随机数r1的密文发送到加解密模块。

步骤s230:将测试pin码作为密钥解密随机数码密文,得到测试随机数明文。

具体的,加解密模块的加解密单元,根据存储密码输入端口获得的随机数r1的密文和密钥输入端口获得的测试pin码进行解密运算,以测试pin码为密钥,解密随机数r1的密文,得到测试随机数明文r2。

进一步的,加解密单元将测试随机数明文r2发送到cpu。

步骤s240:获取主控芯片内存储的随机数。

具体的,cpu从otp内获取随机数r1。

步骤s250:比对测试随机数明文和随机数,如果一致,则认证通过。

具体的,cpu将测试随机数明文r2和随机数r1进行比对,如果一致,则认证通过,提供用户访问nandflash芯片内存储数据的权限;如果不一致,则认证不通过,用户不能获取访问nandflash芯片内存储数据的权限。

当存储设备遗失时,得到存储设备的用户想要访问存储nandflash芯片内存储数据,必须通过pin码认证。进行pin码认证一方面可通过输入猜测的测试pin码进行,但该方法工作量巨大,通常难易在短时间内见效。另一方面,可通过进行相应反推计算,得到设置的pin码。但是,在本实施例中,这种方法难以实施,因为设置的pin码并没有存储在存储设备上,得到存储设备的用户从存储设备上只能得到随机数r1和随机数r1的密文,由于设置的pin码是作为密钥来加密随机数r1,而密钥不能通过数学推导得到,因此,本实施例中,pin码的安全性非常高。

由上述实施例可见,本申请提供的pin码设置方法、认证方法及存储设备,通过将pin码作为密钥,加密主控芯片存储的随机数,生成随机数密文,将随机数密文存储到存储介质中。由于pin码仅作为用于加密的密钥,不存在存储设备中,因此,即使存储设备丢失,获得存储设备的人只能获取到存储设备中存储的随机数密文和随机数明文,不能获得密钥。密钥是随机数明文到随机数密文的加密运算,以及随机数密文到随机数明文的解密运算的必要条件,没有了密钥则不能进行加密运算或解密运算,从而不能利用加密或解密运算推导出pin码,避免了现有技术在存储设备的密钥等信息被得到的情况下,通过解密运算,pin码被推导出来的风险,大大提高了存储设备的安全性。

以上所述的本发明实施方式并不构成对本发明保护范围的限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1