加密方法、装置及电子设备.pdf

上传人:小** 文档编号:10820146 上传时间:2021-08-13 格式:PDF 页数:15 大小:455.85KB
收藏 版权申诉 举报 下载
加密方法、装置及电子设备.pdf_第1页
第1页 / 共15页
加密方法、装置及电子设备.pdf_第2页
第2页 / 共15页
加密方法、装置及电子设备.pdf_第3页
第3页 / 共15页
文档描述:

《加密方法、装置及电子设备.pdf》由会员分享,可在线阅读,更多相关《加密方法、装置及电子设备.pdf(15页完成版)》请在专利查询网上搜索。

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201911362811.5 (22)申请日 2019.12.25 (71)申请人 北京天融信网络安全技术有限公司 地址 100000 北京市海淀区上地东路1号院 3号楼四层 申请人 北京天融信科技有限公司 北京天融信软件有限公司 (72)发明人 郭婷婷 (74)专利代理机构 北京超凡宏宇专利代理事务 所(特殊普通合伙) 11463 代理人 蒋姗 (51)Int.Cl. H04L 9/06(2006.01) H04L 9/30(2006.01) (54)发明名称 加密方法、 装置。

2、及电子设备 (57)摘要 本申请提供了一种加密方法、 装置及电子设 备, 其中, 该方法包括: 根据加密密钥中的模数 值, 将待加密数据进行域变换和分解处理, 得到 指定域下的多个数据块; 将多个数据块, 使用加 密密钥的幂数值进行模乘运算, 得到对应的模乘 数据块; 对模乘数据块进行标准域变化, 得到对 应的加密数据。 权利要求书2页 说明书10页 附图2页 CN 111092718 A 2020.05.01 CN 111092718 A 1.一种加密方法, 其特征在于, 包括: 根据加密密钥中的模数值, 将待加密数据进行域变换和分解处理, 得到指定域下的多 个数据块; 将所述多个数据块, 。

3、使用所述加密密钥的幂数值进行模乘运算, 得到对应的模乘数据 块; 对所述模乘数据块进行标准域变化, 得到对应的加密数据。 2.根据权利要求1所述的方法, 其特征在于, 所述根据加密密钥中的模数值, 将待加密 数据进行域变换和分解处理, 得到指定域下的多个数据块的步骤, 包括: 将待加密数据分解成设定数量的多个初始数据块; 根据加密密钥中的模数值, 将所述多个初始数据块进行域变换, 得到指定域下的多个 域数据。 3.根据权利要求1所述的方法, 其特征在于, 所述根据加密密钥中的模数值, 将待加密 数据进行域变换和分解处理, 得到指定域下的多个数据块的步骤, 包括: 根据加密密钥中的模数值, 将待。

4、加密数据进行域变换, 得到指定域下的域数据; 将所述域数据分解成设定数量的多个数据块。 4.根据权利要求3所述的方法, 其特征在于, 所述根据加密密钥中的模数值, 将待加密 数据进行域变换, 得到指定域下的域数据的步骤, 包括: 根据加密密钥中的模数值, 使用蒙哥马利域对待加密数据进行域变换, 得到蒙哥马利 域下的域数据。 5.根据权利要求4所述的方法, 其特征在于, 所述根据加密密钥中的模数值, 使用蒙哥 马利域对待加密数据进行域变换, 得到蒙哥马利域下的域数据通过以下方式实现: m_mon(m*R)mod n; 其中, m表示所述待加密数据, R表示大于m的最小的二的幂, m_mon表示蒙。

5、哥马利域下的 域数据, n表示所述加密密钥中的模数值。 6.根据权利要求1所述的方法, 其特征在于, 所述将所述多个数据块, 使用所述加密密 钥的幂数值进行模乘运算, 得到对应的模乘数据块的步骤, 包括: 使用蒙哥马利乘法和所述加密密钥对所述多个数据块进行模乘运算, 得到对应的模乘 数据块。 7.根据权利要求1所述的方法, 其特征在于, 所述对所述模乘数据块进行标准域变化, 得到对应的加密数据的步骤, 包括: 将所述模乘数据块进行从蒙哥马利域至标准域的变换处理, 得到对应的加密数据。 8.根据权利要求7所述的方法, 其特征在于, 所述将所述模乘数据块进行从蒙哥马利域 的数据至标准域的变换处理,。

