在哪里可以了解共享密码密钥的行之有效的方法?
假设一个小组想要加密某些信息,然后以一种需要小组达成共识才能解密信息的方式在小组成员之间共享加密密钥。我对各种各样的情况都感兴趣,这些情况的共识范围从一致同意到绝对多数。一种有用的技术可以应用于对称密钥,私有密钥或者两者。
我敢于尝试自己的方法,因为我敢肯定很多SO成员都可以。但是出于这个问题的目的,我只对那些已经被广泛出版并且经受了专家密码分析家的仔细审查的方法感兴趣。期刊引文很好,但对学术来源的解释也非常有用。
解决方案
我一直对这种秘密共享技术着迷。我见过在Internet上实现它的代码,但从未见过实际的应用程序。 Shamir的秘密共享Wikipedia文章链接到一些实际代码以及原始学术文章。
我们所描述的听起来很像是"秘密分裂"(第12.1节"密码学概论"。特拉普和华盛顿。第二版)基本思想是可以提出一个多项式,其中包括"秘密"(一个关键点)。在线上。我们可以通过选择此多项式上的其他点来分配"份额"。两点定义形式为f(x)= ax + b的线,三点定义形式为f(x)= ax ^ 2 + bx + c的多项式,四点定义形式为f(x)的某物= ax ^ 3 + bx ^ 2 + cx + d,依此类推。我们可以选择一个包含秘密作为一个点的多项式,以及一个足以使该N个人都可以重构它的阶数的多项式。
这是被称为" Shamir阈值方案"的基本概念。
参见Wikipedia上的"秘密分裂"和" Shamir的秘密分享"
维基百科页面上有一些指向该想法的实现的链接,包括Windows和UNIX的GPL代码。
使用纠错代码很容易实现。我们可以使用诸如par2之类的命令行工具(由于此工具会生成大小不同的恢复块,因此不完全适合此特定目的btw)。假设我们有(n + m)个选民,并希望达到n票的法定人数。我们生成n个私钥K?,K?,... Kn,并生成m个添加ECC块P?。相同的大小。这样,任何n个块都足以重构密码K?K?... Kn
转到此处讨论Shamir秘密共享的数学基础,并简要讨论它具有的实际应用类型。向下滚动页面至有关多项式和秘密共享的讲义。这可能是该区域的基本概述,但对我们来说应该很有趣。
离散数学笔记
Lotus Notes提供了一种实用的" Silo密码"实现,通过该实现,可以将对某些资源(数据/信息/文档)的访问锁定为" shared-id"。 2个或者更多(我认为最多16个)个人用户密码。认证者/管理员建立一种方案,根据该方案,必须使用可用密码中的任意数量的密码或者所有密码来"打开" ID以进行主动使用。此过程通常用于将组织或者OU证书锁定到5/2或者5/3的管理员/公司官员授予访问权限中,从而确保可以控制高级证书的使用/访问,并避免缺席的管理人员。