首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于验证签名/令牌的基本的、易于实现的(和小代码大小)算法

用于验证签名/令牌的基本的、易于实现的(和小代码大小)算法
EN

Cryptography用户
提问于 2023-02-07 21:52:58
回答 1查看 96关注 0票数 3

我正在寻找一些基本的算法来:

  • 生成代码
  • 把它发到网站上,
  • 在付款之后,从代码中生成一个令牌并发送回来,
  • 令牌被验证的地方。

我不知道如何用密码学的术语来问问题,所以我会解释我在寻找什么:

我有一个运行在手表上的应用程序。我希望在手表上显示一个简短的代码(数字或文本字符串),然后在用户可以购买许可证的网站(我将实现)中使用此代码,并且输出将获得令牌(或签名)。然后,用户在手表设置中键入此令牌。然后手表验证返回的令牌。

手表的容量、内存、代码大小等都非常有限,所以我希望有一个很小的算法(至少在手表上运行的部分是这样)。

每个手表都有一个唯一的标识符uuid (对于物理手表+应用程序来说是唯一的),它可以用作输入(如果不使用它作为代码,可能会更短一些,比如8-12字符号会更有用)。

该网站可以做任何事情,那里的资源没有问题。

标记将是一些短字符串或数字。

然后,当令牌被输入到手表中时,手表上的算法应该能够验证:

  • 令牌是使用它的uuid生成的代码生成的。
  • 标记是由网站生成/签名的。这个网站可能知道一些秘密。手表不知道这个秘密,只有一些在手表应用程序中硬编码的“公钥”。

关键是在手表上运行的代码应该尽可能短。

没有必要使用超级安全的东西,只是比其他类似的应用程序更难破解:只需发送一些静态字符串作为"PaidAPP123“之类的”令牌“(这很容易通过另一个手表用户)。

EN

回答 1

Cryptography用户

发布于 2023-03-16 05:27:21

您要做的一个严重问题是签名的所需大小:就像50位,这是由必须输入签名这一事实决定的。

我们知道的最小的稍微安全的(公钥)签名大约是200位(给或取),这是实际输入的几倍。对于短消息或无消息,最著名的选项(就像问题中的情况一样)是BLS签名,但是参数的选择是一个尚未解决的问题,参见这个问题

遗憾的是,您将不得不承认在验证用户输入的内容时涉及到一些秘密;然后50位对称的消息认证码是非常好的。

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

https://crypto.stackexchange.com/questions/104105

复制
相关文章

相似问题

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