6、 得到对应的加密数据通过以下方式实现: m2(m1*R-1)mod n; 其中, m表示所述待加密数据, m2表示待加密数据m对应的加密数据块, m1表示数据块m 对应的模乘数据块, R表示大于m的最小的二的幂, n表示所述加密密钥中的模数值。 9.一种加密装置, 其特征在于, 包括: 处理模块, 用于根据加密密钥中的模数值, 将待加密数据进行域变换和分解处理, 得到 指定域下的多个数据块; 权利要求书 1/2 页 2 CN 111092718 A 2 加密模块, 用于将所述多个数据块, 使用所述加密密钥的幂数值进行模乘运算, 得到对 应的模乘数据块; 变换模块, 用于对所述模乘数据块进行标准。

7、域变化, 得到对应的加密数据。 10.一种电子设备, 其特征在于, 包括: 处理器、 存储器, 所述存储器存储有所述处理器 可执行的机器可读指令, 当电子设备运行时, 所述机器可读指令被所述处理器执行时执行 如权利要求1至8任一所述的方法的步骤。 11.一种计算机可读存储介质, 其特征在于, 该计算机可读存储介质上存储有计算机程 序, 该计算机程序被处理器运行时执行如权利要求1至8任一所述的方法的步骤。 权利要求书 2/2 页 3 CN 111092718 A 3 加密方法、 装置及电子设备 技术领域 0001 本申请涉及计算机技术领域, 具体而言, 涉及一种加密方法、 装置及 电子设备。 背。

8、景技术 0002 公钥密码算法与传统对称密码不同, 其算法基于数学函数而不是基于 替换和置 换, 属于非对称密码系统。 公钥密码算法既可实现信息的加解密, 也可用于数字签名、 密钥 管理、 身份认证等方面, 在信息安全领域得到广 泛采用。 但是在进行加密过程中存在大数 运算时, 密钥长度越长计算速度 就越慢, 给传统的软件计算方式带来了很大的压力和挑 战。 发明内容 0003 有鉴于此, 本申请实施例的目的在于提供一种加密方法、 装置及电子 设备。 能够 达到提高为各个用户配置可以操作的数据的效果。 0004 第一方面, 本申请实施例提供了一种加密方法, 包括: 0005 根据加密密钥中的模数。

9、值, 将待加密数据进行域变换和分解处理, 得 到指定域下 的多个数据块; 0006 将所述多个数据块, 使用所述加密密钥的幂数值进行模乘运算, 得到 对应的模乘 数据块; 0007 对所述模乘数据块进行标准域变化, 得到对应的加密数据。 0008 在可选的实施方式中, 所述根据加密密钥中的模数值, 将待加密数据 进行域变换 和分解处理, 得到指定域下的多个数据块的步骤, 包括: 0009 根据加密密钥中的模数值, 将待加密数据进行域变换, 得到指定域下 的域数据; 0010 将所述域数据分解成设定数量的多个数据块。 0011 在可选的实施方式中, 所述根据加密密钥中的模数值, 将待加密数据 进。

10、行域变换 和分解处理, 得到指定域下的多个数据块的步骤, 包括: 0012 将待加密数据分解成设定数量的多个初始数据块; 0013 根据加密密钥中的模数值, 将所述多个初始数据块进行域变换, 得到 指定域下的 多个域数据。 0014 本申请实施例提供的加密方法, 采用通过将数据分成多个数据块, 可 以将大数的 乘法转换成多个小数之间的乘法, 从而可以降低计算量, 提供 加密速度。 0015 在可选的实施方式中, 所述根据加密密钥中的模数值, 将待加密数据 进行域变 换, 得到指定域下的域数据的步骤, 包括: 0016 根据加密密钥中的模数值, 使用蒙哥马利域对待加密数据进行域变换, 得到蒙哥 。

11、马利域下的域数据。 0017 在可选的实施方式中, 所述根据加密密钥中的模数值, 使用蒙哥马利 域对待加密 数据进行域变换, 得到蒙哥马利域下的域数据通过以下方式实 现: 说明书 1/10 页 4 CN 111092718 A 4 0018 m_mon(m*R)mod n; 0019 其中, m表示所述待加密数据, R表示大于m的最小的二的幂, m_mon 表示蒙哥马利 域下的域数据, n表示所述加密密钥中的模数值。 0020 本申请实施例提供的加密方法, 采用先计算蒙哥马利域下的数据, 再 对蒙哥马利 域下的数据进行乘法计算, 从而可以提高加密计算速度。 0021 在可选的实施方式中, 所述。

12、将所述多个数据块, 使用所述加密密钥的 幂数值进行 模乘运算, 得到对应的模乘数据块的步骤, 包括: 0022 使用蒙哥马利乘法和所述加密密钥对所述多个数据块进行模乘运算, 得到对应 的模乘数据块。 0023 本申请实施例提供的加密方法, 使用蒙哥马利乘法可以将幂运算转换 成乘运算, 从而可以提高运算速度。 0024 在可选的实施方式中, 所述对所述模乘数据块进行标准域变化, 得到 对应的加密 数据的步骤, 包括: 0025 将所述模乘数据块进行从蒙哥马利域至标准域的变换处理, 得到对应 的加密数 据。 0026 在可选的实施方式中, 所述将所述模乘数据块进行从蒙哥马利域的数 据至标准 域的变。

