Encryption 具有多重解密结果的非对称加密

Encryption 具有多重解密结果的非对称加密,encryption,encoding,public-key-encryption,decoding,encryption-asymmetric,Encryption,Encoding,Public Key Encryption,Decoding,Encryption Asymmetric,编辑 我正在尝试为公司开发一个密码管理工具。我的想法是,某种数据库中的密码用只有管理员拥有的主密码进行加密 公司的每个部门都应该有自己的密码,该密码只允许该部门的用户访问自己的密码 让我们看一个例子 A系 计费系统,密码:“您好” B系 邮件,密码:“世界” 密码用管理员的主密码加密。让我们假设它是0000。所以在数据库中会有这样的东西 A系 计费系统,密码:加密(“你好”,0000,'A') B系 邮件,密码:加密(“世界”,0000,“B”) 此外,A部门的密码为99

编辑

我正在尝试为公司开发一个密码管理工具。我的想法是,某种数据库中的密码用只有管理员拥有的主密码进行加密

公司的每个部门都应该有自己的密码,该密码只允许该部门的用户访问自己的密码

让我们看一个例子

  • A系
    • 计费系统,密码:“您好”
  • B系
    • 邮件,密码:“世界”
密码用管理员的主密码加密。让我们假设它是0000。所以在数据库中会有这样的东西

  • A系
    • 计费系统,密码:加密(“你好”,0000,'A')
  • B系
    • 邮件,密码:加密(“世界”,0000,“B”)
此外,A部门的密码为9999,B部门的密码为7777。现在我正在寻找一种可能,用密码9999解密计费系统的密码,用密码7777解密邮件密码。但是应该不能用9999解密邮件密码,反之亦然

  • 计费系统:解密(加密(“Hello”,0000,'A'),9999)=“Hello”
  • 计费系统:解密(加密(“你好”,0000,'A'),7777)!=“你好”
  • 邮件:解密(加密(“世界”,0000,'B'),9999)!=“世界”
  • 邮件:解密(加密(“世界”,0000,'B'),7777)=“世界”
这还不够难,管理员用户必须有可能用主密码0000解密任何密码

  • 计费系统:解密(加密(“Hello”,0000,'A'),0000)=“Hello”
  • 邮件:解密(加密(“世界”,0000,'B'),0000)=“世界”

我希望我的想法现在越来越清晰了……

前言:如果不知道密码系统的全部意图和目的,就无法设计密码系统,因此我给出的任何建议都可能完全不适合您的最终目标。此外,您可能更愿意询问或的专家。另外,我对密码学有更多的了解,这是一个通用的编程论坛,所以请对下面的内容持保留态度


话虽如此,通常以加密形式存储一条信息,但让多方使用不同密码访问该信息的方法是使用中间加密密钥。你有你的明文。生成一个随机密钥并使用它加密明文。现在,使用用户的个人密码加密随机生成的密钥并存储结果

plaintext  = 'Hello World'
key        = make_random_string(128)
ciphertext = encrypt(plaintext, key)
keys = {
    user1: encrypt(key, user1password),
    user2: encrypt(key, user2password),
    ...
}
要解密,请使用用户的密码解密密钥,然后解密实际信息

key       = decrypt(keys.user1, user1password)
plaintext = decrypt(ciphertext, key)

print plaintext
这种间接方式允许您在多个用户之间共享同一条信息。实际上,您可能会使用对称加密来用随机密钥加密明文,而使用非对称加密来用每个用户的公钥加密随机密钥。这意味着在实践中,每次生成一个新的随机对称加密密钥时,系统都需要创建一个副本,并使用每个用户的公钥对其进行单独加密,该公钥应该可以访问该密钥


这还允许您无可挽回地撤销单个用户对特定信息的访问权,只需使用该用户版本的随机加密密钥即可。

您始终使用目标的公钥进行加密。那么只有私钥所有者才能解密。使用私钥加密仅用于签名文档,当哈希摘要使用私钥加密时,任何人都可以使用公钥对其进行解密,从而验证签名。嗯,是的,您使用标准的非对称加密是正确的。也许在这里使用私钥和公钥是令人恼火的。。。你对命名有更好的想法吗?完全不清楚你想做什么,并且脱离主题,因为这不会发展编程。你可以在crypto上发帖,但只有当你能用某种标准符号描述你的协议时,这个协议几乎会立即关闭。是的,如果不向全世界大喊我的想法,很难描述我的想法/问题;)但我想没有人会明白我在找什么。所以我重写了文本…你想要实现的已经实现为。