Paillier半同态加密 【练习markdown】

Paillier半同态加密

Paillier算法介绍

基本概念

  • 质数:
    • 也称素数,是指只能被1和本身整除的自然数,即大于1的自然数中,除了1和它本身以外,没有其它的因数。比如2、3、5、7、11等都是质数,而4、6、8、9等则不是质数。
  • Z n ∗ Z_n^* Zn
    • 表示模n意义下,即 [ 0 − n ) [0-n) [0n)中所有与n互质的元素的集合。
  • Z n 2 ∗ Z_{n^2}^* Zn2
    • 表示模 n 2 n^2 n2意义下的可逆元素集合。具体地,对于正整数 n n n Z n 2 ∗ Z_{n^2}^* Zn2包含了模 n 2 n^2 n2意义下与 n 2 n^2 n2互质的所有元素。也就是说,如果 x x x属于 Z n 2 ∗ Z_{n^2}^* Zn2,那么 x x x满足以下两个条件:
      • x x x n 2 n^2 n2互质,即 g c d ( x , n 2 ) = 1 gcd\left(x, n^2\right) = 1 gcd(x,n2)=1
      • x x x在模 n 2 n^2 n2意义下有逆元,即存在 y y y使得 x y ≡ 1 ( m o d n ) 2 xy \equiv 1\pmod n^2 xy1(modn)2
  • 欧拉函数 φ ( n ) \varphi\left(n\right) φ(n)
    • n = p q n = pq n=pq,其中 p p p q q q是两个质数
    • 欧拉函数 φ ( n ) = ( p − 1 ) ( q − 1 ) \varphi\left(n\right) = \left(p-1\right)\left(q-1\right) φ(n)=(p1)(q1)即为 Z n ∗ Z_n^* Zn中的元素个数
    • 更进一步, Z n 2 ∗ Z_{n^2}^* Zn2的元素个数为 φ ( n 2 ) = n φ ( n ) \varphi\left(n^2\right) = n\varphi\left(n\right) φ(n2)=nφ(n)
  • 卡迈克尔函数(Carmichael’s Function)
    • λ ( n ) = l c m ( p − 1 , q − 1 ) ) \lambda\left(n\right) = lcm\left(p-1, q-1)\right) λ(n)=lcm(p1,q1))满足 a λ ( n ) ≡ 1 ( m o d n ) a^{\lambda\left(n\right)} \equiv 1 \pmod n aλ(n)1(modn)
    • 根据卡迈克尔定理(Carmichael’s Theorem),对于任意元素 ω ∈ Z n 2 ∗ \omega \in Z_{n^2}^* ωZn2
      • ω λ ≡ 1 ( m o d n ) \omega^\lambda \equiv 1 \pmod n ωλ1(modn)
      • ω n λ ≡ 1 ( m o d n 2 ) \omega^{n\lambda} \equiv 1 \pmod {n^2} ω1(modn2)
  • n次剩余
    • 在数论中,给定一个正整数 a a a和一个素数 p p p,如果存在整数 x x x使得 x 2 ≡ a ( m o d p ) x^2 \equiv a \pmod p x2a(modp),那么称 a a a是模 p p p的二次剩余(Quadratic Residue,QR),否则称 a a a是模 p p p的二次非剩余(Quadratic Non-Residue, QNR)。
    • 类似地,如果存在整数 x x x使得 x n ≡ a ( m o d p ) x^n \equiv a \pmod p xna(modp),那么称 a a a是模 p p p的n次剩余(nth Power Residue),否则称 a a a是模 p p p的n次非剩余(nth Power Non-Residue)。
    • n = 2 n = 2 n=2时,n次剩余就是二次剩余。n次剩余和二次剩余一样,具有很多重要的应用,例如在加密算法和密码学中被广泛使用。
  • 复合剩余类问题(Composite Residuosity Problem,CRP)
    • 在模 n n n意义下,给定两个整数 a a a b b b,判断是否存在整数 x x x,使得 a ≡ x 2 ( m o d n ) a \equiv x^2 \pmod n ax2(modn) b ≡ x 2 ( m o d n ) b \equiv x^2 \pmod n bx2(modn)同时成立。其中n是一个合数。
  • 二项式定理
    • 泰勒展开式 y = ( 1 + n ) x = ∑ k = 0 x C x k n k = 1 + n x + C x 2 n 2 + . . . y=(1+n)^x=\sum _{k=0}^xC_x^kn^k=1+nx+C_x^2n^2+... y=1+n)x=k=0xCxknk=1+nx+Cx2n2+...,显然有 ( 1 + n ) x ≡ 1 + n x m o d n 2 (1+n)^x\equiv 1+nx\mod n^2 (1+n)x1+nxmodn2,则 y − 1 ≡ n x m o d n 2 y-1\equiv nx\mod n^2 y1nxmodn2,两边同除以 n n n得, x ≡ ( y − 1 ) / n m o d n x\equiv(y-1)/n\mod n x(y1)/nmodn。所以,在Paillier方案中,会构造函数 L ( y ) = ( y − 1 ) / n L(y)=(y-1)/n L(y)=(y1)/n,可得 L ( y m o d n 2 ) ≡ x m o d n L(y\mod n^2)\equiv x\mod n L(ymodn2)xmodn