13、换处理, 得到对应的加密数据通过以下方式实现: 0027 m2i(m1i*R-1)mod n; 0028 其中, m表示所述待加密数据, m2表示待加密数据m对应的加密数据 块, m1表示数 据块m对应的模乘数据块, R表示大于m的最小的二的幂, n表示所述加密密钥中的模数值。 0029 本申请实施例提供的加密方法, 采用标准域下处理, 可以有效得到需 要的加密的 数据。 0030 第二方面, 本申请实施例提供了一种加密装置, 包括: 0031 处理模块, 用于根据加密密钥中的模数值, 将待加密数据进行域变换 和分解处 理, 得到指定域下的多个数据块; 0032 加密模块, 用于将所述多个数据。

14、块, 使用所述加密密钥的幂数值进行 模乘运算, 得到对应的模乘数据块; 0033 变换模块, 用于对所述模乘数据块进行标准域变化, 得到对应的加密 数据。 0034 第三方面, 本申请实施例还提供一种电子设备, 包括: 处理器、 存储 器, 所述存储 器存储有所述处理器可执行的机器可读功能, 当电子设备运 行时, 所述机器可读功能被所 述处理器执行时执行上述第一方面, 或第一 方面的任一种可能的实施方式中的方法的步 骤。 0035 第四方面, 本申请实施例还提供一种计算机可读存储介质, 该计算机 可读存储介 质上存储有计算机程序, 该计算机程序被处理器运行时执行上 述第一方面, 或第一方面的 。

15、任一种可能的实施方式中的方法的步骤。 0036 本申请实施例提供的加密方法、 装置及电子设备, 采用将数据拆分成 多块数据, 从而可以将大数的模幂运算转换成较小的数据的模乘运算, 从 而可以提高运算速度, 提高 加密效率。 0037 为使本申请的上述目的、 特征和优点能更明显易懂, 下文特举实施例, 并配合所 说明书 2/10 页 5 CN 111092718 A 5 附附图, 作详细说明如下。 附图说明 0038 为了更清楚地说明本申请实施例的技术方案, 下面将对实施例中所需 要使用的 附图作简单地介绍, 应当理解, 以下附图仅示出了本申请的某些 实施例, 因此不应被看作 是对范围的限定, 。

16、对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以 根据这些附图获得其他相关的附图。 0039 图1为本申请实施例提供的电子设备的方框示意图。 0040 图2为本申请实施例提供的加密方法的流程图。 0041 图3为本申请实施例提供的加密装置的功能模块示意图。 具体实施方式 0042 下面将结合本申请实施例中附图, 对本申请实施例中的技术方案进行 描述。 0043 应注意到: 相似的标号和字母在下面的附图中表示类似项, 因此, 一 旦某一项在 一个附图中被定义, 则在随后的附图中不需要对其进行进一步 定义和解释。 同时, 在本申 请的描述中, 术语 “第一” 、“第二” 等仅用于。

17、 区分描述, 而不能理解为指示或暗示相对重要 性。 0044 实施例一 0045 为便于对本实施例进行理解, 首先对执行本申请实施例所公开的加密 方法的电 子设备进行详细介绍。 0046 如图1所示, 是电子设备的方框示意图。 电子设备100可以包括存储 器111、 存储控 制器112、 处理器113、 外设接口114及输入输出单元115。 本领域普通技术人员可以理解, 图 1所示的结构仅为示意, 其并不对电子 设备100的结构造成限定。 例如, 电子设备100还可包 括比图1中所示更 多或者更少的组件, 或者具有与图1所示不同的配置。 0047 上述的存储器111、 存储控制器112、 处理。

18、器113、 外设接口114及输 入输出单元115 各元件相互之间直接或间接地电性连接, 以实现数据的传 输或交互。 例如, 这些元件相互 之间可通过一条或多条通讯总线或信号线 实现电性连接。 上述的处理器113用于执行存储 器中存储的可执行模块。 0048 其中, 存储器111可以是, 但不限于, 随机存取存储器(Random Access Memory, 简 称RAM), 只读存储器(Read Only Memory, 简称ROM), 可 编程只读存储器(Programmable Read-Only Memory, 简称PROM), 可擦除 只读存储器(Erasable Programmab。

19、le Read-Only Memory, 简称EPROM), 电可擦除只读存储器(Electric Erasable Programmable Read- Only Memory, 简称EEPROM)等。 其中, 存储器111用于存储程序, 所述处理器113在 接收到 执行功能后, 执行所述程序, 本申请实施例任一实施例揭示的过程 定义的电子设备100所 执行的方法可以应用于处理器113中, 或者由处理 器113实现。 0049 上述的处理器113可能是一种集成电路芯片, 具有信号的处理能力。 上述的处理 器113可以是通用处理器, 包括中央处理器(Central Processing Uni。

20、t, 简称CPU)、 网络处 理器(Network Processor, 简称NP)等; 还可以是 数字信号处理器(digital signal processor, 简称DSP)、 专用集成电路 (Application Specific Integrated Circuit, 简称 说明书 3/10 页 6 CN 111092718 A 6 ASIC)、 现场可编程门阵列 (FPGA)或者其他可编程逻辑器件、 分立门或者晶体管逻辑器件、 分立硬件 组件。 可以实现或者执行本申请实施例中的公开的各方法、 步骤及逻辑框 图。 通 用处理器可以是微处理器或者该处理器也可以是任何常规的处理器 等。。

21、 0050 上述的外设接口114将各种输入/输出装置耦合至处理器113以及存储 器111。 在 一些实施例中, 外设接口114, 处理器113以及存储控制器112 可以在单个芯片中实现。 在其 他一些实例中, 他们可以分别由独立的芯片 实现。 0051 上述的输入输出单元115用于提供给用户输入数据。 所述输入输出单 元115可以 是, 但不限于, 鼠标和键盘等。 0052 本实施例中的电子设备100可以用于执行本申请实施例提供的各个方 法中的各 个步骤。 下面通过几个实施例详细描述加密方法的实现过程。 0053 本申请实施例中的加密方法所使用的加密方式可以是RSA算法。 RSA 算法的运算 。

22、核心是模幂运算, 通常都是将模幂转换成模乘运算。 而模乘运 算主要的实现方法是蒙哥马 利(Montgomery)算法。 采用Montgomery算 法需要做3次n*n位的大数乘法, 还需要进行n*n 位的加法, 且可能会引 入一个不必要的参数, 为了消除这个参数对最终结果的影响, 需要 在每次 模乘之后额外进行一个模乘来校正结果。 目前有一种方法在Montgomery算 法中引 入余数域的概念, 通过SRT算法来消除掉这个不必要参数带来的影 响。 基于上述研究, 本申 请实施例提供一种基于RSA模幂运算的加密方法, 采用优化后的Montgomery算法, 减少大 数进行模幂运算时的运算时间, 。

23、同时支持并发运算, 提高RSA算法的运算性能。 下面通过实 施例详细描述 本申请实施例的加密方法。 0054 实施例二 0055 请参阅图2, 是本申请实施例提供的加密方法的流程图。 下面将对图2 所示的具体 流程进行详细阐述。 0056 步骤201, 根据加密密钥中的模数值, 将待加密数据进行域变换和分解 处理, 得到 指定域下的多个数据块。 0057 可选地, 在进行加密之前, 可以选确定出加密密钥。 本实施例中, 可 以使用非对称 加密, 则非对称加密密钥可以包括私钥和公钥。 其中, 公钥 作为加密数据时的密钥, 私钥作 为解密数据时的密钥。 0058 可选地, 公钥和私钥的生成可以按照。

24、以下方式: 1)随机生成两个大素 数, 使用p和 q表示。 本实施例中, 两个素数p和q的位数为N/2位。 2) 计算np*q。 3)计算小于n, 且与n互 质的个数, 可以欧拉函数4)选取加密密钥e, 使且与 互质。 5)利用 Euclid(欧几里德)算法计算解密密钥d; 使d满足最 后, 可以将(e,n)公开作为公钥, (d, n)作为私钥。 其中, 密钥中的模 n是一个N位正整数。 0059 本实施例中的加密方法可以使用上述的公钥(e, n)进行加密。 在上 述实例中, 公 钥中的e表示幂数值, 公钥中的n表示模数值。 0060 本实施例中, 域变换与数据的分解的执行顺序可以不受限制。 。

25、0061 在一种实施方式中, 可以先将待加密数据进行分解再进行域变换。 示 例性地, 步 骤201可以包括以下步骤。 0062 步骤2011, 将待加密数据分解成设定数量的多个初始数据块。 说明书 4/10 页 7 CN 111092718 A 7 0063 示例性地, 可以将待加密数据分解成多份。 例如, 可以将待加密数据 m等分成K份, 表示为m1, m2, m3, , mk, 每一份数据块的长度相 同。 例如, 待加密数据为1024bit的数 据, 等分成两份, 则可以分成两位512bit 的数据。 0064 步骤2012, 根据加密密钥中的模数值, 将所述多个初始数据块进行域 变换, 。

