可截取签名
定义
可截取签名(Content Extraction Signature, CES)的概念出现于 2001 年,由一位名叫 Steinfeld 的学者提出1。可截取签名的特点在于,它允许签名的持有者在不与原始签名者进行交互的情况下,根据自身需要,保留原消息中的部分内容,并为这部分内容计算一个可公开验证的签名。
算法过程
可截取签名方案中包括三个实体,分别是签名者、截取者和验证者,三者之间的交互流程如图 2-3 所示,主要包括四个算法:𝐾𝑒𝑦𝐺𝑒𝑛、𝑆𝑖𝑔𝑛、𝐸𝑥𝑡、𝑉𝑒𝑟𝑖𝑓
- K e y G e n ( 1 λ ) → ( s k , p k ) KeyGen(1^\lambda) \rightarrow(sk,pk) KeyGen(1λ)→(sk,pk) :根据安全参数 λ \lambda λ,原始签名者获得自身公私钥对 ( s k , p k ) (sk,pk) (sk,pk)。
- S i g n ( M , s k , C E A S ) → δ F u l l Sign(M,sk,CEAS) \rightarrow \delta _{Full} Sign(M,sk,CEAS)→δFull :原始签名者根据原始数据 M M M,私钥 s k sk sk以及内容截取访问结构 C E A S CEAS CEAS,生成 M M M的原始签名 δ F u l l \delta _{Full} δFull。
- E x t ( M , C E A S , X , p k , δ F u l l ) → δ E x t Ext(M,CEAS,X,pk,\delta_{Full}) \rightarrow \delta _{Ext} Ext(M,CEAS,X,pk,δFull)→δExt:截取者根据 M M M,原始签名 δ F u l l \delta_{Full} δFull,原始签名者公钥 p k pk pk,以及截取子集 X X X,生成截取签名 δ E x t \delta_{Ext} δExt。
- V e r i f y ( M ′ , C E A S , X , p k , δ E x t ) → ( T r u e o r F a l s e ) Verify(M{\, }',CEAS,X,pk,\delta_{Ext}) \rightarrow (True\, or\, False) Verify(M′,CEAS,X,pk,δExt)→(TrueorFalse):验证者输入截取消息
M ′ M{\, }' M′,内容截取访问结构 C E A S CEAS CEAS,截取子集 X X X,签名者公钥 p k pk pk以及截取签名 δ E x t \delta_{Ext} δExt。若验证该截取签名 δ E x t \delta_{Ext} δExt有效,则输出 𝑇 𝑟 𝑢 𝑒 𝑇𝑟𝑢𝑒 True,否则输出 𝐹 𝑎 𝑙 𝑠 𝑒 𝐹𝑎𝑙𝑠𝑒 False。
总结
可截取签名需要满足不可伪造性和隐私性,具体描述如下。不可伪造性是指,对于一个不合法的消息𝑀,攻击者要想产生关于𝑀的一个合法的可截取签名几乎是不可能的,其概率可以忽略不计。隐私性是指,对于被隐藏的子消息,攻击者若想从已公开的消息中获取隐藏消息的相关内容是不可行的。参考文献
高凡. “Hyperledger Fabric中的交易内容隐私保护技术研究.” 硕士, 北京交通大学, 2020. ↩︎