密码学是什么?跟加密货币有什么关系

密码学是什麽

密码学是在加密货币,甚至在各个领域都有被运用的一种技术。

主要是市场先生在《加密货币圣经》一书及一些密码学阅读资料中的学习笔记,让想了解加密货币安全性的人增加一些初步的认识。

本篇将以加密货币为主要案例,介绍密码学如何运用在加密货币中。

密码学是什麽?

密码学(英文:Cryptography)是一种密码的技术,主要用来保护及隐藏资讯。密码学的运用非常广泛,例如我们汇款时,需要去手机收的简讯验证码,就是密码学的应用之一。

我们现在常听到的加密货币也是密码学的应用。

密码学中,主要有三个技术运用在加密货币中,分别是加密(Encrypt)、杂凑(Hash function)、数位签章(Digital signature),

在很多加密货币白皮书或官方文件,我们都会经常看到这些词彙。

以下一一介绍。

密码学的应用一:加密

加密就是把讯息加上密码,能够将看的懂的讯息,变成看不懂的讯息 (例如一串文字+符号的组合)。

加密有分“对称式加密”跟“不对称式加密”,

简单来说,对称式加密就是加密/解密都採用同一把钥匙(也就是加密货币裡常听的金钥,因为英文是Key,所以中文被翻译成钥匙或金钥),不对称加密就是加密/解密採用的是不同的钥匙。

这裡指的钥匙不是我们常使用的那种家裡钥匙、车钥匙…等,是指一个加密/解密的方法,可以想像是一个上面记载著密码破解方式的一张纸。

对称式加密

对称式加密 (英文:Symmetric-key algorithm)的加密与解密的金钥是同一把,也就是用同一个方法,就可以完成加密与解密。

举例来说,市场先生要发送一个讯息“Hello”并用每一个字母在键盘上右边的字代替,看的懂的讯息就变成看不懂的讯息:Hello 变成 Jr;;p,这样就完成一个非常简单的加密。

市场先生传给同事这组字,同事把每一个字母还原,就知道讯息是Hello,这就是对称式加密,加密与解密的方法都一样,而“键盘上右边的字代替”这个方法就是金钥。

不对称式加密

不对称式加密 (英文:Public-key cryptography)又称公开金钥加密,它加密与解密的金钥是不一样的,所以你(讯息接收方)需要打造两把钥匙:一把是公开金钥、一把是私密金钥。

不对称式加密相较对称式加密,比较不容易破解,所以这也是目前被广泛使用的加密方式。

不对称式加密

你可以把公开金钥发给所有的人,让大家都可以透过这个公开金钥发送加密讯息给你。

私密金钥只有你自己知道,所以只有你可以把透过公开金钥发送给你的已加密讯息,透过私密金钥解密。

不对称式加密在加密货币上的运用

以比特币为例,就是你可以打造一个公开金钥,获得一个公开的比特币地址(有点像是银行帐号),任何人都可以透过这个公开金钥转比特币给你,

但如果你要汇比特币给别人,就需要私密金钥签署交易,才能够成功把比特币汇出。因为私密金钥只有你才知道,所以有著身份验证的功用,可以证明是“你”同意汇出比特币。

私密金钥的签署,就是“数位签章”的应用,这个之后会讲到。

详细可阅读:比特币是什么

补充:公开金钥长什麽样子?

公开金钥是由非常多字母、数字、符号所组成,例如intel就有公布他们的公开金钥,详细可到intel官网查看。

密码学的应用二:杂凑

杂凑 (英文:Hash function)的全名是杂凑函数,又称杂凑演算法,是把不同长度的讯息,变成资料量固定的“值”的演算法。

杂凑函数有非常多种,例如由美国国家安全局研发的SHA系列、由美国密码学家Ronald Linn Rivest所设计的MD5等。

举例来说,用SHA系列中的SHA256为例:

上图中这两个讯息的长度不一样,但都产生出相同资料长度的“值”,这个“值”又称杂凑值 (英文:Hash value),它是独一无二的 (有些人会这个值为指纹、摘要digest)。

因为杂凑函数可以产生固定长度的杂凑值,所以会被用在处理大量资料,另外,不同的讯息几乎不可能有相同的杂凑值 (说几乎是因为以前有些杂凑函数已被破解),所以杂凑函数也可以做验证资料的应用。

杂凑函数中,运用在加密货币上的是“加密杂凑函数”,以下介绍。

加密杂凑函数

加密杂凑函数 (英文:Cryptographic hash function)是一种杂凑函数,主要有几个特性:

确定性:输入同一个讯息,产生的杂凑值永远都一样。独特性:输入不同的讯息,不可能有相同的杂凑值。(如果有,就会产生杂凑碰撞collision,代表这个杂凑函数已经无法再使用)长度固定:使用同一个杂凑函数,即使输入不同的讯息也会产生一样长度的杂凑值。不可反向回推:你无法从产生的杂凑值回推原本的讯息。(这也是加密跟杂凑最不一样的地方)

加密杂凑函数常见的例子就是密码,在网路上要登入某个帐户,我们就必须输入密码,系统会对我们输入的密码进行加密杂凑函数的运算,产生杂凑值,再跟系统自己的杂凑值比对:

加密杂凑函数在加密货币上的运用

加密杂凑函数比特币挖矿的过程、区块链的连结区块识别码、数位签章等等,都会运用到加密杂凑函数。

以下会以数位签章为例,介绍杂凑的运用。

(这些讲起来太複杂,目前市场先生也还在研究中,欢迎有经验的读者在下方留言跟我们分享)

详细可阅读:比特币挖矿是什么?区块链是什么?

密码学的应用三:数位签章

数位签章(英文:Digital signatures)是一个加密后的签章,目的是用在验证讯息的真实性。数位签章并不会保密原始资讯,但可以帮助我们确认原始资讯发送者的身分,验证该内容讯息是否真的是由某人发出的。

例如我们收到一份纸本文件,上面有老闆的签名,我们会认为这是老闆提供给自己的文件(如果签名没被仿冒的话)。但在数位的世界,我们怎麽确定一个讯息真的是老闆发出的呢?要怎麽辨识?数位签章的功用不是为了保密这些讯息,而是为了帮我们确认讯息真的是由某人所发出的,而不是他人仿冒的。

数位签章属于是电子签章的其中一种,但它并不是我们亲手在电脑或平板上签名的签章。

要产生及验证数位签章,就需要用到不对称式加密的技术,如果讯息太长,还会用到加密杂凑函数的计算。

数位签章的原理

数位签章属于不对称式加密反向的运用,也就是公开金钥是用来解密、私密金钥是用来加密。

数位签章的原理有点複杂,以下分别以签署人、验证人的方式介绍:

签署人将原始讯息用加密杂凑函数计算产生杂凑值签署人对杂凑值用私密金钥加密,产生数位签章签署人将数位签章附在原始讯息上,并且公佈公开金钥

这时,因为签署人公佈了公开金钥,所以任何一个人都可以用公开金钥验证这个数位签章…

验证人收到附上数位签章的原始讯息验证人用公开金钥解密数位签章,获得杂凑值验证人对拿掉数位签章的原始讯息,进行加密杂凑函数的计算后,获得杂凑值验证人将两个获得的杂凑值进行比对如果两个杂凑值相同,这个数位签章就得到验证

数位签章在加密货币上的运用

要进行加密货币交易时,就需要用数位签章来验证交易,也因为加密货币的交易都会被记录在区块链上,所以任何一个人都可以用签署人公佈的公开金钥去验证交易。

另外,也能对签署人有身份验证的作用:

只有签署人有私密金钥,没有任何一个人可以制作签署人的数位签章也因为只有签署人有私密金钥,签署人无法否定原本讯息不是他签的

不只加密货币,目前数位签章也被广泛运用在各个领域中。

密码学重点整理

1. 密码学(Cryptography)是一种密码的技术,主要用来保护及隐藏资讯。密码学的运用非常广泛,在加密货币中主要有加密、杂凑、数位签章的运用。

2. 加密就是把讯息加上密码,能够将看的懂的讯息,变成看不懂的讯息。加密有分“对称式加密”跟“不对称式加密”,对称式加密就是加密/解密都採用同一把钥匙,不对称加密就是加密/解密採用的是不同的钥匙 (公开金钥、私密金钥)。

3. 杂凑 (Hash function)杂凑函数、杂凑演算法,是把不同长度的讯息,变成资料量固定的“值”的演算法。

4. 数位签章(Digital signatures)是一个加密后的签章,常被用在验证讯息的真实性,属于不对称式加密反向的运用。将原本讯息用加密杂凑函数计算后获得杂凑值,再用私密金钥加密,就会产生数位签章。验证方需用公开金钥解密数位签章获得杂凑值,再用加密杂凑函数计算原始讯息获得的杂凑值进行比对,
一样则验证成功。

在阅读许多加密货币白皮书等文件时,上述这些概念会经常被看到,

希望这篇解说,能让大家对加密货币及区块链基础运作原理有更多了解。

阅读剩余
THE END