当前位置: 首页 > news >正文

【隐私计算篇】中国剩余定理解释以及Paillier解密加速应用

1. 背景介绍 

         本篇主要关注中国剩余定理的原理以及在paillier同态加密系统中的应用。在很多工作中,都可以看到中国剩余定理的影子,特别是同态加密提升计算效率的优化工作中,将paillier与中国剩余定理进行结合,能够实现在加密状态下进行高效计算。

2. Paillier加密系统

      【1,2,3】描述了paillier加密系统的原理。这里做简单的描述。Paillier加密算法是一种同态加密算法,支持加法同态运算。该算法的安全性基于大整数的分解困难问题,具体的加密和解密过程涉及模数 N^2 上的运算,计算复杂度较高。

2.1 Paillier密钥生成

  • 选择两个大质数 p 和 q,计算 N = p \times q
  • 公钥为 N 和 g(通常选择 g = N + 1)。
  • 私钥为\lambda 和 \mu,其中:
    • \lambda = \text{lcm}(p-1, q-1)(即 p-1 和 q-1 的最小公倍数)。
    • \mu = (\mathcal{L}(g^\lambda \mod N^2))^{-1} \mod N,其中 \mathcal{L}(x) = \frac{x-1}{N}​。

2.2 加密和解密

  • 加密:给定明文 m,选择随机数 r,计算密文 c = g^m \cdot r^N \mod N^2
  • 解密:给定密文 c,解密过程为:m = \mathcal{L}(c^\lambda \mod N^2) \cdot \mu \mod N这里的模 N^2 运算会涉及非常大的数,计算较为耗时。

3. 中国剩余定理(CRT)

3.1 算法描述

        中国剩余定理(Chinese Remainder Theorem, CRT)【4,5】是数论中的一个经典定理,用来解决模数互素时同余方程组的求解问题。它最早起源于中国古代数学家孙子在《孙子算经》中的研究。

        设 m_1, m_2, \dots, m_k 是两两互素的整数,也就是说,对于i \neq j,有 \gcd(m_i, m_j) = 1。给定同余方程组:

\begin{cases} x \equiv a_1 \pmod{m_1} \\ x \equiv a_2 \pmod{m_2} \\ \vdots \\ x \equiv a_k \pmod{m_k} \end{cases}

其中 a_1, a_2, \dots, a_k 是给定的整数,则该方程组有唯一解 x (模 M = m_1 \times m_2 \times \dots \times m_k),并且解的形式为:

x \equiv c \pmod{M}

定理的意义:

  1. 解的存在性:如果模数 m_1, m_2, \dots, m_k 互素,则方程组总有解。
  2. 解的唯一性:在模 M = m_1 \times m_2 \times \dots \times m_k 意义下,解是唯一的。

解法步骤:

  1. 计算总模数:计算模数的乘积 M = m_1 \times m_2 \times \dots \times m_k
  2. 计算每个模的辅助量:对于每个 i,计算 M_i = \frac{M}{m_i},即其他模数的乘积。
  3. 计算模逆元:对于每个 i,找到 M_i 模 m_i 的逆元 N_i,即满足 M_i \times N_i \equiv 1 \pmod{m_i}的整数 N_i
  4. 求解 x:解的形式为: x = \sum_{i=1}^k a_i \times M_i \times N_i \pmod{M} 其中 a_i​ 是同余方程组中的常数项,M_i 是步骤 2 中的值,N_i 是步骤 3 中的模逆元。

此外,也关注到【6】对于中国剩余定理的解释比较清晰,这里也贴一下,以便参考学习。

3.2 模 n 同余概念

        模 n 同余是数论中的一个概念,用来表示两个整数在被同一个整数 n 除时得到相同的余数。具体来说,模 n 同余是指两个整数 a 和 b,如果 a 和 b 被 n 除后余数相同,那么我们说 a 和 b 在模 n 意义下同余,记作:

a \equiv b \ (\text{mod} \ n)

        这表示 a - b 能被 n 整除,即存在某个整数 k 使得:

a - b = k \cdot n

其中:

  • a 和 b 是两个整数。

  • n 是模数(或称模量),是一个正整数。

  • a \equiv b \ (\text{mod} \ n)表示当 a 和 b 都被 n 除后,余数相同,或者说 a - b 是 n 的倍数。

3.3 中国剩余定理应用问题说明

        中国剩余定理的原问题如下:

                有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?

        问题的意思是找一个数 x,满足以下三个同余条件:

\begin{aligned} x &\equiv 2 \ (\text{mod} \ 3), \\ x &\equiv 3 \ (\text{mod} \ 5), \\ x &\equiv 2 \ (\text{mod} \ 7). \end{aligned}

        我们要解这个系统,找到 x 满足所有条件。

        解法步骤:

  1. 从第一个和第二个条件开始:

    x \equiv 2 \ (\text{mod} \ 3), \quad x \equiv 3 \ (\text{mod} \ 5)

    x = 3k + 2,代入 x \equiv 3 \ (\text{mod} \ 5)

    3k + 2 \equiv 3 \ (\text{mod} \ 5)

    即:

    3k \equiv 1 \ (\text{mod} \ 5)

    我们需要解这个同余方程。找到 3^{-1} \ (\text{mod} \ 5) 即 3 在模 5 下的逆元。通过尝试:

    3 \times 2 = 6 \equiv 1 \ (\text{mod} \ 5)

    所以 k \equiv 2 \ (\text{mod} \ 5)。即 k = 5m + 2,代入 x = 3k + 2

    x = 3(5m + 2) + 2 = 15m + 8
  2. 考虑第三个条件 x \equiv 2 \ (\text{mod} \ 7) 现在有 x = 15m + 8,代入 x \equiv 2 \ (\text{mod} \ 7)

    15m + 8 \equiv 2 \ (\text{mod} \ 7)

    即:

    15m \equiv -6 \ (\text{mod} \ 7)

    由于 -6 \equiv 1 \ (\text{mod} \ 7),所以:

    15m \equiv 1 \ (\text{mod} \ 7)

    考虑 15 \equiv 1 \ (\text{mod} \ 7),所以这个方程化简为:

    m \equiv 1 \ (\text{mod} \ 7)

    m = 7n + 1。代入x = 15m + 8

    x = 15(7n + 1) + 8 = 105n + 23
  3. 得出最终结果: 所以,满足条件的数 x 可以表示为:

    x = 105n + 23

    其中 n 是任意整数。因此,最小的正整数解是 x = 23。

        所以这个物的数是 23。

4. Paillier引入中国剩余定理

4.1 思路介绍

        中国剩余定理与Paillier加密算法结合可以有效提升计算效率,尤其是在大数模运算的场景中。通过利用中国剩余定理的性质,将涉及大整数的计算拆分为两个较小模数空间中的并行计算,从而加快整体的运算速度。这种结合方式在Paillier加密算法中的典型应用是加速解密过程。

        具体地,中国剩余定理用于将大整数的计算分解为在较小整数模数下的并行计算。对于给定的两个模数 p 和 q,可以将模 N = p \times q下的计算转化为模 p 和模 q 下的两个独立计算。

        设 N = p \times q,对于任何整数 x,有:

x \mod N = (x \mod p, x \mod q)

        通过在较小模数空间中分别计算 x \mod px \mod q,可以加快运算速度。

        Paillier算法中的解密操作主要依赖于模 N^2 的运算,而 N^2 是一个非常大的数。通过中国剩余定理,可以将这些大模数运算分解为在较小模数 p^2 和q^2 下的并行计算,从而加速解密过程。

4.2 处理步骤

  1. 分解模数空间

    利用中国剩余定理,将模 N^2 下的运算分解为模 p^2 和模 q^2 的运算。
  2. 并行计算

    在解密过程中,密文 c 的解密需要计算 c^\lambda \mod N^2。通过中国剩余定理,可以将这一操作分解为: m_p = c^{\lambda_p} \mod p^2m_q = c^{\lambda_q} \mod q^2 其中 \lambda_p = \lambda \mod (p-1)\lambda_q = \lambda \mod (q-1)
  3. 重构结果

    利用中国剩余定理的逆过程,将模 p^2 和模 q^2 下的结果 m_pm_q 通过CRT重构为最终的明文 m \mod Nm = \text{CRT}(m_p, m_q) 这一步通过快速计算结合模 p 和 q 的结果,得到最终的解密结果。
  4. 在原始论文【2】中,其实也列出了相应的说明:        

        通过将模 N^2 下的计算分解为较小的模 p^2 和模 q^2 下的计算,可以显著减少大整数运算的复杂度。由于 p^2 和 q^2 远小于 N^2,解密速度可以得到明显提升。

4.3 推理依赖的定理

        这里根据哥大的材料【7】,列出paillier系统相关的定理,有兴趣可以看下定理的证明过程。        

5. 参考材料