26、得到 指定域下的多个域数据。 0065 示例性地, 通过以下方式实现: 0066 mi_mon(mi*Ri)mod n; 0067 其中, mi表示所述待加密数据被分解后的第i个初始数据块, Ri表示 大于mi的最 小的二的幂, mi_mon表示蒙哥马利域下的域数据, n表示所述 加密密钥中的模数值。 0068 在另一种实施方式中, 可以先将待加密数据进行域变换再进行分解。 步骤201可 以包括以下步骤。 0069 步骤2013, 根据加密密钥中的模数值, 将待加密数据进行域变换, 得 到指定域下 的域数据。 0070 步骤2013可以包括: 根据加密密钥中的模数值, 使用蒙哥马利域对待 加密。

27、数据进 行域变换, 得到蒙哥马利域下的域数据。 0071 示例性地, 通过以下方式实现: 0072 m_mon(m*R)mod n; 0073 其中, m表示所述待加密数据, R表示大于m的最小的二的幂, m_mon 表示蒙哥马利 域下的域数据, n表示所述加密密钥中的模数值。 0074 示例性地, 若n是512bit的数据, 因此有2511m2512, 令R为大于 P的最小的2的幂, 则R2512。 对于一个数据m, m应满足0m0时, 循环: 0080 1)若xn, 则xxn; 0081 2)xx*2(x左移1位, 且末位补0); 0082 3)ii1; 0083 最后, 返回x512:1。

28、的值。 0084 通过上述的计算过程, 可以将蒙哥马利域变换的算法拆分为若干模减 算法的集 合, 可以大大提高计算速度。 0085 步骤2014, 将所述域数据分解成设定数量的多个数据块。 0086 步骤202, 将所述多个数据块, 使用所述加密密钥的幂数值进行模乘运 算, 得到对 应的模乘数据块。 0087 可循地, 步骤202可以被实施为: 使用蒙哥马利乘法和所述加密密钥 对所述多个 说明书 5/10 页 8 CN 111092718 A 8 数据块进行模乘运算, 得到对应的模乘数据块。 0088 示例性地, 上述的多个数据块如果包括K个数据块, 示例性地, K个 数据块为长度 相同的数据。

29、块。 进一步地, 将K个数据块进行两两组合乘法, 则需要K*K次乘法。 示例性地, 可以将多个数据可以包括两个数据块, 则 可以拆分成四个乘法运算。 示例性地, 以M为数据 块, 一共可以包括K个 数据块, 分别表示M1、 M2、 M3、 、 Mk, 将第一个M1数据块, 计算所 有M1 的乘法组合, 一共包括K项乘法组合, 作为第一运算结果。 示例性 地, 将Mi*Mj的乘积需要左 移(K-i)*(K-j)*L项, 得到该乘积对应的实 际值, 其中L表示N个数据块的长度。 第二个M2数 据块与后级的所有数 据块的乘法结果, 通过将乘法结果进行移位处理, 得到第二运算结 果; 第 三个M3数据。

30、块与后级的所有数据块的乘法结果, 通过将乘法结果进行移位 处理, 得 到第三运算结果, 以此类推获得K个的运算结果, 将K个运算结 果进行组合求和, 可以得到K 个数据块对应的原数据与原数据的乘积。 0089 本实施例中, 则可以预设数量的寄存器, 多个寄存器分别用于在计算 乘法时临时 存储作为乘数的各个数据块。 示例性地, 可以将K*K次乘法划 分至多个周期进行分别计算, 所有周期计算的乘法次数之和等于K*K。 以 M1、 M2、 M3、 、 Mk为运算单元, 随机选取其中的 预设数量的运算单元 存入寄存器, 计算寄存器中存储的各个运算单元之间的乘法, 并将计 算得 到的结果按位与, 得到实。

31、际计算结果; 以此计算, 以得到K*K次乘法对应 的计算结果。 并将多个周期计算的结果相加可以得到多个数据块对应的最 终结果。 0090 下面通过具体的实例描述上述的拆分成多个模块进行的乘法计算。 0091 例如, 若任意一数据的长度为512bit。 示例性地, 由多个数据块分别表 示为m1和 m2, 则计算结果可以表示为: m1*m1、 m1*m2、 m2*m1、 m2*m2。 可以将计算结果m1*m1左移1024 位, 也就得到m1*m1*21024。 将计算结果 m1*m2和m2*m1左移512位, 也就得到m1*m2*2512和m2* m1*2512, 计算 结果m2*m2无需移动。 。

