Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cryptography 使用密钥子集进行身份验证/解密_Cryptography - Fatal编程技术网

Cryptography 使用密钥子集进行身份验证/解密

Cryptography 使用密钥子集进行身份验证/解密,cryptography,Cryptography,是否有一个密码系统,用户可以通过身份验证,或者只有当他们提供一个以上有效密钥的子集时,他们才能解锁文档 提前感谢。非匿名身份验证 如果不要求参与成功身份验证的用户保持匿名,那么很容易:服务器生成一个随机nonce并将其发送给用户子集。每个用户使用他/她的私有签名密钥对nonce进行签名,并将签名发送到服务器。服务器验证每个签名,如果存在足够的签名,则子集已成功通过身份验证 匿名解密 这里的其他人可能知道RFC或库,但如果没有,我会这样设计:将秘密分成n部分,其中k部分是使用。对于n个用户中的每一

是否有一个密码系统,用户可以通过身份验证,或者只有当他们提供一个以上有效密钥的子集时,他们才能解锁文档

提前感谢。

非匿名身份验证 如果不要求参与成功身份验证的用户保持匿名,那么很容易:服务器生成一个随机nonce并将其发送给用户子集。每个用户使用他/她的私有签名密钥对nonce进行签名,并将签名发送到服务器。服务器验证每个签名,如果存在足够的签名,则子集已成功通过身份验证

匿名解密 这里的其他人可能知道RFC或库,但如果没有,我会这样设计:将秘密分成n部分,其中k部分是使用。对于n个用户中的每一个,使用其公共加密密钥加密分割秘密的不同部分。当他们中的k人解密他们那部分被分割的秘密时,他们可以重新创建这个秘密

如果公钥加密是确定性的,您甚至可以使其匿名,即如果您可以获取机密,您可以检查k个用户的每个子集是否也能够获取机密:在准备协议运行时,除了公共加密之外,您还必须为每个用户指定一个固定的x坐标钥匙当一部分用户成功地重新创建了秘密,从而创建了多项式时,他们可以在每个用户的x坐标处对其进行评估,并使用他们的公钥对其进行加密。如果结果与服务器生成的结果相同,则k个用户的每个子集都可以解密该秘密

请注意,确定性加密有一些警告。例如,如果明文空间很小,攻击者只需加密每个明文并将结果与给定的密文进行比较

推论:匿名身份验证
使用匿名解密,您可以创建一个匿名身份验证协议,方法是让服务器以上述方式为n人中的k人加密随机nonce,并将其发送给用户子集。他们解密nonce,检查k个用户的每个子集是否也能够解密,并将nonce发送回服务器。

这个问题似乎与主题无关,因为它与编程无关。请继续问