【1】A Restrained Paillier Cryptosystemand Its Applications for Access Control of Common Secret

【2】Public-Key Cryptosystems Based on Composite Degree Residuosity Classes

【3】Paillier同态加密算法

【4】中国剩余定理

【5】The Chinese Remainder Theorem

【6】密码学-05-中国剩余定理

【7】Facts Related to Paillier Encryption

相关文章:

【隐私计算篇】中国剩余定理解释以及Paillier解密加速应用

1. 背景介绍 本篇主要关注中国剩余定理的原理以及在paillier同态加密系统中的应用。在很多工作中,都可以看到中国剩余定理的影子,特别是同态加密提升计算效率的优化工作中,将paillier与中国剩余定理进行结合,能够实现在加密状态下…...

保护您的隐私:隐藏 IP 地址的重要性

在当今的数字时代,我们的在线隐私和安全变得比以往任何时候都更加重要。浏览互联网时保护自己的一种方法是隐藏您的 IP 地址。 但是为什么要隐藏您的 IP 地址以及如何有效地做到这一点? 隐藏您的 IP 地址有助于保护您的在线匿名性。您的 IP 地址就像您的…...

nodejs 007:错误npm error Error: EPERM: operation not permitted, symlink

完整错误信息 npm error Error: EPERM: operation not permitted, symlink npm warn cleanup Failed to remove some directories [ npm warn cleanup [ npm warn cleanup C:\\Users\\kingchuxing\\Documents\\IPFS\\orbit-db-set-master\\node_modules\\ipfs-cli, npm…...

Rsync未授权访问漏洞复现及彻底修复

一、什么是 Rsync? Rsync 是一种广泛使用的文件传输工具,它允许系统管理员和用户通过局域网(LAN)或广域网(WAN)在计算机之间同步文件和目录。Rsync 支持通过本地或远程 shell 访问,也可以作为守…...

影刀RPA实战:网页爬虫之携程酒店数据

1.实战目标 大家对于携程并不陌生,我们出行定机票,住酒店,去旅游胜地游玩,都离不开这样一个综合性的网站为我们提供信息,同时,如果你也是做旅游的公司,那携程就是一个业界竞争对手,…...

【UCB CS61C】Lecture 5 - Floating Point

目录 引入浮点数(Floating Point)定点表示法(Fixed-Point Model)科学记数法(Scientific Notation)记数法间的转换 IEEE 754 二进制浮点数算术标准实现目标单精度浮点编码阶码字段(The Exponent …...

【Binlog实战】:基于Spring监听Binlog日志

【Binlog实战】:基于Spring监听Binlog日志 binlog的三种模式 MySQL 的二进制日志(binlog)有三种不同的格式,通常被称为 binlog 模式。这三种模式分别是 Statement 模式、Row 模式和Mixed 模式。 Statement 模式: 在 …...

鸿蒙OpenHarmony【轻量系统芯片移植】轻量系统STM32F407芯片移植案例

轻量系统STM32F407芯片移植案例 介绍基于STM32F407IGT6芯片在拓维信息[Niobe407]开发板上移植OpenHarmony LiteOS-M轻量系统,提供交通、工业领域开发板解决方案。移植架构采用Board与SoC分离方案,使用arm gcc工具链Newlib C库,实现了lwip、l…...

基于SpringBoot+定时任务实现地图上绘制车辆实时运动轨迹图

目录 1. 项目结构 2. Maven依赖配置 (pom.xml) 3. 实现后端服务 4. 配置文件 (application.properties) 5. 启动项目 6. 访问页面 实现基于北斗卫星的车辆定位和轨迹图的Maven工程(使用模拟数据),我们将使用以下技术: Spri…...

Rasa对话模型——做一个语言助手

1、Rasa模型 1.1 模型介绍 Rasa是一个用于构建对话 AI 的开源框架,主要用于开发聊天机器人和语音助手。Rasa 提供了自然语言理解(NLU)和对话管理(DM)功能,使开发者能够创建智能、交互式的对话系统。 1.2…...

golang学习笔记19——golang做服务发现与注册的深度剖析

推荐学习文档 golang应用级os框架,欢迎stargolang应用级os框架使用案例,欢迎star案例:基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识,这里有免费的golang学习笔…...

ROS和ROS2借助智能大模型的学习和研究方法

机器人相关知识的本身和价值-CSDN博客 知识本身在智能时代毫无价值,需要基于知识应用和创新才有价值。 学历报废并非来自扩招,而是智能模型的快速发展。-CSDN blink-领先的开发者技术社区 2024年中秋,智能模型实力已经如此,但还…...

弹性负载均衡ELB 详解和设置方法

一、弹性负载均衡ELB 详解 1. 定义与概念 弹性负载均衡(Elastic Load Balancing,简称ELB)是一种将访问流量自动分发到多台云服务器的流量分发控制服务。它通过在多个后端服务器之间均衡分配请求,提高应用程序的可用性、可扩展性…...

Python3网络爬虫开发实战(15)Scrapy 框架的使用(第一版)

文章目录 一、Scrapy 框架介绍1.1 数据流1.2 项目结构1.3 Scrapy 入门 二、Selector 解析器2.1 XPath 和 CSS 选择器2.2 信息提取2.3 正则提取 三、Spider 的使用3.1 Spider 运行流程3.2 Spider 类分析3.3 Request3.4 Response 四、Download Middleware 的使用4.1 process_requ…...

大众点评代发排名骗局

大众点评代发排名骗局 不诋毁同行,不贬低对手,请各位老板擦亮眼睛,认真看完这篇文章,以防上当受骗#网络宣传#企业推广#企业推广 大众点评代发排名:一场精心编织的骗局 在这个美食如云的时代&…...

硬件基础知识

驱动开发分为:裸机驱动、linux驱动 嵌入式:以计算机技术为基础,软硬结合的、可移植、可剪裁的专用计算机 单片机最小单元:vcc gnd reset 晶振 cpu --- soc :system on chip 片上外设 所有的程序都是在soc(cpu&…...

使用gitee如何回滚上一个版本,简单操作方式-gitee自带功能无需使用代码

使用gitee如何回滚上一个版本,简单操作方式-gitee自带功能无需使用代码,很多朋友使用代码的话容易出错,gitee自带了本功能: 找到gitee代码仓库,找到对应的想要回滚的版本点击进去 点击revert,选择自己对应的…...

独立站技能树之建站33项自检清单 1.0丨出海笔记

很多时候大家建好站之后很嗨,但过一会就开始担忧各种纠结我是不是还有什么点没做好,或者我的站漏了什么东西,那么接下来以下这个独立站自检清单能很好的帮到你。其实对于新手我还是建议大家直接用一些模板,因为模板上面基本该有的…...

js进阶-作用域是什么

经过前面80多篇文章对js相关内容的讲解,相信大家对js这门语言已经有了一定的知识储备,也掌握了这门语言的相关特性,领会到这门语言的魅力所在,所以从今天开始,会定期更新js进阶相关知识,大家可以持续关注&a…...

ant-design表格自动合并相同内容的单元格

表格自动合并相同内容的单元格 合并hooks import { TableColumnProps } from antdexport const useAutoMergeTableCell <T extends object>(dataSource: Array<T>,columns: Array<TableColumnProps> | Array<keyof T> ): Map<keyof T, Array<…...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...

redis和redission的区别

Redis 和 Redisson 是两个密切相关但又本质不同的技术&#xff0c;它们扮演着完全不同的角色&#xff1a; Redis: 内存数据库/数据结构存储 本质&#xff1a; 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能&#xff1a; 提供丰…...

华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)

题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...

Python实现简单音频数据压缩与解压算法

Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中&#xff0c;压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言&#xff0c;提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...

软件工程 期末复习

瀑布模型&#xff1a;计划 螺旋模型&#xff1a;风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合&#xff1a;模块内部功能紧密 模块之间依赖程度小 高内聚&#xff1a;指的是一个模块内部的功能应该紧密相关。换句话说&#xff0c;一个模块应当只实现单一的功能…...

高抗扰度汽车光耦合器的特性

晶台光电推出的125℃光耦合器系列产品&#xff08;包括KL357NU、KL3H7U和KL817U&#xff09;&#xff0c;专为高温环境下的汽车应用设计&#xff0c;具备以下核心优势和技术特点&#xff1a; 一、技术特性分析 高温稳定性 采用先进的LED技术和优化的IC设计&#xff0c;确保在…...

算法刷题-回溯

今天给大家分享的还是一道关于dfs回溯的问题&#xff0c;对于这类问题大家还是要多刷和总结&#xff0c;总体难度还是偏大。 对于回溯问题有几个关键点&#xff1a; 1.首先对于这类回溯可以节点可以随机选择的问题&#xff0c;要做mian函数中循环调用dfs&#xff08;i&#x…...