32、可以将按照位数移动的计算结果相加可以得到最终 的 大数的计算结果。 0092 再例如, 以512bit的数据乘以512bit的数据为例, 可以将512bit的数据拆 分成八 个等长的数据块。 则需要做8*8次的乘法运算。 示例性地, 则第一个 周期可以做十四次乘 法, 第二个周期、 第三个周期各做十三次乘法, 第四 个周期做九次乘法, 第五个周期做七次 乘法, 第六个周期做五次乘法, 第 七个周期做三次乘法。 在每个周期内, 都将乘法的结果拼 成最初数据源的 整数倍, 通过半加器得到和与进位位。 最后, 将和与进位位进行相加以得 到最终结果。 由于最后的加法为数据源整数倍的两个数的相加, 末尾。

33、低位 除数据块低位相 乘有值外, 其余都为0, 因此加法可看成是960bit的两个数 相加。 考虑到960bit加法的进位 链过长, 因此将其拆为二十一次46bit的加法。 示例性地, 46bit的加法器是一个DSP单元可 处理加法的最宽位。 0093 下面对蒙哥马利乘法的计算进行示例性描述。 0094 对于蒙哥马利域的数据a_mon, b_mon, 求MonPro(a_mon,b_mon)。 以a_mon, b_mon 是512bit数据为例进行描述。 计算a_mon与b_mon的 蒙哥马利乘法的算法: 0095 1)ta_mon*b_mon; (a_mon与b_mon都为512bit的数据。

34、, 因此 t为1024bit的数据) 0096 u(t+(t*P_BAR mod R)*P)/R; (R为2的幂, 故mod R取低512bit, /R取高512bit, P_BAR为后备地址寄存器中存储的参数P) 0097 若uP则返回uP, 否则返回u。 说明书 6/10 页 9 CN 111092718 A 9 0098 本实施例中, 可以将蒙哥马利乘法可以在FPGA芯片上实现。 硬件算 法可以表示 为: 0099 Step 1: 计算ta*b(将t1023:512与t511:0分别保存到寄存器中) 0100 Step2: 计算temp1t511:0*P_BAR 0101 Step3: 。

35、计算temp2temp1*P 0102 Step4: 计算temp3R1511:0+R2511:0+R1512 0103 Step5: 计算temp4R1512:0P 0104 结果: 若R1512本身为1, 返回temp4511:0; 0105 否则若temp4512为1, 返回R1511:0; 0106 否则返回temp4511:0。 0107 其中, 上述R1511:0和R2511:0分别表示两个寄存器中的数据, 一 些计算得到 的中间结果或者变量会放到该寄存器中, P表示在此次运算中的 模数值。 0108 通过上述的算法可以知道, 可以将蒙哥马利乘法拆分成3个512bit的 乘法, 一。

36、个 512bit的模加和一个512bit的模减运算, 从而可以降低了计算 量。 0109 步骤203, 对所述模乘数据块进行标准域变化, 得到对应的加密数据。 0110 示例性地, 可以将所述模乘数据块进行从蒙哥马利域至标准域的变换 处理, 得到 对应的加密数据。 0111 可选地, 将所述模乘数据块进行从蒙哥马利域的数据至标准域的变换 处理, 得到 对应的加密数据通过以下方式实现: 0112 m2i(m1i*R-1)mod n; 0113 其中, m表示所述待加密数据, m2表示待加密数据m对应的加密数据 块, m1表示数 据块m对应的模乘数据块, R表示大于m的最小的二的幂, n表示所述加。

37、密密钥中的模数值。 0114 示例性地, 上述的公式的推导过程可以为: 0115 对于已知的参数R, 其逆R-1mod n是可求的。 对于模逆算法有R*R-1 n*n 1。 对于 蒙哥马利域变换, 有m_mon(m*R)mod n。 将蒙哥马利域 变换将两边都乘以R-1mod P, 则有 (m_mon*R-1)mod n(m*R*R-1)mod n (a*(1+n*n )mod nm mod n。 则对于标准域变换 我们有, m(m_mon *R-1)mod P。 0116 本实施例中, 关于将数据转换成标准域下的数值可以在FPGA芯片上 实现。 0117 示例性地, 硬件可以实现的算法, 可。

38、以表示为以下内容: 0118 初始化: 0119 i512,xm_mon*R_BAR(x为1024bit的数, 计算时扩充为1025bit); 0120 当i0时, 循环: 0121 1)若x1025:512P, 则xxP; 0122 2)xx*2(x左移1位, 且末位补0); 0123 3)ii1; 0124 返回x1025:512的值。 0125 其中, R_BAR表示后备地址寄存器中存储的已知的参数R。 0126 通过上述的算法对于标准域变换, 可以将其运算拆成一个512bit的乘 法运算与 若干模减运算的集合。 说明书 7/10 页 10 CN 111092718 A 10 0127 。

