格签名的一般构造方式

现有的基于格的签名方案基本都是在下述两种框架中得到的。

第一种:哈希-签名的方法主要是基于Ajtai SIS问题及其相关的陷门函数。陷门函数用来生成优质基。原像采样函数使用优质基对格进行采样。原像采样函数生成的参数用来进行签名构造。

第二种:Fiat-Shamir框架:…(待补充)\dots(待补充)()

但是相对第二种Fiat-Shamir框架,哈希-签名这种模式要求格的维数要相对大的多,所以哈希-签名这种模式在密钥、签名的尺寸上来说相对非常大。(哈希-签名要求格维数大于5nlog⁡q5n\log q5nlogq,第二种Fiat-Shamir差不多是2n2n2n

Hash-and-sign 格签名一般构造方式

keygen(⋅):keygen(\sdot):keygen():

  1. 生成矩阵A(ai∈Rq)A(a_i\in R_q)A(aiRq)B(bi∈Rq)B(b_i\in R_q)B(biRq).

    (1)满足AT=0AT=0AT=0

    (2)TTT的范数比较小。

  2. AAA为公钥

  3. TTT为私钥(TTT为陷门基)

Sign(sk,μ):Sign(sk,\mu):Sign(sk,μ):

  1. 计算ttt满足At=H(μ)At=H(\mu)At=H(μ)
  2. 利用原像陷门采样选取距离H(μ)H(\mu)H(μ)最近的格点v∈L(T)v\in L(T)vL(T)
  3. e=t−ve=t-ve=tv

Verify(pk,μ,e):Verify(pk,\mu,e):Verify(pk,μ,e):

  1. eee的范数较小
  2. Ae=H(μ)Ae=H(\mu)Ae=H(μ)

Fiat-Shamir格签名一般构造方式

原文中叙述了两种表达,此处只记关于高斯分布的一种。

keygen(⋅):keygen(\sdot):keygen():

  1. 生成矩阵A∈Rqn×mA\in \mathbb R^{n\times m}_qARqn×mS∈Rqm×kS\in \mathbb R^{m\times k}_qSRqm×k.满足T←AST\leftarrow ASTAS
  2. 公钥(A,T)(A,T)(A,T)
  3. 私钥为SSS

Sign(sk,μ):Sign(sk,\mu):Sign(sk,μ):

  1. 从某一高斯分布中随机抽取y←Dsmy \leftarrow D^m_syDsm
  2. 计算c←H(Ay,μ)c\leftarrow H(Ay,\mu)cH(Ay,μ)
  3. 计算z=Sc+yz=Sc+yz=Sc+y
  4. 以概率min⁡(Dsm(z)MDSc,sm(z),1)\min(\frac{D^m_s(z)}{MD^m_{Sc,s}(z)},1)min(MDSc,sm(z)Dsm(z),1)输出(z,c)(z,c)zc

Verify(pk,μ,z,c,A,T):Verify(pk,\mu,z,c,A,T):Verify(pk,μ,z,c,A,T):

  1. ∥z∥≤ksm\|z\|\leq ks\sqrt{m}zksm,其中k>1k>1k>1
  2. c=H(Az−Tc,μ)c=H(Az-Tc,\mu)c=H(AzTc,μ)

[1]蔡杰. 基于格的指定验证者数字签名方案及身份鉴别协议研究[D].山东大学,2020.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值