首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加密成本高,解密成本低

加密成本高,解密成本低
EN

Stack Overflow用户
提问于 2012-03-19 15:44:54
回答 3查看 323关注 0票数 3

我希望该用户/攻击者加密数据并发送到服务器。现在我想要一个与标准算法完全相反的算法(快速使用,难以解密),即很难加密数据,如使用服务器发送的密钥来加密数据,以防止随机攻击,但非常容易解密,因此服务器在验证用户时消耗的时间非常少,但对于攻击者来说,每次使用服务器发送的密钥加密新的试用密码变得非常困难。

再说一次,我不是在谈论SSL。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-19 16:33:56

这听起来像是在寻找一种proof-of-work方案--这种方案的一个应用程序就是您所描述的:强制客户机执行一定数量的工作,从而防止它向服务器发送大量请求。

票数 5
EN

Stack Overflow用户

发布于 2012-03-19 15:50:32

一个愚蠢的想法可能真的很管用,那就是在加密方案上附加一个“拼图”。这样,为了将加密数据发布到服务器,您必须解决一些已知的NP-hard问题(例如,找到一个大型布尔公式的令人满意的赋值),并将答案与一起发送。然后,服务器可以很容易地验证解决方案,但在假设P≠NP的情况下,尝试发布数据的客户端必须执行超多项式的额外工作,从而防止它们淹没您的服务器。

希望这能有所帮助!

票数 5
EN

Stack Overflow用户

发布于 2012-03-19 16:08:54

您可以使用RSA签名(例如PKCS#1)。

您的服务器只有在使用您先前分发的RSA密钥的私有部分签名的情况下才能接受答案。服务器使用公共部分。

RSA的特性是,当您通过因子或x10或x100选择一个小的公共指数(通常称为e,例如e=3)时,验证比签名要快得多,这取决于密钥长度以及您的客户端是否足够聪明,可以使用CRT。

RSA密钥生成速度极慢,但只要在协议中包含阻止重放攻击的挑战,对所有客户端使用一个密钥可能就足够了。

最后,RSA签名不会为您提供机密性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9766579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档