一分钟学习数据安全—自主管理身份SSI加密技术

上篇介绍了SSI的架构。架构之后,我们要了解一下SSI发展的驱动力:加密技术。现代数字通信离不开数学和计算机科学,加密技术也源于此。加密技术使区块链和分布式账本得以实现,也使SSI成为可能。

以下我们就概览一下SSI基础架构中涉及到的加密技术:

一、散列函数

散列函数就是消息或文档的唯一指纹。唯一的文档产生唯一的散列值,相同的文档产生相同的散列值。软件发布时,同时会提供其散列,使接收者可以验证原内容是否有被篡改过。

散列函数是单向的,不可逆,但是有些老的散列散发比如MD5已经被证明是不安全的,需要避免使用。

在SSI中,散列都用作可验证数据结构的组成部分和数字签名算法的一部分。

二、加密

早期的加密方法有替换密码或其他打乱文本的方式。现代加密方法尤其在PKI体系中,不依赖对加密方法的保密,而是通过计算复杂度以及对密钥的保密来实现数据安全。

典型加密方法又分为对称和非对称加密,对称加密算法加解密用相同的密钥,如AES算法,密钥的大小往往跟密码的安全正相关。非对称加密加解密采用不同的密钥,如RSA,称为公钥和私钥,公钥用来共享,私钥必须私有,当知道收件人的公钥,就可以给其发送加密消息,这是区块链、DID的技术基础。

三、数字签名

数字签名用一句话描述就是用私钥来签名,再用公钥来验证签名。这个机制用在SSI堆栈的每个层级:

  • 第一层的区块链交易。
  • 第二层的DID连接。
  • 第三层的可验证凭证签署。
  • 第四层的治理框架签署,也签署框架内为置顶角色签发的可验证凭证。

四、可验证的数据结构

用密码学的方法创建具有特定属性的数据结构,用于对数据进行验证。

1. 加密累加器

  • 加密累加器表示对一大组数字进行计算的结果,知道其中累加值的人可以证明他们的数字是否包含在这个集合之中。

2. 梅克尔树

  • 这是一种非常紧凑高效的验证数据集完整性的方法。通过数学的方法来证明某个具体的数据项存在于大量的信息之中。

3. 帕特里夏树

  • 一种检索用文字数字编码信息的使用算法。是基数树的变体。基数树是一种层次化树结构,有根值、子树、父节点,表示为一组链接的节点。节点不存储任何信息,只用来指示在前缀树种的字符串内有拆分的位置。

在以太坊协议中有一种改进的MPT,也就是梅克尔-帕特里夏树组合方法。可以针对性的对协议做优化。

五、证明

使用加密技术来证明计算事实为真就是"证明"。数字签名就是一种证明形式。任何知道公钥但不知道私钥的人都可以证明某个特定签名是否是由知道相应私钥的人生成的。

零知识证明ZKP具有三个属性:

1、完整性,如果陈述为真,两个用户都正确遵守规则,验证方就会被说服。

2、可靠性,如果陈述为假,验证放在任何情况下都不会被说服。

3、零知识,任何情况下,验证放都不会知道更多信息。

在SSI场景中,使用ZKP技术一个人不必完全公开其他敏感的个人身份信息。

六、后记

以上的一些介绍说明加密技术可以在高度分散的系统中大规模部署,并具有很强的安全性,SSI中利用这些加密技术来证明生态系统中的参与者身份和数据事实。这就涉及到一个核心的数据结构:可验证凭证,我们将在下一篇中进行探讨。

安当将持续探索互联网身份认证方面的前沿技术,在未来产品演进中加入更多匹配客户安全需求的功能。

文章作者:太白

©本文章解释权归安当西安研发中心所有

相关推荐
Canmag 兴隆磁性4 小时前
中大型钕铁硼产品的磁通测量与自动分选:一条产线自动化的工程实现思路
运维·学习·自动化·永磁材料
小黄人软件6 小时前
桌面需要整理吗?有工具自动分类
学习
老衲不用@飘柔7 小时前
SFP与SFP+学习知识整理
学习
X54先生(人文科技)7 小时前
社会嵌入式终身学习机器与修复时代-ELR架构和技术演化探讨
人工智能·深度学习·学习·架构·开源协议
电子云与长程纠缠8 小时前
UE5魂系游戏开发教程05
开发语言·学习·游戏·ui·ue5
syagain_zsx8 小时前
BRpc 二次封装:Channel 管理、服务管理与回调工厂
c++·学习·程序人生·rpc·谷歌
其实防守也摸鱼8 小时前
Cylab在线靶场——CTF中的通用技能
linux·数据库·学习·算法·靶场·ctf·学习网络安全
我命由我123458 小时前
Python 开发 - Python 的 pathlib
java·开发语言·后端·python·学习·java-ee·学习方法
kkkkkkkkkk_Z9 小时前
新手自学嵌入式 | 学习日记:Linux驱动复习之系统移植(U-Boot篇)
linux·运维·学习
Rabitebla9 小时前
【系统性学习笔记】Linux 权限篇(二):文件属性、权限修改与目录权限的底层逻辑
linux·c++·笔记·学习·算法