[0005] 针对现有技术的不足,本发明提出了基于改进的蒙哥马利模幂电路的IC卡解密方法,通过优化蒙哥马利模幂电路中的模乘器,配合多种防御侧信道攻击方法,提高系统的计算速度与安全性,实现更快速、更高安全性的IC卡密文解密。
[0006] 现有的蒙哥马利模乘器通常包括预计算环节、迭代环节和进位计算环节,基于改进的蒙哥马利模幂电路的IC卡解密方法,所述改进的蒙哥马利模幂电路包括改进的蒙哥马利模乘器、n’[0]计算模块、mont2计算模块、指数盲化模块、真随机数生成模块和模式寄存器模块。其中改进的蒙哥马利模乘器在现有技术的基础上增加了一组寄存器,实现预计算环节与进位计算环节的并行处理。
[0007] 具体包括以下步骤:
[0008] 步骤1、系统输入
[0009] 向所述蒙哥马利模幂电路输入加密后的IC卡密文M、解密位宽长度length、两个素数p、q和密钥E,p与q乘积的位宽等于解密位宽长度length。
[0010] 步骤2、配置模式寄存器
[0011] 根据解密位宽长度length对模式寄存器进行配置。
[0012] 步骤3、预计算参数
[0013] 3.1、根据素数p和q,使用改进的蒙哥马利模乘器计算模数N与欧拉函数fan;
[0014] 3.2、使用n’[0]计算模块计算模数N的最低字n’[0];
[0015] 3.3、使用mont2计算模块计算基数R和常数2的蒙哥马利形式mont2;
[0016] 3.4、将基数R和常数2的蒙哥马利形式mont2输入改进的蒙哥马利模乘器计算参数R^2。
[0017] 步骤4、计算盲化的密钥
[0018] 指数盲化模块根据真随机数生成模块产生的随机数随机选择1、2、4、8、16、32倍的欧拉函数fan,再将原密钥E与选择的随机倍数的欧拉函数fan进行分组相加,得到盲化后的密钥D。
[0019] 步骤5、转换乘数的域
[0020] 使用改进的蒙哥马利模乘器将密文M由自然域转换到蒙哥马利域,得到转换后的密文M’:
[0021] M’=Mont(M,R^2,N)。
[0022] 步骤6、随机并行的R‑L模幂计算
[0023] 将基数R与密文M’作为输入,使用两个改进的蒙哥马利模乘器并行计算R‑L模幂环节中的模乘与模平方,根据以下公式进行模乘与模平方的计算:
[0024] Rr=Mont(M’r‑1,Rr‑1,N);
[0025] M’r=Mont(M’r‑1,M’r‑1,N);
[0026] 其中,r=1,2…length,R0=R,M’0=M’。
[0027] 并在指数为“0”时,随机进行模平方的计算,防御简单功耗攻击和差分功耗攻击。
[0028] 对每一比特计算完成后,得到结果result:
[0029] result=Rlength。
[0030] 步骤7、转换结果的域
[0031] 将步骤6得到的蒙哥马利域的结果result送入改进的蒙哥马利模乘器中,将result从蒙哥马利域转换成自然域,得到自然域的结果result’:
[0032] result’=Mont(result,1,N)。
[0033] 步骤8、冗余计算
[0034] 将步骤7得到的自然域结果result’再次与模数N进行冗余计算,防御外部注入攻击。
[0035] 步骤9、解密输出
[0036] 完成上述解密与防御侧信道攻击的步骤后,改进的蒙哥马利模幂电路向外输出明文result’,完成IC卡密文M的解密。
[0037] 本发明具有以下有益效果:
[0038] 1、通过配置模式寄存器,可以根据不同场景的需求灵活改动解密信息的位宽长度,适用范围广,适用性强。
[0039] 2、采用改进型的蒙哥马利模乘器作为核心部件,可以提高整个系统加解、密计算的性能,加快了计算速度。
[0040] 3、提出双随机化防御侧信道攻击的方案,配合冗余计算,可以防御三种不同类型的攻击,提高安全性的同时,增加了系统的主频率,提高计算速度。
[0041] 4、整个解密过程完全硬件实现,所有参数都通过硬件电路计算得到,减少系统复杂性的同时,克服了软件处理大数的运算速度比较慢的缺陷,提高了计算性能。