本体ddxf加密组件
ontology-ddxf-crypto的Python项目详细描述
本体论ddxf加密组件
英语中文
- 1. Ontology Distributed Identity Framework (ONT ID)
- 2. Encryption Service Based on ONT ID
- 3. Password-Based Key Derivation Function (PBKDF)
- 4. Elliptic Curve Integrated Encryption Scheme (ECIES)
一。本体分布式身份框架(ont id)
本体did(又称ont id)是一种基于w3cdid规范的分布式身份识别协议。ont-id为每个实体建立了一个基于密码的数字身份,允许数据授权和所有权确认的自主权,这使得身份和数据真正成为用户可以控制的资产。
如果您对ont id感兴趣,可以找到详细的介绍here。
2.基于ont id的加密服务
2.1条。加密过程
加密数据有三个主要步骤:
- 查询公钥:访问本体区块链中的智能合约,根据数据请求者的
ONT ID
获取对应的公钥pk
。 - 随机抽样:随机抽样256位数据以获得高级加密标准(aes)密钥
key
。 - 加密:AES256密钥使用公钥加密算法(PKE)加密以获得^{
},明文数据^{ }使用AES256-GCM加密以获得密文数据^{ }。
2.2条。解密过程
- 查询私钥:根据
ONT ID
和PKIndex
从私钥管理模块中找到对应的私钥sk
。 - 解密对称密钥:使用私钥
sk
来解密加密密钥ekey
,以获得aes对称密钥key
。 - 解密数据:使用aes对称密钥
key
来解密密文数据c
来获得明文数据m
。
三。基于密码的密钥派生函数(pbkdf)
在密码学中,pbkdf(password-based key derivation function,基于密码的密钥派生函数)是一种具有滑动计算代价的密钥派生函数,其目的是降低加密密钥对暴力攻击的脆弱性。
在分布式数据交换框架(简称ddxf)中,密钥派生算法使用的哈希函数是SHA256
,算法如下:
- 输入:
seed
,派生密钥长度dkLen
(位)。 - 输出:长度为
dklen
的派生键key
。
defpbkdf2(seed:strorbytes,dk_len:int)->bytes:key=b''index=1bytes_seed=str_to_bytes(seed)whilelen(key)<dk_len:key+=sha256(b''.join([bytes_seed,int_to_little_bytes(index)]))index+=1returnkey[:dk_len]
四。椭圆曲线综合加密方案(ecies)
椭圆曲线综合加密方案(ecies)是维克多·舒普于2001年提出的一种混合加密方案。shoup的提交可以在here找到。