跳转到主要内容

ClaimChain密码数据结构的实现

项目描述

ClaimChain

claimchain-core

Build Status Documentation Status Zenodo Citation

安装

您可以通过pip安装claimchain

pip install claimchain

要运行测试,请检出git存储库并运行tox

git clone https://github.com/claimchain/claimchain-core
cd claimchain-core
tox

使用警告

此代码是用于研究目的的。它不应用于现实世界系统。并非所有安全功能都已实现,某些密码实例需要更换为更安全的替代方案。

使用方法

ClaimChain的高级接口由两个类组成,分别为用于构建claimchains的State和用于解析和解释claimchains的View

构建链

ClaimChain用户的核心抽象是状态。该状态包含有关用户及其对其他用户或对象所做的声明的信息。目前,此包仅支持私有声明,这意味着链的所有者需要明确使每个声明可供预期读者阅读。一旦构建了状态,就可以将其提交到链中。

以下是如何用户 Alice 准备她的 状态

from claimchain import State

state = State()

# Alice adds information about herself
state.identity_info = "Hi, I'm Alice"

# Alice adds private claims
state['bob'] = 'Bob is a good lad'

使声明可访问需要知道每个授权读者的DH公钥。其他用户的DH密钥获取方式将在后面描述。假设Alice有Carol的DH公钥carol_dh_pk,她可以允许Carol访问她对Bob的声明

state.grant_access(carol_dh_pk, ['bob'])

请注意,第二个参数必须是一个声明标签的可迭代对象,而不是单个标签。

要提交状态,首先需要构建一个链,其次需要生成加密密钥

from hippiehug import Chain
from claimchain import LocalParams, State

state = State()

# Generate cryptographic keys
params = LocalParams.generate()

store = {}
chain = Chain(store)

with params.as_default():
    head = state.commit(chain)

然后可以通过发布存储和通信链的来发布或传输链到其他用户。其他用户将能够使用下面的View接口来解释链。

解释链

拥有包含其他用户链的存储(字典)以及该用户链的头的访问权限,可以使用View接口。

以下是Carol如何解释Alice的声明链,假设Alice的存储是alice_store,她的链头是alice_head,而params是Carol的LocalParams对象

from hippiehug import Chain
from claimchain import View

alice_chain = Chain(alice_store, root_hash=alice_head)

with params.as_default():
    alice_view = View(alice_chain)

    # Try to get claim with label 'bob'
    claim = alice_view['bob']

    assert claim == b'Bob is a good lad'

最后,这是Carol如何检索Alice的DH公钥

alice_dh_pk = alice_view.params.dh.pk

此DH公钥可以用来授予Alice在Carol链上读取声明的权限。

本包

claimchain/state.py

高级声明链接口

claimchain/core.py

声明和能力的核心操作编码

claimchain/crypto

加密工具和算法实现

模拟

ClaimChain的核心和实验性实现,是一种加密数据结构。有关ClaimChain的更多信息,请访问网页

查看文档

致谢

本工作由欧洲联盟的Horizon 2020研究与创新框架计划(H2020-ICT-2015, ICT-10-2015)下的NEXTLEAP项目资助,资助协议号688722。NEXTLEAP项目

项目详情


下载文件

下载适用于您平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

claimchain-0.3.1.tar.gz (23.5 kB 查看哈希值)

上传时间 源代码

构建分布

claimchain-0.3.1-py2.py3-none-any.whl (17.2 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面