| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 区块链 -> 基于近似计算的同态加密方案CKKS17----Relinearization和Rescaling -> 正文阅读 |
|
[区块链]基于近似计算的同态加密方案CKKS17----Relinearization和Rescaling |
Relinearization? ? ? ? 重线性化主要是针对密文乘法后密文尺寸膨胀的问题。 ? ? ? ? 先来看加解密过程。生成公私钥过程: ???????????????? ???????????????? ???????????????? ? ? ? ? 加解密过程: ???????????????? ???????????????? ???????????????? ? ? ? ? 同态加法及解密正确性: ???????????????? ???????????????? ? ? ? ? 同态乘法: ????????如果同态乘法是正确的,则有???????: ??????????????????????? ? ? ? ? 已知,则可以推出,同态乘法正确计算并解密后的结果为: ??????????????????????? ????????其中。 ? ? ? ? 可以观察到,密文经过一次乘法后膨胀了,原始密文只有两项,而同态乘法后变为了三项。如果不经处理,一直这样乘下去,那么两次乘法后就会变为五项,三次乘法后就会变为七项...... ? ? ? ? 所以需要在每次乘法后进行重线性化,来防止密文尺寸的增加。 重现性化???????????????我们可以知道,重线性化后的结果应该是:。对重线性化后的结果解密可以得到: ??????????????????????? ,观察上式可以看到:。如果存在一组多项式P,满足,则,即: ??????????????????????? ? ? ? ? 那么现在问题就是如何确定P了。解密过程最多只乘进来一个s,而期待的中s为二次,那么P中一定是包含s的。问题来了:sk是要我们自己偷偷保管的啊,不可以给别人,那么又该怎样把s传到P中呢?用到的就是evaluation key。 evaluation key ????????令,则。同时可以看到,evk中添加了两个随机化参数,可以保证s不泄露。 ? ? ? ? 所以可以设置,???????。但是问题又来了:,较大。 ? ? ? ? 解决办法就是更改下evk的形式,设置,其中。 ????????故而,。 Rescaling????????为了保证计算精度,在编码过程中预先乘入了缩放因子。两次乘法后缩放因子就又膨胀了,变为。 ????????设置,。代表整数部分精度,代表小数部分精度。则有重缩放过程: ??????????????????????? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:49:34- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |