Cryptography 生成对有效密钥形式有限制的公钥/私钥对

Cryptography 生成对有效密钥形式有限制的公钥/私钥对,cryptography,public-key-encryption,encryption-asymmetric,Cryptography,Public Key Encryption,Encryption Asymmetric,我需要一种方法来为有效对创建具有特殊模式的公钥/私钥对,例如,所有有效对都必须以3开头,只比这个示例复杂得多。我这样做是为了让另一方很难生成有效对 编辑 我尝试使用匿名身份验证,用户可以根据初始密钥自行生成公钥/私钥对。公钥还用作与服务器连接的假名。我正在研究一个位置隐私协议,在该协议中,我必须对用户进行身份验证,但他们必须保持匿名。这里有一个问题,即假名经常更改,因此我无法阻止dos攻击,因此我想到了此解决方案来防止它大多数非对称密钥生成算法都会多次尝试生成有效密钥,这通常是因为某些密钥因未通

我需要一种方法来为有效对创建具有特殊模式的公钥/私钥对,例如,所有有效对都必须以3开头,只比这个示例复杂得多。我这样做是为了让另一方很难生成有效对

编辑
我尝试使用匿名身份验证,用户可以根据初始密钥自行生成公钥/私钥对。公钥还用作与服务器连接的假名。我正在研究一个位置隐私协议,在该协议中,我必须对用户进行身份验证,但他们必须保持匿名。这里有一个问题,即假名经常更改,因此我无法阻止dos攻击,因此我想到了此解决方案来防止它

大多数非对称密钥生成算法都会多次尝试生成有效密钥,这通常是因为某些密钥因未通过预定义测试而被视为弱密钥。在您的情况下,您只需要进行额外的测试,以检查它们是否符合您的特殊条件,然后再将其视为有效密钥

从编程的角度来说,如果您使用的是第三方密钥生成库,则必须不断调用生成器,直到它为您提供满足条件的密钥对为止。如果您自己编写生成器,那么只需将您的条件作为算法的一部分就可以节省一些精力

无论如何,我同意其他评论员的观点,这可能不是一个好主意。如果您需要密钥的某个部分来匹配预定的模式,那么您就牺牲了一些安全性来换取一些很容易被不友好的一方发现和滥用的东西


我很好奇如何使用公钥作为假名提供匿名性。该密钥仍然与与特定客户端关联的特定私钥相关联。听起来你在尝试根据密钥/笔名进行过滤,但这可能不是最好的主意。加密签名会有帮助吗?

隐晦中散发出安全感。为什么要使密钥生成困难?使dos攻击更困难。如果不知道该模式的人试图通过生成所有可能的组合来生成有效对,这将使创建有效对的速度变慢。我在我的系统中使用公钥作为笔名(除了它们的正常使用之外),我不确定这与DOS攻击有什么关系(我可能会错过一些关于你正在构建的任何东西),但是“如果有人不知道尝试的模式”这句话仍然让我通过模糊来思考安全性。假设每个人都知道你算法的每一个细节,这是更安全的假设。@delan请看编辑。足够了吗?@AlirezaKazeminia在这里永远不够,但在crypto.stackoverflow.com上可能不够。该对是自生成的,因此无法追溯到客户端。我只是想防止恶意用户能够快速生成密钥,也就是说,我正在尝试使用蛮力生成密钥非常耗时。如果只使用足够大的密钥大小,则使用蛮力生成密钥已经非常耗时。对于非对称密钥生成,例如RSA,1024位可能是好的。如果您真的想确定,请使用2048。