算法思路

Paillier半同态加密算法的安全性基于复合剩余类问题(Decisional Composite Residusity Assumption, DCRA)的困难性,即在给出 y y y n n n的情况下,很难判断模 n 2 n^2 n2的n次剩余是否存在: z ≡ y n ( m o d n 2 ) z \equiv y^n \pmod {n^2} zyn(modn2)

加解密过程

密钥
  • 选择两个不同且长度相等的大素数 p p p, q q q,保证 g c d ( p q , ( p − 1 ) ( q − 1 ) ) = 1 gcd\left(pq, \left(p-1\right)\left(q-1\right)\right) = 1 gcd(pq,(p1)(q1))=1
  • 计算 n = p q n=pq n=pq以及 λ = l c m ( p − 1 , q − 1 ) λ=lcm(p-1, q-1) λ=lcm(p1,q1)这里 l c m lcm lcm表示最小公倍数
  • 随机选择整数 g g g, g ∈ Z n 2 ∗ g \in Z^*_{n^2} gZn2,且满足 μ = ( L ( g λ ( m o d n 2 ) ) ) − 1 \mu=\left(L\left(g^\lambda\pmod{n^2}\right)\right)^{-1} μ=(L(gλ(modn2)))1存在, L L L函数定义为 L ( x ) = x − 1 n L(x) = \frac{x-1}{n} L(x)=nx1
  • 得到公钥 ( n , g ) (n, g) (n,g),私钥 ( λ , μ ) (\lambda, \mu) (λ,μ)
加密
  • 对于明文 m m m m ∈ Z n ∗ m\in Z_n^* mZn,选择随机数 r r r r ∈ Z n ∗ r\in Z_n^* rZn r r r n n n互质
  • 计算密文

c = E n c ( m , n , g , r ) = g m r n ( m o d n 2 ) \begin{aligned} c &= Enc(m, n, g, r) \\ &= g^mr^n\pmod {n^2} \end{aligned} c=Enc(m,n,g,r)=gmrn(modn2)

解密
  • 计算明文:

m = D e c ( c , λ , μ ) = L ( c λ m o d n 2 ) ∗ μ ( m o d n ) = L ( c λ m o d n 2 ) L ( g λ m o d n 2 ) ( m o d n ) \begin{aligned} m &= Dec(c, \lambda, \mu) \\ &= L\left(c^λ\mod{n^2}\right)*\mu\pmod n \\ &= \frac{L\left(c^\lambda \mod n^2\right)}{L\left(g^\lambda \mod n^2\right)}\pmod n \end{aligned} m=Dec(c,λ,μ)=L(cλmodn2)μ(modn)=L(gλmodn2)L(cλmodn2)(modn)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/36408.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器机柜和网络机柜有什么区别

服务器机柜和网络机柜虽然在外观上可能相似,都遵循19英寸的标准,但它们的设计目的、功能、结构和特性存在明显的区别。下面是两者的主要区别: 1. 用途 服务器机柜:主要用于承载和组织服务器设备,包括主机、存储设备、交…

两个基因相关性CPTAC蛋白组数据

目录 蛋白数据下载 ①蛋白数据下载 1,TCGA-选择泛癌数据 2,TCGA-TCPA 3,CPTAC(非TCGA) ②蛋白相关性分析 1,数据整理 2,蛋白相关性分析 PCAS在线分析 蛋白数据下载 CPTAC蛋白组学数据库介绍及数据下载分析 – 王进的个人网站 (jingege.wang) ①蛋白数据下载 可…

智能化物业服务:楼层动态一目了然

通过图扑先进的可视化技术,实现对物业楼层的实时监控与高效管理。全面掌握楼层动态,优化资源配置,提升响应速度和服务质量,为业主提供智能化、便捷化的物业管理体验。

智慧校园-就业管理系统总体概述

在当代教育与信息技术深度融合的背景下,智慧校园就业管理系统成为了连接学生、高校与企业的重要纽带,它以创新的服务理念和技术手段,重塑了职业规划与就业服务的传统模式。这一系统致力于为即将步入社会的学生们提供全面、个性化的支持&#…

酒店民宿预订小程序:高效管理,便捷入住

