介绍

Pederson承诺是密码学中承诺的一种,1992年被Torben Pryds Pedersen在“Non-Interactive and Information-Theoretic Secure Verifiable Secret Sharing”一文中提出。
目前Pedersen Commitment主要搭配椭圆曲线密码学使用(当然也可以结合指数运算)。具有基于离散对数困难问题的强绑定性和同态加法特性的密文形式

以结合椭圆曲线为例来说明,Pedersen承诺核心公式表达:

C = r * G + v * H

上述公式中,C为生成的承诺值,G、H为特定椭圆曲线上的生成点,r代表着盲因子(Blinding factor),v则代表着原始信息。由于G、H为特定椭圆曲线上的生成点,所以r * G、v * H可以看作是相应曲线上的公钥(r、v同理也可以视为私钥)。

承诺生成和揭露过程如图:

由于引入了随机盲因子r,对于同一个v会就能产生不同的承诺c,即便敏感隐私数据v不变,最终的承诺c也会随着r的变化而变化,因此提供了信息论安全的隐匿性。这一点类似ECDSA,Schnorr签名采用的手法。

Pedersen承诺加法同态

Pedersen承诺还具有加法同态特性。所谓加法同态,即两数相加和的密文等于两数的密文相加!假设明文a, b ,加密函数e,满足:
       c = a + b
       e(a) + e (b) = e(c)

Pedersen承诺结合椭圆曲线天然地具备了加法同态的特性,这是椭圆曲线点运算的性质决定的。

假设有两个要承诺的信息v1​,v2​, 随机数r1​,r2​,生成对应的两个承诺:
       C(v1​)=r1​∗G+v1​∗H
       C(v2​)=r2​∗G+v2​∗H

则v1​+v2​承诺结果:
       C(v1​+v2​)=(r1​+r2​)G+(v1​+v2​)∗H
       (r1​G+v1​∗H)+(r2​∗G+v2​∗H)
       C(v1​)+C(v2​)

Pedersen承诺还可以扩展构造v1​∗v2​等复杂的情况,来证明新产生的承诺满足与原始承诺之间存在指定的约束关系。

小结

Pedersen承诺产生方式,有些类似加密,签名之类的算法。但是,作为密码学承诺重在“承诺”,并不提供解密算法,即如果只有r,无法有效地计算出隐私数据v。

目前Pedersen承诺在区块链中的应用主要在隐私币中,如zcash,MimbleWimble,Monero等。

密码学基础:Pedersen Commitment相关推荐

  1. 学习之路-现代密码学基础-001

    学习之路-现代密码学基础-第一章密码学概论 转载于:https://www.cnblogs.com/vegetables-Adanos/p/5371420.html

  2. 计算机 密码学 实验一,计算机网络安全技术-实验一-密码学基础

    计算机网络安全技术-实验一-密码学基础 计算机科学与技术系实 验 报 告专业名称 网络工程 课程名称 计算机网络安全技术 项目名称 密码学 班 级 13 网工(1)班 学 号 1304031030 姓 ...

  3. http、https、密码学基础、GET和POST区别

    http协议相关: http协议的特性: http协议是建立在TCP/IP协议之上应用层协议,默认端口为80或者8080.http协议的的特点是无状态,无连接(并不是真的没有连接,而是在请求数据的时候 ...

  4. ECC密钥结构和密码学基础

    参考链接 密码学基础3:密钥文件格式完全解析 ECC数据结构

  5. 重力传感器 测重力代码_“重力瀑布”如何帮助您教授孩子的密码学基础知识...

    重力传感器 测重力代码 by Kamil Tustanowski 通过卡米尔·图斯坦诺夫斯基 "重力瀑布"如何帮助您教授孩子的密码学基础知识 (How "Gravity ...

  6. 第二章密码学基础与应用备考要点及真题分布

    第二章密码学基础与应用 1.密码学基本概念 2.分组密码 3.序列密码 4.Hash函数 5.公钥密码体制 6.数字签名 7.认证 8.密钥管理

  7. 软考信息安全工程师备考笔记2:第二章密码学基础与应用备考要点

    第2章:密码学基础与应用 密码学基础与应用备考要点 https://www.moondream.cn/?p=1319 扫一扫加入信息安全工程师备考群 欢迎加入最棒的信息安全工程师社群,分享信息安全工程 ...

  8. 密码学基础算法(二)中国剩余定理

    随便谷歌了一个图片做首图 原图地址: http://www.siwapu.com/etagid41968b0/ 密码学基础系列: (一) 基于整数的欧几里得算法和扩展欧几里得算法 (二) 中国剩余定理 ...

  9. 密码学基础:Base64编码

    文章概述: 本文目的:写这篇文章的目的主要是整理下密码学中Base64的知识点,并把它们分享出来.并且帮助初探密码学的坛友们一步一步的用C语言将Base64的编码实现出来. 阅读方法:希望大家在浏览完 ...

最新文章

  1. 统计用户在某一页停留的时间
  2. 75. CPU 100%运行实战案例分析
  3. C语言入门题-计算到任意日期的总天数
  4. 高级ZK:异步UI更新和后台处理–第1部分
  5. 《c陷阱与缺陷》笔记--注意边界值
  6. 多线程死锁及解决办法
  7. GossipView:圆圈布局的自定义view
  8. golang | 使用结构体抄的学生信息管理系统
  9. iOS 之 Property List
  10. php持续交付,持续交付概述
  11. Halcon形态学操作、区域处理相关常用API
  12. 计算机系统更新不上怎么办理,电脑系统更新打不开怎么办
  13. 传智播客视频python视频爬虫
  14. 有意义的100个小故事
  15. GitHub上整理的一些工具
  16. css字体浏览(转)
  17. Kotlin教程(一)基础
  18. 普通糖尿病人1周食谱
  19. asp.net中gridview的绑定数据源实现增删改查
  20. doctype 怪异模式和标准模式

热门文章

  1. JASS代码加翻译更新(第四篇)
  2. 快速以太网中传输介质100BASE-TX
  3. 搭建本地oracle数据库
  4. 漫谈企业内部图书馆的建立与日常管理
  5. 计算机快捷键大全windows,windows系统常见快捷键大全
  6. 树莓派直播推流---nginx流媒体服务器搭建
  7. 电路中的中英文词汇对照
  8. 读书笔记--《初等数论(第三版)》(闵嗣鹤 严士健 编)第一章 整数可除性(上)
  9. 驰骋工作流程引擎——流程设计器操作说明书
  10. TeeChart的安装 delphi7