SEAL全同态加密开源库(八) rns源码解析(2)

本文详细解读了SEAL开源库中利用RNS剩余数系统的设计,包括RNSBase、BaseConverter和RNSTool类的实现,以及关键转换函数和运算。通过实例介绍RNS在加密算法中的应用和优势。

SEAL全同态加密开源库(七) rns剩余数系统-源码解析

2021SC@SDUSC

2021-11-21

前言

这是SEAL开源库代码分析报告第七篇,本篇将继续分析util文件夹中的rns.h和rns.cpp,也即剩余数系统。

理论知识补充

推荐一篇很好的初学者入门博客,陈志罡教授写的:科学网—整数上全同态加密方案分析(1)–献给全同态加密的初学者 - 陈智罡的博文 (sciencenet.cn)

本期的理论知识补充,我们介绍RNS,剩余数系统。

剩余数表示系统(RNS,residue number system)是一种用较少的数表示较多的数的表示系统。RNS可显著提高信号处理应用中某些算法密集型场景的算法速度。此外,RNS也是研究快速算法极限理论的一个工具。

在这里插入图片描述

可能上面的看起来有些困难,这里举个例子,帮助理解。

1500年前的一位古代中国学者写下了这样一个问题:“已知三个数分别除以7、5、2得到的余数是2、3、2,试问这三个数分别是多少?”这可能是历史上第一个使用多剩余数表示的数字。这个问题的本质上是要将 模 (7|5|3) 的剩余数系统 上表示的数 (2|3|2) 转换为其对应的标准十进制形式。用RNS表示,x=(2|3|2)RNS(7|5|2).

对于我们的全同态加密而言,不难看出,其可以应用于用来进行大整数表示以及运算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值