首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >实现随机抽取器

实现随机抽取器
EN

Cryptography用户
提问于 2018-12-20 15:57:37
回答 2查看 812关注 0票数 4

随机抽取器是一个函数,它从高熵分布中抽取一个输入,输出一个接近均匀分布的值。它与PRG略有不同。PRGs采用均匀分布的采样输入,输出较大的长度字符串,计算上与均匀字符串是无法区分的。随机抽取器从高熵分布中抽取输入样本,输出较小的长度字符串,在统计上接近均匀分布。

在我的方案中,我使用随机抽取器。在该方案中,提取器从Z_N^*的子群中提取一个均匀采样的元素,其中N是两个大素数的乘积。提取器需要输出一个位字符串。我想实现这个方案,但找不到随机抽取器的任何实现。sagemath中是否有任何随机抽取器,或者其他库?

EN

回答 2

Cryptography用户

发布于 2019-05-20 15:12:02

随机抽取器从高熵分布中抽取输入样本,输出较小的长度字符串,在统计上接近均匀分布。

不完全是。随机抽取器不是简单的函数F\colon A \to S,如果F(X)具有较高的最小熵,则X与均匀度的距离较小。相反,随机抽取器是一个关键的函数族F_k\colon A \to S,如果K是均匀分布的,而X具有较高的最小熵,那么F_K(X)距离均匀性很小。换句话说,前提是你已经有了一个统一的随机密钥。

所以,本质上是没有理由在实际应用中使用随机抽取器。。一般来说,要么是:

  1. 你有一个足够高的最小熵来做密码学的秘密。
    • 太棒了!使用HKDF- for 256或您最喜欢的KDF为您要使用的每个密码系统从它派生密钥。

  2. 你没有足够高的最小熵来做密码学的秘密。
    • 再多的随机提取器也不会提高它的最小熵。再扔几次硬币就行了。

随机抽取器本质上只是理论上感兴趣的,所以如果您很难找到标记为它们的实际实现(尽管任何通用的哈希抽取器都是带有剩余哈希引理的随机抽取器),这就不足为奇了。如果您真的想做密码学,只需通过HKDF SHA256 256或SHAKE128.

之类的散列函数,以高最小熵的方式提供您的初始秘密。

票数 2
EN

Cryptography用户

发布于 2018-12-20 16:42:28

文献中有一些奇怪而精彩的理论提取器,但在实践中,人们最终使用了某种形式的通用哈希算法。你要么自己写,要么用认可的表格。实现语言可以是任何可以执行以下操作的内容:

  1. 写你自己的通常包括某种形式的向量乘法。所以要么是托普利茨矩阵,要么是随机位/整数的矩形矩阵。然后,根据您是试图输出位元还是八位元,应用模数。因此,在输入熵向量上使用矩阵Mx给出了\operatorname{Ext}(x) = M \cdot x \mod n,其中n是模数,例如2,在某些情况下是2^8或素数。ID准古董随机数发生器采用随机比特明智的mod 2方法.
  2. 标准表单可以是加密的,也可以是非加密的散列。沙*,HMAC,CRC*,Pearson等。USB格式OneRNG使用CRC16,而我偏袒培生。

这并不重要,因为随机抽取器的典型应用意味着整个系统状态是不可恢复的。

尽管..。您提到了从Z_N^*的一个子组中提取。从算法中提取出来是不寻常的,因为您将拥有一个伪随机生成器。如果确实如此,则需要加密散列,因为状态发现在数学上是可能的。不然的话,向前和向后的安全性就会受到损害。然而,我从未见过一个正式的随机抽取器和一个算法状态突变器在一个结构中一起使用。

另一种选择是,如果由于vN的某些代数性质而无法进行反演,则使用von ( Z )。然后,您必须对x进行修饰,创建独立的示例,然后应用vN。最常见的去相关方法是从x中删除更高的位,直到自相关级别变得可以接受为止。只有你知道你的ZS行为,所以可能不得不删除较低的比特。在顺序x_i值中也存在FIR滤波。顺序x_i值的异或也可以充当ersatz FIR滤波器。不过,如果可以进行反演,简单的vN在密码学方面仍将是不安全的。

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

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

复制
相关文章

相似问题

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