关于区块链密码学

什么是密码学

以下是密码学在维基百科中的解释:

密码学(英语:Cryptography)可分为古典密码学和现代密码学。在西方语文中,密码学一词源于希腊语kryptós“隐藏的”,和gráphein“书写”。古典密码学主要关注信息的保密书写和传递,以及与其相对应的破译方法。而现代密码学不只关注信息保密问题,还同时涉及信息完整性验证(消息验证码)、信息发布的不可抵赖性(数字签名)、以及在分布式计算中产生的来源于内部和外部的攻击的所有信息安全问题。古典密码学与现代密码学的重要区别在于,古典密码学的编码和破译通常依赖于设计者和敌手的创造力与技巧,作为一种实用性艺术存在,并没有对于密码学原件的清晰定义。而现代密码学则起源于20世纪末出现的大量相关理论,这些理论使得现代密码学成为了一种可以系统而严格地学习的科学。

直到现代以前,密码学几乎专指加密算法:将普通信息(明文)转换成难以理解的数据(密文)的过程;解密算法则是其相反的过程:由密文转换回明文;加解密包含了这两种算法,一般加密即同时指称加密与解密的技术。

加解密的具体运作由两部分决定:一个是算法,另一个是密钥。密钥是一个用于加解密算法的秘密参数,通常只有通信者拥有。历史上,密钥通常未经认证或完整性测试而被直接使用在加解密上。

加密算法

  • 对称密码算法

是指加密和解密使用相同的密钥,典型的有DES、RC5、IDEA(分组加密),RC4(序列加密);

  • 非对称密码算法

又称为公钥加密算法,是指加密和解密使用不同的密钥(公开的公钥用于加密,私有的私钥用于解密)。比如A发送,B接收,A想确保消息只有B看到,需要B生成一对公私钥,并拿到B的公钥。于是A用这个公钥加密消息,B收到密文后用自己的与之匹配的私钥解密即可。反过来也可以用私钥加密公钥解密。也就是说对于给定的公钥有且只有与之匹配的私钥可以解密,对于给定的私钥,有且只有与之匹配的公钥可以解密。典型的算法有RSA,DSA,DH,ECC;

  • 散列算法

散列变换是指把文件内容通过某种公开的算法,变成固定长度的值(散列值),这个过程可以使用密钥也可以不使用。这种散列变换是不可逆的,也就是说不能从散列值变成原文。因此,散列变换通常用于验证原文是否被篡改。典型的算法有:MD5,SHA,Base64,CRC等。

散列算法

散列算法(英语:Hash function)又称散列函数、哈希函数,是一种从任何一种数据中创建小的数字“指纹”的方法。

打个比方,我们每一个人都是一个大大的数据,包括我们一生中的各种数据,记忆、生日、家庭、人生经历、外表、DNA健康数据等。我们把这些数据最后都浓缩成一小串数字来表示一个人,基本上这串数字就像指纹一样的唯一的,每一个人都不可能重复。当然我这里说的是基本上,也有可能存在两个指纹一样的人,但是按道理来说我们需要的是唯一。也就是说哈希函数的抗碰撞性,越好的哈希函数越不可能从两个不同的输入得到两个相同的输出。

还有一个就是原像不可逆性,也就是说你不可能通过这一小串数据反向得到我的所有数据。比如你有了我的指纹,但是你不可能通过我的指纹知道我的生辰八字,我的DNA数据等。

区块链中的密码学

维基百科:
区块链(英语:blockchain或block chain)是借由密码学串接并保护内容的串连交易记录(又称区块)。每一个区块包含了前一个区块的加密散列、相应时间戳记以及交易数据(通常用默克尔树算法计算的散列值表示),这样的设计使得区块内容具有难以窜改的特性。用区块链所串接的分布式账本能让两方有效纪录交易,且可永久查验此交易。

简单来说区块链就是有一个个区块组件,每个区块由两个哈希值和一个存储空间组成,每个区块只和它的前一个区块连接。而这里的连接正式通过哈希值所关联的,其中一个哈希值是上一个区块的,一个哈希值是自己的。这个哈希值代表的就是一种身份,也就是我们上文所说的唯一标识“指纹”。

区块链中所运用到的密码学包含以下几种:

  • 支撑比特币底层交易系统的哈希树(Merkle tree)
  • 用于保护区块链中消息摘要真实性的非对称加密算法:椭圆曲线算法(ECC)

哈希树(Merkle tree)

在密码学及计算机科学中,哈希树(hash tree)是一种树形数据结构,每个叶节点均以数据块的哈希作为标签,而除了叶节点以外的节点则以其子节点标签的加密哈希作为标签 。哈希树能够高效、安全地验证大型数据结构的内容,是哈希链的推广形式。

哈希树的概念由瑞夫·墨克于 1979 年申请专利,故亦称墨克树(Merkle tree)。

Merkle树一般用来进行完整性验证处理。在处理完整性验证的应用场景中,Merkle树会大大减少数据的传输量及计算的复杂度。

哈希树的理论基础是基于质数分辨定理,简单地说就是:n个不同的质数可以“分辨”的连续整数的个数和他们的乘积相等。“分辨”就是指这些连续的整数不可能有完全相同的余数序列。

关于哈希树的整个验证过程,查找在查找——图文翔解HashTree(哈希树)一文中有比较清楚的解释。

我们在blockchain中可以看到最近生成的区块,点开其中起一个,可以看到它的区块头中有一个叫做Merkle Root,也就是墨克树里的根节点墨克根。这个墨克根就是根据这次区块里所有的交易根据哈希树生成的。

image
image

椭圆曲线算法

在比特币中,用户生成一个随机整数 k (256位二进制数)作为其账户私钥,而用对应的公钥 K(K=kG) 的哈希值作为其账户的比特币地址。

用户需要使用其账户比特币地址上的货币时,只需要提供一个用其私钥对地址金额等信息计算出的签名和对应的公钥。其他比特币用户就可以在只知道该用户公钥的情况,验证该签名是否有效,从而判断该用户是否真正拥有该地址上的货币。

攻击者因为无法通过其公钥或比特币地址来推算出私钥,也就无法伪造出一个有效的签名来盗用其账户上的货币。

参考

ECC 构筑安全可靠的区块链

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容