【图学院】初识密码学易踩的“坑”,你中过招吗?
摘要: 【图学院】初识密码学易踩的“坑”,你中过招吗?
写代码,是密码朋克的使命。我们深知总要有人写软件来保护隐私。只有我们亲自动手,我们才能拥有隐私权,我们一定会开发这样的软件。我们将要公开发布我们的代码,让密码朋克战友们能够使用软件。我们的代码,对全球所有人免费。如果你们要封杀我们所写的软件,我们也毫不在意。我们清楚,软件是无法被销毁的,彻底的分布式系统永不停机。
——《密码朋克宣言》
前言:因为密码学的学科难度,大多数人认为那是密码学专家才应该关心的事。但其实,它关乎每个人的隐私安全,在历史上,也曾引起一场轰轰烈烈的密码朋克民权运动。近些年,密码学作为区块链的底层技术,对区块链的安全交易、隐私保护和安全访问中起到不可忽视的作用,越来越受到业内人士的重视和追捧,关于密码学的普及和应用也获得新的生机。
最早,密码学被用于军事机密的传递,只有国家支持的一些科研专家才会去研究。随着密码学技术的普及,到了上个世纪八九十年代,密码学开始走向民用。同时美国兴起了一场影响广泛的密码朋克运动。密码朋克运动的宗旨是:以密码学为工具,保护个体隐私。该运动的发起,代表着密码学不仅仅是被用来维护国家及机构安全的重要军用技术,也是用来保护个人隐私安全的重要民用技术。
“只有我们亲自动手,我们才能拥有隐私权。”正如《密码朋克宣言》提到,隐私权的未来,取决于人们在社会中的合作。密码学是维护隐私安全的关键学科,如果大部分人能拥有一定的密码学知识或隐私保护意识,长期付诸实践,将对促进隐私权真正回归个体起到积极关键的作用。所以说,密码学并不是专家才应关注的。
一、密码学总体概念辨析
密码学作为一门学科有其独特性,即它的安全性基本建立在假设之上。如果有人直接表示,某一密码学方案是安全或不安全的,其实是非常片面的说法。
从理论的角度探讨密码学的安全,一般需要涉及三个方面:
第一,安全模型。考虑所选的密码学方案期望达到的效果(不同密码学方案所要达到的效果不同,比如加密,所期望的目的是不希望其他人看到所要隐藏的信息),以及攻击者具有的能力(定义攻击者能力强度,是能看到信息还是能够篡改信息)。
第二,安全方案。确定运用哪种密码学方案,是签名、加密还是零知识证明?
第三,数学假设。现在所有密码学的安全性都是基于假设之上(这一特性曾被数学家质疑)并且是有代价的。这个代价足够大,可能大到需要数清所有宇宙的原子的个数的地步。在该代价之下,该密码不可能被攻破。
现在业内流行一种说法:“量子计算来了,密码学要不行了”。这是因为在量子计算技术的前提下,一些密码学的难题及其代价很容易被解决。然而不容忽视的是,密码学仍有量子计算无法解决的困难问题,目前很多国内外专家正在基于抗量子安全问题构造相应的密码学方案,以抵抗量子计算。
基于以上,密码学的正确说法是:在XX数学假设下,YY方案是满足ZZ安全模型的(ZZ安全)。也可以说,如果YY方案在ZZ模型下不安全,那么可以在ZZ模型下攻破XX假设。
需要注意的是,如果从实际的角度来谈论密码学的安全性,则离不开一个重要因素,即安全参数(λ)。
如上图所示,在ZZ模型下,攻破YY方案,需要2λ单位操作的计算复杂度。一般而言,λ等于80,用于学术性研究;λ等于128,用于普通商用级别;λ等于192,用于普通/高安全级别商用;λ等于256,用于高安全级别商用/军用。
安全参数越大,密码长度越大,性能越慢,安全性越高。在密码学里面,总是需要在安全性和性能之间进行博弈平衡。
二、密码学细节概念辨析
在平时,我们总会从各个渠道接触到一些并不准确的术语和词汇,包括密码学及其细分领域的各种概念。这对于很多密码学初学者而言,其实是很不利的,易出现云里雾里、无从分辨的状况。
为此,我们专门总结常见的四种误区,供大家辨析。
误区1:
Cryptography(Crypto)不是加密学!!!
Cryptocurrency不是加密货币!!!!
【纠正】
Cryptography 密码学
Cryptocurrency 密码货币
[有加密(Encryption)必须要有解密(Decryption)]
注:消息即为明文,而被加密之后的消息,我们称之为密文。用某种特定的方式方法对其进行“伪装”处理,以隐藏其内容的过程,我们称之为加密(encryption)。当我们将密文转变为明文,这一过程我们称之为解密(decryption)。
Cryptography是“密码学”,包含加密技术和解密技术,因此将Cryptography翻译成“加密学”是完全错误的。另外,Crypto即密码,Cryptocurrency即密码货币,将翻译成“加密货币”也是错误的。
误区2:
Hash不是加密!!!
【纠正】
Hash:数字摘要(Digital Digest)。
注:Hash和加密是两种不同的密码学技术。加密是对传递数据进行编码处理的技术手段,使得编码后的数据对于未获知具体处理方式的其他方不可读。通常,我们将明文转换为密文的过程称为“加密”。
而Hash(哈希)又称数字摘要、散列、杂凑、指纹,是以任意长度的数据为输入输出相应固定长度的值。在区块链中,账户与交易都涉及哈希函数的使用。
误区3:
密码学不等于加密。
【纠正】
密码包含加密、Hash、签名、MPC、ZKP、HE等等。
注:密码学是一个大的范畴,除了加密,还包括Hash(哈希)、签名、MPC(安全多方计算)、ZKP(零知识证明)、HE(同态加密)等多种技术。
误区4:
QQ/微信密码密码不是密码学中的密钥。
【纠正】
平时生活中所用的密码叫口令(Password),数字货币的私钥是密钥。
注:大家常用的QQ/微信密码是口令(Password),易被破解,它与数字货币所用的私钥/密钥是完全不相同的。
密码学是区块链不可或缺的核心技术,更是保护个人信息不至于“裸奔”的重要技术。坚持对密码学的研究学习,将带来对神秘事物探索的满足感,甚至带来与个人利益息息相关的现实或长远价值。
但必须承认的是,密码学的研究是一个长期坚持的过程,一步一个脚印,学习、消化,最终才能得以应用。
(1、 内容来自链得得内容开放平台“得得号”,稿件内容仅代表作者观点,不代表链得得官方立场。2、 凡“得得号”文章,原创性和内容的真实性由投稿人保证,如果稿件因抄袭、作假等行为导致的法律后果,由投稿人本人负责。3、 得得号平台发布文章,如有侵权、违规及其他不当言论内容,请广大读者监督,一经证实,平台会立即下线。如遇文章内容问题,请发送至邮箱:chengyiniu@chaindd.com)
评论(0)
Oh! no
您是否确认要删除该条评论吗?