【问题标题】:Web Application with Charm Crypto具有魅力加密的 Web 应用程序
【发布时间】:2016-09-14 14:44:29
【问题描述】:

我想制作一个Web应用程序,用户可以使用用户名和密码登录这个平台(我想制作一个MySQL数据库来盯着用户名和密码)。

当用户登录后,他从他的计算机中选择一个文件并将这个文件发送到服务器上。

我想将此文件加密给一组用户(我想将 HybridABE 加密与 Charm Crypto 结合使用)。

现在我有这些架构/编程问题。

假设我们有这个程序:

from charm.toolbox.pairinggroup import PairingGroup,GT
from charm.adapters.abenc_adapt_hybrid import HybridABEnc as HybridABEnc
from charm.schemes.abenc.abenc_waters09 import CPabe09

group = PairingGroup('SS512')
cpabe = CPabe09(group)

hyb_abe = HybridABEnc(cpabe, group)

policy = '((ONE or THREE) and (TWO or FOUR))'

msg = "hello world this is an important message."

(master_secret_key, master_public_key) = hyb_abe.setup()

attr_list = ['THREE', 'ONE', 'TWO']

secret_key = hyb_abe.keygen(master_public_key, master_secret_key, attr_list)

cipher_text = hyb_abe.encrypt(master_public_key, msg, policy)

decrypted_msg = hyb_abe.decrypt(master_public_key, secret_key, cipher_text)

我在哪里可以保存主私钥和主公钥?在像文件这样的目录服务器上?在数据库上?

我在哪里可以保存用户的密钥?

【问题讨论】:

    标签: web-services cryptography charm-crypto


    【解决方案1】:

    基于属性的加密系统通常创建一次,并且只有一个主密钥和公钥对。

    • 主密钥存储在生成用户密钥的服务器上。由于通常只有一个主密钥,您甚至可以生成它并将其放入服务器代码的源代码中。当然,您可以将其包含在服务器数据库中。
    • 必须将用户密钥提供给用户。请记住为您的用户提供某种(公共)标识符以及用户密钥,以便您可以管理某个用户在服务器端拥有的属性列表。否则,当您尝试更新属性时,您会很头疼,因为您需要使用新的用户密钥联系用户。
    • 主公钥(通常称为“公共参数”或简称为“公钥”)是公开的。将它包含在您提供给用户的包中是个好主意。您还可以创建一个 API 端点,以便感兴趣的“用户”可以向您的服务器索取公钥。

    【讨论】:

    • 简单明了。一件事:当您说必须向用户提供用户密钥时,您如何发送这些密钥?以及如何/在哪里存储这些 Key ?你能给我举个第 2 点的例子吗?
    • 一个键通常由多个值组成(例如配对组的元素)。它们可以单独序列化为字节,Charm 提供necessary functions to do so。现在,挑战是将多个序列化值放入(文件)格式。有无数种方法可以做到这一点。您可以将序列化的值放入仅使用本机 Python 类型的不同对象中,然后是 pickle it。您可以编写自己的文件格式。你可以使用像 Protobuf 这样的东西。
    • 您能解释一下用户如何使用主公钥加密数据客户端吗?我正在开发一个网络应用程序,但我不知道如何使用从 Charm Crypto(服务器端)发布的密钥加密数据。我可以使用 JavaScript 吗? (客户端我不能使用 Pyhton,因为它是一个网络应用程序)。感谢您的巡演支持。
    • 您可以使用 PBC 库用 C 或 C++ 编写代码,然后使用 emscripten 将其编译为 JavaScript。 Charm 在后台使用 PBC 库。您也可以使用this library,但我不知道它与 Charm 的兼容性如何。在实际执行此操作之前,您必须考虑如果用户在浏览器中存储了他们的密钥以及它是如何到达那里的,这意味着什么。您应该很快就解决了多个问题,并且您可能会抓住整个想法。
    • 好的。您可以尝试将 Charm Crypto 客户端与 Brython 或 Skulpt 一起使用吗?有没有可能奏效?
    猜你喜欢
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-10
    • 1970-01-01
    相关资源
    最近更新 更多