前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【八】基于Montgomery算法的高速、可配置RSA密码IP核硬件设计系列

【八】基于Montgomery算法的高速、可配置RSA密码IP核硬件设计系列

作者头像
空白的贝塔
发布2021-03-16 15:26:46
9610
发布2021-03-16 15:26:46
举报
文章被收录于专栏:摸鱼范式

本次第八部分主要介绍相关项目的具体模块的设计方案,如相关算法的软件实现;

下面介绍采用软件生成RSA公钥私钥对的方法

RSA公钥、私钥对软件生成方法

对于RSA算法,给出两个大的素数很容易,但是对于给出两个大素数的乘积,去找他们的因子就非常的困难,这也是为什么RSA算法的关键所在。因此,如何产生一个随机的大素数,变得非常重要。下面给出产生伪素数以及其素性的检验算法,并采用Python语言编写。

伪素数的生成与检测

伪素数的生成即其检测目前比较主流的是Miller-Rabin算法,该算法是基于费马定理的一个变体,主要由费马定理引申而来。费马定理可以描述为: n是一个奇素数,a是任何整数(1≤a≤n-1),则 。

Miller-Rabin算法可以描述为:如果n是一个奇素数,将n-1表示成 的形式(r是奇数),a是和n互素的任何整数,那么 ,或者对某个j(0≤j≤s-1,j∈Z) 等式 成立。该理论是Fermat定理推导而来:n是一个奇素数,则方程 只有±1两个解。

具体描述过程如下:

最大公约数算法

上面已经给出了产生大素数的方法,根据1.2节RSA公钥密码的设计方案,根据公式(1): ,使用欧几里得算法求两数最大公约数的算法,具体描述如下表3-2所示:

模逆算法

为了求得1.2节RSA公钥密码设计中方案中的私钥,即公式(2): , 使用扩展欧几里得算法,求模逆的具体算法如下表3-3所示

模幂算法

使用蒙哥马利算法来计算模幂 的算法:

蒙哥马利模乘模型和调整因子模型参考3.2节验证组件中的reference model。下面介绍指数掩码模型和模幂模型。

指数掩码模型

根据模幂算法8,对指数进行重新编码,计算模型如下表3-5所示:

模幂模型

根据模幂算法8,计算模型如下表3-6所示:

【一】基于Montgomery算法的高速、可配置RSA密码IP核硬件设计系列

2021-02-28

【二】基于Montgomery算法的高速、可配置RSA密码IP核硬件设计系列

2021-03-01

【三】基于Montgomery算法的高速、可配置RSA密码IP核硬件设计系列

2021-03-02

【四】基于Montgomery算法的高速、可配置RSA密码IP核硬件设计系列

2021-03-03

【五】基于Montgomery算法的高速、可配置RSA密码IP核硬件设

2021-03-05

【六】基于Montgomery算法的高速、可配置RSA密码IP核硬件设

2021-03-08

【七】基于Montgomery算法的高速、可配置RSA密码IP核硬件设

2021-03-09

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 摸鱼范式 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • RSA公钥、私钥对软件生成方法
  • 伪素数的生成与检测
  • 最大公约数算法
  • 模逆算法
  • 模幂算法
  • 指数掩码模型
  • 模幂模型
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档