密码学
文章平均质量分 85
链巨人
这个作者很懒,什么都没留下…
展开
-
区块链在众包中的应用,防止搭便车和避免不真实报告
本文讲解一个区块链在众包中的应用,主要的思想是将一个公共的区块链来代替第三方服务器(或者第三方公司)来解决搭便车(free-riding)和不真实报告(false-reporting)的问题。我们把众包(crowdsourcing)和集众感知(crowdsensing)划分到相同的类别。它们大体上都表示“许多人一起完成一件任务”。如果细分的话,前者包含后者,因为集众感知一般指使用传感器来完成的任务,比如手机拍照,手机检测噪音。本文我们将两者统一对待。在众包中典型的应用有:滴滴出行: 出行者在软件上发布一个任原创 2022-07-07 10:35:07 · 4680 阅读 · 0 评论 -
zk-SNARKs实战:使用circom和snarkjs实现简单版的Tornado(含源码)
在上一篇文章中,本人讲解了如何使用circom来编写算术电路的代码,如何将该代码转换成算术电路,并使用snarkjs来转换成zkSNARKs的witness和statement,然后,基于这个来proof和认证该证明,最后,使用snarkjs工具生成solidity代码,部署到Ethereum区块链上,来认证该proof。上篇文章中使用到的命令总结如下:将我们的电路编译为 .json 文件 :$ circom testcirc.circom -o testcirc.json执行的电路运行设原创 2022-04-12 10:33:06 · 6603 阅读 · 0 评论 -
零知识证明ZK-SNARKs的Circom 电路和 Snarks (翻译)
前言:在翻译这篇博文之前,本人在本地电脑按照其步骤一一试过了,所以,文章的内容是可行的。下面是一张图片是本人在Remix上的执行结果。什么是 ZKsnarks,它们是如何工作的?ZKSnarks 也被称为:Zero Knowledge Succinct Non-interactive Arguments of Knowledge,是快速计算的零知识证明,允许您在不提供任何信息甚至不需要证明者和验证者之间的交互的情况下演示事物。让我们看一个例子。Bob 想向 Alex 证明他知道.翻译 2022-04-08 16:11:41 · 1791 阅读 · 0 评论 -
通俗地解释下密码学中的归约证明
本文首发在本人知乎:https://www.zhihu.com/question/49441102/answer/1737942968这里讲使用reduction proof的原因,它的一般形式,以及结合一个简单的例子说明如何构造和完成一个reduction proof。阅读本文需要读者事先了解“为什么使用game的形式来定义一个密码协议的安全性”,大概了解“怎么构造game,game的一般形式是什么”。1 从问题出发假设现在我们提出了一个密码学方案或者协议 Π\PiΠ ,我们需要证明它是安全.原创 2021-08-15 14:26:38 · 1690 阅读 · 2 评论 -
通俗地解释下密码学中的归约证明
本文首发于本人的:能否通俗地解释下密码学中的归约证明? - ChainingBlocks的回答 - 知乎https://www.zhihu.com/question/49441102/answer/17379429681 从问题出发假设现在我们提出了一个密码学方案或者协议 [公式] ,我们需要证明它是安全的。怎么证明?我们的协议一般是建立在已经被证明安全的协议/方案上面,或者建立在某些困难问题(记为Y)上面,比如RSA公钥加密算法就是建立在因数分解困难问题上。为了简化证明,站在巨人的肩膀上,我们.原创 2021-03-08 18:11:07 · 1614 阅读 · 0 评论 -
C++ Openssl AES GCM 128bits代码示例,可wins10的visual studio 2017 中直接运行
C++ Openssl AES GCM 128bits代码示例,可wins直接运行使用vcpkg安装64bits的openssl,本人当前的openssl为openssl-1.1.1d版本,wins10系统,使用visual studio2017编辑器注意事项:如果使用Openssl 1.0的版本,需要使用EVP_CIPHER_CTX ctx;来定义ctx对象。具体看下面链接:https://github.com/openssl/openssl/issues/962执行结果:代码://原创 2021-02-02 20:50:20 · 3050 阅读 · 2 评论 -
比较零知识证明算法zkSNARK,zkSTARKs,zkBoo,Sonic,BulletProofs
本文分为两部分,第一部分说明零知识能干什么,为什么它这么强大,在区块链中这么火;第二部分比较零知识证明的算法zkSNARK, zkSTARKs, zkBoo, Sonic和BulletProofs的特性。本文首发在本人知乎专栏中,更多区块链论文阅读,请关注本人知乎哦第一部分使用零知识算法能干什么?设定一个场景,现有一个公共的函数f和一个函数的输出值y,Alice对Bob说她知道x值,但是Bob不信。x可能是Alice花费了很多资源才得来的,为了向Bob证明她知道x同时又不泄露x给Bo原创 2020-11-20 16:10:21 · 4794 阅读 · 3 评论 -
Coda, 去中心化的简洁(succint)的可拓展的加密货币
这里讲Meckler, Izaak, and Evan Shapiro. "Coda: Decentralized cryptocurrency at scale."O (1) Labs whitepaper. May10 (2018): 4.本文先讲Coda的Intuition,后讲密码学技术。本文首发在本人知乎专栏中,更多区块链论文阅读,请关注本人知乎哦问题描述在现在的区块链系统中,要认证当前所挖出来的block是否是正确的,需要从区块链的第一个block开始一一认证;要认证一个转账交易是否原创 2020-11-20 16:02:50 · 1048 阅读 · 0 评论 -
使用Crypto++的AES GCM对称加密
这里记录使用Crypto++的AES GCM对称加密的代码片段,可直接执行运行环境:Windows, Visual Studio 2017需安装Crypto++库,可使用cvpkg工具直接集成该库到visual Studio 中:vcpkg install cryptopp:x64-windows代码:#pragma warning(disable : 4996)#include <stdio.h>#include <iostream>#include <原创 2020-09-29 22:02:20 · 1995 阅读 · 0 评论 -
使用Crypto++ ecdsa 进行签名和认证
这里记录使用Crypto++ ecdsa 进行签名和认证的代码片段,可直接运行。运行环境:Windows, Visual Studio 2017需安装Crypto++库,可使用cvpkg工具直接集成该库到visual Studio 中:vcpkg install cryptopp:x64-windows代码:#include <iostream>#include <cryptopp/eccrypto.h>#include <cryptopp/osrng.h&原创 2020-09-29 21:57:22 · 1282 阅读 · 0 评论 -
区块链论文:OmniLedger,一种区块链分片技术
阅读更多区块链论文请关注本专栏。这是2018年的论文,发现已经有介绍这篇论文的中文博客,本文跟它们不同地方在于,希望站在高层视角,以问题为导向来分析这篇论文。这篇论文的作者和Byzcoin来自同一个人,而且前者是后者的拓展,因此,为了更好地理解本文,建议先看Byzcoin,可参考下面链接文章:Tech之直觉:区块链论文:Byzcoin,通过集体签名让比特币具有强一致性且强化安全https://zhuanlan.zhihu.com/p/166154594本文主要内容来自论文:Kokoris-K原创 2020-08-10 15:27:10 · 3770 阅读 · 1 评论 -
区块链论文:去中心化证人共同签名,让认证者诚信或被发现
本文首发于 https://zhuanlan.zhihu.com/blockchain-top-paper在阅读本文前,建议下阅读下面文章:https://zhuanlan.zhihu.com/p/165969607本文主要内容来自网络与信息安全顶会IEEE Symposium on Security and Privacy 的论文 Syta, Ewa, et al. “Keeping authorities” honest or bust" with decentralized witness原创 2020-08-02 22:49:15 · 643 阅读 · 1 评论 -
Schnorr signature & Schnorr multi-signature
本文首发于 https://zhuanlan.zhihu.com/blockchain-top-paper阅读本文前,建议先阅读下面这篇文章。https://zhuanlan.zhihu.com/p/82128984本文讲解一种数字签名方法。其作用跟现实中的签名是一样的:签名是签名者身份的证明。其中签名又包含单人签名和多人签名的过程。了解数字签名的原理和过程,可参考:区块链中大量使用了签名。问题在于,在多签名的场景中,如果将每一个签名都保存到区块链中,是很占存储的。有没有一种多签名的方法,不用将所原创 2020-08-02 22:39:43 · 766 阅读 · 0 评论 -
私钥分割 — Shamir Secret Sharing
在做区块链应用的时候,最常碰到的一个问题就是,怎么保管私钥,怎么让使用者方便,但又同时是安全的。第一个想法就是备份密钥(不论是passphrase/keystore/私钥),但是如果把使用者密钥(加密)备份到自己的server,只要server的安全上有个不小心,使用者的密钥就可能就被盗取了,就算是加密过的,也难保不会被破解。那如果切成好几部分,有好几份备份呢?那怎么切,才能确保安全呢?这就是本篇的重点啦!最直觉的想法就是直接切成N等份,例如32bytes的私钥分成四份,然后任三份可以组成完整的私钥,这样转载 2020-07-31 21:03:55 · 2773 阅读 · 0 评论 -
Intel SGX Remote Attestation实例代码安装和执行,笔记
Windows10, x64,安装了visual studio,已经安装好了Intel SGX JDK。源码下载:https://github.com/intel/sgx-ra-sample源码说明文件:https://software.intel.com/content/www/us/en/develop/articles/code-sample-intel-software-guard-extensions-remote-attestation-end-to-end-example.htmlAPI原创 2020-05-16 19:12:12 · 2864 阅读 · 3 评论 -
斯坦福公开课 密码学 cryptography 1 思维导图
本文是根据Stanford Univ. 公开课密码学1的整理而成的思维导图,该课程由大名鼎鼎的Dan Boneh教授的。本人特别推荐这门公开课。虽然他讲话很快,但是语言表述清晰,而且很大部分已经有中文字幕,因此在语言方面应该没有障碍。他特别擅长使用简单的易懂的且准确的语言描述一个问题。课程中使用了大量的图标和简单的概括性的公式。如果您上过由国内老师的密码学公开课,那么你会发现这门公开课的质量是超...原创 2020-04-19 15:29:49 · 1414 阅读 · 0 评论