39、本申请实施例中可以通过FPGA实现, 并使用优化后的Montgomery算 法, 减少大数 进行模幂运算时的运算时间, 同时支持并发运算, 提高RSA 算法的运算性能。 0128 本申请实施例采用FPGA芯片实现RSA的密码加密功能, 用逻辑硬件 实现算法运 算, 运算速度比采用CPU软件的运算速度快, 而且可以释放CPU 大量运算工作, 节省CPU的资 源。 0129 本申请实施例在目前的RSA算法的设计基础上进行优化, 通过蒙哥马 利乘法的公 式推导化简完成大数加法的硬件实现, 减少了蒙哥马利乘法运 算的消耗时间, 运算速率得 到提升。 0130 在资源利用上, 通过将大数乘法拆分后组合相。

40、乘, 可大大减少DSP (Digital Signal Processing)乘法器的占用率。 例如, 当RSA的位宽为 2048bits时, 可将2048*2048 的乘法拆分为四个1024*1024的乘法, 重复调 用RSA算法核模块即可。 多核CPU可以通过对 应的DMA(Direc Memory Access)队列通道独立调度RSA算法核模块, 实现多核并发运行。 0131 在蒙哥马利算法的计算中会有一个大数的加法, 大数的加法会使用超 长进位链, 这会导致蒙哥马利乘法计算速度降低, 通过公式推导, 可以将 大数的加法运算化简为至少 一半位宽的数据预算, 避免超长进位链的使用, 提高运。

41、算速率。 0132 进一步地, 通过将数据等分拆分可以得到多个小的数据, 从而将大 数乘法转换成 多个小数乘法的组合, 利用低位乘法组合的参数查找, 可以 统一多个乘法组合的运算优先 级, 根据优先级上乘法组合的数量完成乘法 器的例化, 提高运算速率的同时减少了运算资 源的占用率。 0133 实施例三 0134 基于同一申请构思, 本申请实施例中还提供了与加密方法对应的加密 装置, 由于 本申请实施例中的装置解决问题的原理与本申请实施例中的加 密方法相似, 因此本实施 例中的装置的实施可以参见上述方法的实施例中 的描述, 重复之处不再赘述。 0135 请参阅图3, 是本申请实施例提供的加密装置。

42、的功能模块示意图。 本实 施例中的 加密装置中的各个模块用于执行上述方法实施例中的各个步骤。 加密装置包括: 处理模块 301、 加密模块302及变换模块303。 其中, 0136 处理模块301, 用于根据加密密钥中的模数值, 将待加密数据进行域变 换和分解 处理, 得到指定域下的多个数据块; 0137 加密模块302, 用于将所述多个数据块, 使用所述加密密钥的幂数值进 行模乘运 算, 得到对应的模乘数据块; 0138 变换模块303, 用于对所述模乘数据块进行标准域变化, 得到对应的加 密数据。 0139 一种可能的实施方式中, 处理模块301包括: 第一域变换单元和第一 分解单元; 0。

43、140 第一域变换单元, 用于根据加密密钥中的模数值, 将待加密数据进行 域变换, 得 到指定域下的域数据; 0141 第一分解单元, 用于将所述域数据分解成设定数量的多个数据块。 0142 一种可能的实施方式中, 处理模块301包括: 第二域变换单元和第二 分解单元; 0143 第二分解单元, 用于将待加密数据分解成设定数量的多个初始数据块; 0144 第二域变换单元, 用于根据加密密钥中的模数值, 将所述多个初始数 据块进行域 变换, 得到指定域下的多个域数据。 说明书 8/10 页 11 CN 111092718 A 11 0145 一种可能的实施方式中, 第一域变换单元, 用于: 01。

44、46 根据加密密钥中的模数值, 使用蒙哥马利域对待加密数据进行域变换, 得到蒙哥 马利域下的域数据。 0147 一种可能的实施方式中, 第一域变换单元通过以下方式实现: 0148 m_mon(m*R)mod n; 0149 其中, m表示所述待加密数据, R表示大于m的最小的二的幂, m_mon 表示蒙哥马利 域下的域数据, n表示所述加密密钥中的模数值。 0150 一种可能的实施方式中, 加密模块302, 用于使用蒙哥马利乘法和所述 加密密钥 对所述多个数据块进行模乘运算, 得到对应的模乘数据块。 0151 一种可能的实施方式中, 变换模块303, 用于将所述模乘数据块进行从 蒙哥马利 域至。

