公钥密码体制-Paillier (一)

背景

Paillier 加密系统是 Pascal Paillier 在 1999 年发明的。属于公钥密码体制范畴。至于什么是公钥密码体制,在RSA 中已经介绍,这里直接介绍算法的原理。

数论基础

基础部分

一些基础的数论基础可以在 数论基础 看到,可以先对模运算和欧拉定理有个初步了解。

数阶和原根

整数的阶

定义: 对于 g c d ( a , n ) = 1 gcd (a, n) = 1 gcd(a,n)=1, 即 a , n a, n a,n 互素的整数,满足 a r ≡ 1 ( m o d   n ) a^ r \equiv 1 (mod\,n) ar1(modn) 的最小整数 r r r, 称为 a a a n n n 的阶。符号表示为 o r d n a ord_na ordna
举个例子,2模 7 的阶:
2 1 ≡ 2 ( m o d   7 ) , 2 2 ≡ 4 ( m o d   7 ) , 2 3 ≡ 1 ( m o d   7 ) 2^1\equiv2(mod\,7), 2^2\equiv4(mod\,7),2^3\equiv1(mod\,7) 212(mod7),224(mod7),231(mod7)
那么我们说 2 模 7 的阶就是 3,记为 o r d 7 = 3 ord_7=3 ord7=3

原根

定义:设 n n n 是正整数, a a a 为整数,当 a a a n n n 的阶为 ϕ ( n ) \phi(n) ϕ(n),此时称 a a a 为模 n n n 的一个原根。
举个例子,设 n n n 为 7, a a a 为 3:
3 1 ≡ 3 ( m o d   7 ) , 3 2 ≡ 2 ( m o d   7 ) , 3 3 ≡ 6 ( m o d   7 ) , 3 4 ≡ 4 ( m o d   7 ) , 3 5 ≡ 5 ( m o d   7 ) , 3 6 ≡ 1 ( m o d   7 ) 3^1\equiv3(mod\,7),3^2\equiv2(mod\,7),3^3\equiv6(mod\,7),3^4\equiv4(mod\,7),3^5\equiv5(mod\,7),3^6\equiv1(mod\,7) 313(mod7),322(mod7),336(mod7),344(mod7),355(mod7),361(mod7),我们知道 ϕ ( 7 ) = 6 \phi(7)=6 ϕ(7)=6
所以说 3 为模 7 的原根。
我们发现,这些余数构成了模 7 的剩余类,其实对于任意的 a a a,都可以找到 x x x,使得 3 x ≡ a ( m o d   7 ) 3^x\equiv{a}(mod\,7) 3xa(mod7)

卡迈克尔函数 Carmichael function

在数论中,卡迈克尔函数的定义为:设 g c d ( a , n ) = 1 gcd(a,n)=1 gcd(a,n)=1使得 a m ≡ 1 ( m o d   n ) a^m\equiv1(mod\,n) am1(modn) 成立的最小正整数 m m m,将 m m m记作 λ ( n ) \lambda(n) λ(n)
下图是一张卡迈克尔函数 λ ( n ) \lambda(n) λ(n)与欧拉函数 ϕ ( n ) \phi(n) ϕ(n)的对比表:

n12345678910111213141516
λ ( n ) \lambda(n) λ(n)112242626410212644
ϕ ( n ) \phi(n) ϕ(n)112242646410412688

示例

对于 8 的卡迈克尔函数是2,即 λ ( 8 ) = 2 \lambda(8)=2 λ(8)=2,即对于任意的 a a a 满足 g c d ( a , 8 ) = 1 gcd(a, 8)=1 gcd(a,8)=1,有 a 2 ≡ 1 ( m o d   8 ) a^2\equiv1(mod\,8) a21(mod8),也就是说 1 2 ≡ 1 ( m o d   8 ) , 3 2 ≡ 1 ( m o d   7 ) , 5 2 ≡ 1 ( m o d   8 ) , 7 2 ≡ 1 ( m o d   8 ) 1^2\equiv1(mod\,8),3^2\equiv1(mod\,7),5^2\equiv1(mod\,8),7^2\equiv1(mod\,8) 121(mod8)321(mod7)521(mod8)721(mod8)
而对于欧拉函数来说, ϕ ( 8 ) = 4 \phi(8)=4 ϕ(8)=4,因为欧拉函数只需要满足与 8 互素的 a a a,有 a 4 ≡ 1 ( m o d   8 ) a^4\equiv1(mod\,8) a41(mod8),不需要满足 a a a 是最小的。

卡迈克尔函数的一些特性

n = p q n=pq n=pq,其中 p p p q q q 是大素数,那么 ϕ ( n ) = ( p − 1 ) ( q − 1 ) \phi(n)=(p-1)(q-1) ϕ(n)=(p1)(q1) λ ( n ) = l c m ( p − 1 , q − 1 ) \lambda(n)=lcm(p-1, q-1) λ(n)=lcm(p1,q1),lcm 为求最小公倍数。其中 | Z n 2 ∗ | = ϕ ( n 2 ) = n ϕ ( n ) |\mathbb{Z}_{n^2}^*|=\phi(n^2)=n\phi(n) Zn2=ϕ(n2)=nϕ(n),对于任意 ω ∈ Z n 2 ∗ \omega\in \mathbb{Z}_{n^2}^* ωZn2,有如下性质:
{ ω λ = 1   m o d   n ω n λ = 1   m o d   n 2 \begin{cases} \omega^\lambda=1\,mod\,n\\ \omega^{n\lambda}=1\,mod\,n^2 \end{cases} {ωλ=1modnωnλ=1modn2

其它

1 + n ∈ Z n 2 ∗ 1+n\in\mathbb{Z}_{n^2}^* 1+nZn2
那么,
( 1 + n ) 2 ≡ 1 + 2 n + n 2 ≡ ( 1 + 2 n )   m o d   n 2 (1+n)^2\equiv1+2n+n^2\equiv(1+2n)\,mod\,n^2 (1+n)21+2n+n2(1+2n)modn2
( 1 + n ) 3 ≡ 1 + 3 n + n 3 ≡ ( 1 + 3 n )   m o d   n 2 (1+n)^3\equiv1+3n+n^3\equiv(1+3n)\,mod\,n^2 (1+n)31+3n+n3(1+3n)modn2
( 1 + n ) v ≡ 1 + v ∗ n + [ n 的 高 次 幂 ] ≡ ( 1 + v ∗ n )   m o d   n 2 (1+n)^v\equiv1+v*n+[n的高次幂]\equiv(1+v*n)\,mod\,n^2 (1+n)v1+vn+[n](1+vn)modn2

以上这些就是推导Paillier 算法所需要的数论知识。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值