加密/解密系统及其控制方法_3

文档序号:8925395阅读:来源:国知局
305,由此可以在使用量产型加密IC芯片的情况下防止秘密信息加密密钥305相同。这样提高了安全等级。
[0054]在根据信息a 410和信息b 304生成秘密信息加密密钥305的情况下,能够进行仅改变信息b 304的秘密信息加密密钥305的无效化(归零化)。在信息b304改变的情况下,无法使用在信息b 304的变化之前所生成的秘密信息加密密钥305,因而即使例如使用秘密信息加密密钥305进行加密后的秘密信息303被丢弃,在信息b 304的变化之后加密后的秘密信息303也永不会被解密,并且这样进一步提高了安全水平。
[0055]图7是示出作为在图6B中的时刻tl所生成的信息a 410的Xl中的位串的图。在该图中,Xl_normal 601与在正常启动加密IC 102时所生成的信息a 410相对应,并且Xl_debug 602与在使用调试器107启动加密IC 102时所生成的信息a 410相对应。
[0056]如上所述,由于在存在两种以上的用以启动加密IC 102的方式的情况下构成状态寄存器405的寄存器值根据如何启动加密IC 102而改变,因此构成包括状态寄存器405的寄存器值的信息a 410的位值也根据如何启动加密IC 102而改变。例如,如图7所示,Xl_normal 601 和 Xl_debug 602 具有不同的位 603 ?606。
[0057]S卩,可以通过改变用以启动加密IC 102的方式来改变信息a 410,因而可以改变通过组合信息a 410所生成的秘密信息加密密钥305。这样提高了秘密信息加密密钥305的安全等级。
[0058]图8是示出对图4中的数据加密程序302和秘密信息303进行加密的加密处理的过程的流程图。
[0059]利用加密IC 102所具有的CPU 201来执行图8的加密处理。
[0060]参考图8,CPU 201使用图5的生成方法来生成作为时刻tl和t2时的信息a410的Xl和X2 (步骤S701),并且判断加密IC 102是否连接至主机控制器101 (步骤S702)。
[0061]作为步骤S702中的判断的结果,在加密IC 102连接至主机控制器101的情况下(步骤S702中为“是”),CPU 201从主机控制器101接收秘密信息303和信息b 304 (步骤
5703)ο
[0062]然后,CPU 201将通过使Xl和信息b 304组合到一起所获得的种子值503输入至伪随机模块504以获得位串505,将通过使X2和信息b 304组合到一起所获得的种子值506输入至伪随机模块504以获得位串507,并且使用所获得的位串505和507来进行异或运算(ExOR) 508以生成秘密信息加密密钥305 (步骤S704)。
[0063]然后,CPU 201使用所生成的秘密信息加密密钥305对数据加密程序302和秘密信息303进行加密处理(步骤S705),并且判断该加密处理是否已完成(步骤S706)。
[0064]作为步骤S706中的判断的结果,在加密处理尚未完成的情况下(步骤S706中为“否”),处理返回至步骤S705,并且在加密处理已完成的情况下(步骤S706中为“是”),CPU201将加密后的数据加密程序302、秘密信息303和用于生成秘密信息加密密钥305的信息b 304存储在闪速存储器202 (步骤S707)中,并且终止本处理。
[0065]另一方面,作为步骤S702中的判断的结果,在加密IC 102没有连接至主机控制器101的情况下(步骤S702中为“否”),CPU 201在无需从主机控制器101接收秘密信息303和信息b 304的情况下立即终止本处理。
[0066]根据图8的加密处理,由于使用Xl和X2来生成秘密信息加密密钥305 (步骤
5704),其中Xl和X2是使用从状态寄存器405的根据时间的经过而改变的多个寄存器值中所选择的寄存器值来生成的信息a 410(步骤S701),因此启动加密IC 102的第三方难以在与时刻tl和tl不同的时刻使用相同的寄存器值来生成信息a 410,并且这样使得难以进行秘密信息加密密钥305的再现。结果,防止了加密后的数据加密程序302和秘密信息303容易地被第三方解密。
[0067]此外,根据图8的加密处理,通过将信息a 410与信息b 304组合来生成秘密信息加密密钥305 (步骤S704),但构成信息b 304的位值例如根据各个主机控制器101而改变,因而可以生成加密IC芯片特有的秘密信息加密密钥305,从而使得更难进行秘密信息加密密钥305的再现并由此进一步提高安全等级。
[0068]此外,根据图8的加密处理,由于通过将信息a 410与信息b 304组合来生成秘密信息加密密钥305 (步骤S704),因此可以使秘密信息加密密钥305无效(归零)并且进一步提尚安全等级。
[0069]图9A和9B是示出执行图4中的秘密信息加密程序301和数据加密程序302的程序执行处理的过程的流程图。
[0070]利用加密IC 102所具有的CPU 201来执行图9A和9B的程序执行处理。
[0071]参考图9A,首先,CPU 201使用图5的生成方法来生成作为时刻tl和t2时的信息a 410 的 Xl 和 X2 (步骤 S801)。
[0072]接着,CPU 201通过将使Xl与闪速存储器202中存储的信息b 304组合所获得的种子值503输入至伪随机模块504来获得位串505,通过将使X2与闪速存储器202中存储的信息b 304组合所获得的种子值506输入至伪随机模块504来获得位串507,并且使用所获得的位串505和507来进行异或运算(ExOR) 508以生成秘密信息加密密钥305 (步骤
5802)ο
[0073]状态寄存器405的寄存器值在相同时刻表示相同值,因而时刻相同的步骤S701和步骤S801中所生成的Xl和X2相同,并且步骤S704和步骤S802中所生成的秘密信息加密密钥305也相同。因而,能够使用步骤S802中所生成的秘密信息加密密钥305对使用步骤S704中所生成的秘密信息加密密钥305进行加密后的数据加密程序302和秘密信息303进行解密。
[0074]然后,CPU 201使用步骤S802中所生成的秘密信息加密密钥305对数据加密程序302和秘密信息303 (已使用步骤S704中所生成的秘密信息加密密钥305对这两者进行了加密)执行解密处理,在RAM 203上展开解密后的数据加密程序302和秘密信息303 (步骤
5803),并且判断解密处理是否完成(步骤S804)。
[0075]作为步骤S804中的判断的结果,在解密处理没有完成的情况下(步骤S804中为“否”),处理返回至步骤S803,并且在解密处理完成的情况下(步骤S804中为“是”),CPU 201使用在RAM 203上进行解密且展开的秘密信息303来生成数据加密密钥306 (步骤S805),并且判断是否建立与主机控制器101的连接(步骤S806)。
[0076]作为步骤S806中的判断的结果,在要建立与主机控制器101的连接的情况下(步骤S806中为“是”),建立主机控制器101和HDD 103之间的通信,以使得可以接收来自主机控制器101的命令。
[0077]另一方面,作为步骤S806中的判断的结果,在不建立与主机控制器101的连接的情况下(步骤S806中为“否”),与是否存在来自主机控制器101的命令请求无关地,立即终止本处理。
[0078]之后,CPU 201判断主机控制器101是否请求了命令(步骤S80
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1