45、标准域的变换处理, 得到对应的加密数据。 0152 一种可能的实施方式中, 变换模块303通过以下方式实现: 0153 m2(m1*R-1)mod n; 0154 其中, m表示所述待加密数据, m2表示待加密数据m对应的加密数据 块, m1表示数 据块m对应的模乘数据块, R表示大于m的最小的二的幂, n表示所述加密密钥中的模数值。 0155 此外, 本申请实施例还提供一种计算机可读存储介质, 该计算机可读 存储介质上 存储有计算机程序, 该计算机程序被处理器运行时执行上述方 法实施例中所述的加密方 法的步骤。 0156 本申请实施例所提供的加密方法的计算机程序产品, 包括存储了程序 代码的。

46、计 算机可读存储介质, 所述程序代码包括的功能可用于执行上述方 法实施例中所述的加密 方法的步骤, 具体可参见上述方法实施例, 在此不 再赘述。 0157 在本申请所提供的几个实施例中, 应该理解到, 所揭露的装置和方法, 也可以通 过其它的方式实现。 以上所描述的装置实施例仅仅是示意性的, 例如, 附图中的流程图和 框图显示了根据本申请的多个实施例的装置、 方 法和计算机程序产品的可能实现的体系 架构、 功能和操作。 在这点上, 流 程图或框图中的每个方框可以代表一个模块、 程序段或代 码的一部分, 所 述模块、 程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能 的可执行功能。 也应。

47、当注意, 在有些作为替换的实现方式中, 方框中所标 注的功能也可以 以不同于附图中所标注的顺序发生。 例如, 两个连续的方 框实际上可以基本并行地执行, 它们有时也可以按相反的顺序执行, 这依 所涉及的功能而定。 也要注意的是, 框图和/或流 程图中的每个方框、 以及 框图和/或流程图中的方框的组合, 可以用执行规定的功能或动 作的专用的 基于硬件的系统来实现, 或者可以用专用硬件与计算机功能的组合来实现。 0158 另外, 在本申请各个实施例中的各功能模块可以集成在一起形成一个 独立的部 分, 也可以是各个模块单独存在, 也可以两个或两个以上模块集 成形成一个独立的部分。 0159 所述功能。

48、如果以软件功能模块的形式实现并作为独立的产品销售或使 用时, 可 以存储在一个计算机可读取存储介质中。 基于这样的理解, 本申 请的技术方案本质上或者 说对现有技术做出贡献的部分或者该技术方案的 部分可以以软件产品的形式体现出来, 该计算机软件产品存储在一个存储 介质中, 包括若干功能用以使得一台计算机设备(可以 是个人计算机, 服 务器, 或者网络设备等)执行本申请各个实施例所述方法的全部或部分 步 骤。 而前述的存储介质包括: U盘、 移动硬盘、 只读存储器(ROM, Read-Only Memory)、 随机 说明书 9/10 页 12 CN 111092718 A 12 存取存储器(R。

49、AM, Random Access Memory)、 磁碟或者光 盘等各种可以存储程序代码的介 质。 需要说明的是, 在本文中, 诸如第一 和第二等之类的关系术语仅仅用来将一个实体或 者操作与另一个实体或操 作区分开来, 而不一定要求或者暗示这些实体或操作之间存在 任何这种实 际的关系或者顺序。 而且, 术语 “包括” 、“包含” 或者其任何其他变体意 在涵盖 非排他性的包含, 从而使得包括一系列要素的过程、 方法、 物品或 者设备不仅包括那些要 素, 而且还包括没有明确列出的其他要素, 或者是 还包括为这种过程、 方法、 物品或者设备 所固有的要素。 在没有更多限制 的情况下, 由语句 “包。

50、括” 限定的要素, 并不排除在包 括所述要素的 过程、 方法、 物品或者设备中还存在另外的相同要素。 0160 以上所述仅为本申请的优选实施例而已, 并不用于限制本申请, 对于 本领域的技 术人员来说, 本申请可以有各种更改和变化。 凡在本申请的精 神和原则之内, 所作的任何 修改、 等同替换、 改进等, 均应包含在本申请 的保护范围之内。 应注意到: 相似的标号和字 母在下面的附图中表示类似 项, 因此, 一旦某一项在一个附图中被定义, 则在随后的附图 中不需要对 其进行进一步定义和解释。 0161 以上所述, 仅为本申请的具体实施方式, 但本申请的保护范围并不局 限于此, 任 何熟悉本技术。

展开阅读全文
内容关键字: 加密 方法 装置 电子设备
关于本文
本文标题:加密方法、装置及电子设备.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/10820146.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1