目前,我国旅游业发展非常旺盛,同时也带动了酒店民宿的快速发展。随着互联网科技的快速发展,酒店民宿小程序层出不穷。一个高效的小程序目前已经成为了各大服务业中必不可少的环节,对于酒店民宿商家来说,线上小程序不仅…

2024年6月大众点评广州餐饮店铺POI分析20万家

2024年6月大众点评广州餐饮店铺POI共有199175家 店铺POI点位示例: 店铺id k9uiFADtAvs9EdPC 店铺名称 点都德(聚福楼店) 十分制服务评分 8.6 十分制环境评分 8.3 十分制划算评分 8.5 人均价格 77 评价数量 41673 店铺地址 惠福东路470号(富临食府对面) 大…

2024年6月17日~2024年6月26日周报

一、前言 在上周主要完成了可变形卷积的学习的部署。 本周,结合前段时间的工作与闵老师的讨论,思考了接下来的一些尝试方向。本周重新在之前的网络上尝试添加可变形卷积v4,或者将可变形卷积v2修改为可变形卷积v4。另外,继续学习了…

入职必备-Git安装(为什么Git安装包无法直接安装)

1.首先下载Mac Git应用,打开Git官网https://git-scm.com/download,执行以下操作(见下图一和下图二),然后会打开页面(见下图三),向上滑动一下会见到页面(见下图四&#xf…

定个小目标之刷LeetCode热题(30)

560. 和为 K 的子数组 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums [1,2,3], k 3 输出:2 今天刷这道题目,采…

逆变器使用手册:类型详解、安装要点与维护须知

逆变器随着可再生能源的兴起和移动电源需求的激增已成为连接直流电与交流电世界的桥梁,其重要性不言而喻。无论是太阳能发电系统的高效利用,还是汽车、游艇等移动设备的电力供应,逆变器都扮演着关键角色。然而,正确的使用方法是确…

ELK日志集成

https://www.bilibili.com/video/BV1x94y1674x/?buvidXY705117E90F73A790429C9CFBD5F70F22168&vd_source939ea718db29535a3847d861e5fe37ef

期货日内交易口诀

1、向下差价法 前提:要判断准确后市是向下行情走势。被套后,等反弹到一定的高度,估计见短线高点了,先卖出,待其下跌一段后再买回。通过这样不断地高卖低买来降低成本,最后等总资金补回了亏损,完…

Java中如何优雅地处理FileNotFoundException异常?

Java中如何优雅地处理FileNotFoundException异常? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在Java开发中,文件操作是非常常见的…

深入理解PyTorch:原理与使用指南

文章目录 引言一、PyTorch的原理1. 动态计算图2. 自动微分3. 张量计算4. 高效的并行计算 二、PyTorch的使用1. 环境配置2. 加载数据3. 构建模型4. 训练模型5. 验证和测试模型 三、PyTorch的安装与配置四、PyTorch的使用示例总结 引言 在深度学习和机器学习的广阔领域中&#x…

第1章 基础知识

第1章 基础知识 1.1 机器语言 机器语言就是机器指令的集合,机器指令展开来讲就是一台机器可以正确执行的命令 1.2 汇编语言的产生 汇编语言的主题是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上,汇编指令是机器指令便于记忆的书写格式。…

扫盲之webSocket

介绍 webSocket 是一种协议,设计用于在客户端和服务器之间提供低延迟、全双工、和长期运行的连接。 全双工:通信的两个参与方可以同时发送和接收数据,不需要等待对方的响应或传输完成 websocket就是为了解决实时通信的问题 建立webSocke…

老年生活照护实训室:让养老护理变得更简单

在人口老龄化日益严重的今天,养老问题成为了社会关注的焦点。如何让老年人过上幸福、安康的晚年生活,成为了摆在我们面前的一道难题。老年生活照护实训室的应运而生,为养老服务行业提供了一个学习、交流和实践的平台,让养老护理变…

测试用例设计方法-流程分析法

一、引言 在软件开发过程中,测试是确保软件质量的关键环节之一。而测试用例设计作为测试过程中的重要组成部分,其质量和完备性直接影响到测试效果和软件的最终交付质量。 测试用例设计的目标是通过设计一组有效的测试用例来检查软件系统的各种功能和行为…

送物机器人电子方案定制

这是一款集娱乐、教育和互动于一身的高科技产品。 一、它的主要功能包括: 1. 智能对话:机器人可以进行简单的对话,回答用户的问题,提供有趣的互动体验。 2. 前进、后退、左转、右转、滑行:机器人可以通过遥控器或AP…

基于MATLAB仿真设计无线充电系统

通过学习无线充电相关课程知识,通过课程设计无线充电系统,将所学习的WPT,DC-DC,APFC进行整合得到整个无线充电系统,通过进行仿真研究其系统特性,完成我们预期系统功能和指标。 以功率器件为基本元件&#x…