[发明专利]一种芯片中的标量乘实现方法及装置、计算机可读存储介质有效
申请号: | 201811367516.4 | 申请日: | 2018-11-16 |
公开(公告)号: | CN109582284B | 公开(公告)日: | 2020-11-13 |
发明(设计)人: | 张启雨;王欣 | 申请(专利权)人: | 大唐微电子技术有限公司 |
主分类号: | G06F7/523 | 分类号: | G06F7/523;G06F7/58 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 陶丽;李丹 |
地址: | 100094*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 芯片 中的 标量 实现 方法 装置 计算机 可读 存储 介质 | ||
本申请公开了一种芯片中的标量乘实现方法及装置、计算机可读存储介质,所述方法包括获取第一标量k、固定坐标点P、窗口宽度w和椭圆曲线E(Fp)的参数;生成正整数r,r∈Fp,计算窗口个数l、m分别为k、r的二进制比特长度,将k加r*n再减去(2d‑1)得到的结果赋值给第二标量k′,n为椭圆曲线基点的阶;将k′编码为包含d个元素的数组C′,所述d个元素对应k′转换成的w行d列的矩阵中的各列二进制比特位序列;使用数组C′中的元素C′[i]与固定坐标点P循环执行倍点运算Q←2Q与点加运算Q←Q+C′[i]P+P,输出循环结果。本申请通过在每次循环计算过程中设置一次倍点运算和点加运算,实现了完全抗SPA攻击和抗故障攻击。
技术领域
本发明涉及但不限于信息安全技术领域,尤其涉及一种芯片中的标量乘实现方法及装置、计算机可读存储介质。
背景技术
随着计算机技术的发展、社会信息化程度的不断提高,信息安全问题越来越受到人们的广泛重视。椭圆曲线密码学(Elliptic curve cryptography,ECC) 与传统的公钥加密算法相比,具有安全性高、计算速度快、存储空间小、带宽要求低、计算参数少等优点,已被广泛地应用于信息安全领域。
标量乘运算是椭圆曲线公钥密码体制中的一个核心运算步骤,也是最耗时的一个运算步骤。梳状算法(Comb Method)是椭圆曲线标量乘运算中常使用的一种快速算法。但是,现有的梳状算法在执行过程中,会出现“非零窗口”和“零窗口”,攻击者可通过示波器观察功耗曲线上“非零窗口”与“零窗口”的差异性进行分析,以获取标量的部分信息,因此现有的梳状算法不能抵抗简单功耗分析(Simple Power Analysis,SPA)攻击。
发明内容
为了解决上述技术问题,本发明提供了一种芯片中的标量乘实现方法及装置、计算机可读存储介质,能够使芯片中的标量乘运算可完全抗SPA攻击和抗故障攻击。
本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种芯片中的标量乘实现方法,包括:
获取第一标量k、固定坐标点P、窗口宽度w和椭圆曲线E(Fp)的参数;
生成正整数r,r∈Fp,计算窗口个数其中,为向上取整符号,l为第一标量k的二进制比特长度,m为正整数r的二进制比特长度,将第一标量k加r*n再减去(2d-1)得到的结果赋值给第二标量k′,其中,n为椭圆曲线基点的阶;将第二标量k′编码为包含d个元素的数组C′,所述d个元素对应第二标量k′转换成的w行d列的矩阵中的各列二进制比特位序列;
使用数组C′中的元素C′[i]与固定坐标点P循环执行倍点运算Q←2Q与点加运算Q←Q+C′[i]P+P,其中,i为0至d-1之间的整数,输出循环结果。
在一实施例中,所述生成的正整数r为随机数,且r的二进制比特长度 m大于或等于32比特。
在一实施例中,所述使用数组C′中的元素C′[i]与固定坐标点P循环执行倍点运算Q←2Q与点加运算Q←Q+C′[i]P+P,包括:
将无穷远点赋值给坐标点Q;
对于i从(d-1)下降到0,对所述坐标点Q重复执行一次倍点运算:Q←2Q,并使用所述数组C′中的元素C′[i]与所述固定坐标点P重复执行一次点加运算: Q←Q+C′[i]P+P。
在一实施例中,所述使用数组C′中的元素C′[i]与固定坐标点P循环执行倍点运算Q←2Q与点加运算Q←Q+C′[i]P+P,包括:
将所述数组C′的第d个元素C′[d-1]与所述固定坐标点P标量乘再加上所述固定坐标点P后得到的坐标点赋值给坐标点Q;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大唐微电子技术有限公司,未经大唐微电子技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811367516.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:位矩阵乘法
- 下一篇:基于混沌函数组合选择的伪随机数生成方法