📜  项目理念 - 生物散列:两因素身份验证

📅  最后修改于: 2022-05-13 01:57:40.962000             🧑  作者: Mango

项目理念 - 生物散列:两因素身份验证


我们都希望没有人可以在未经我们许可的情况下访问我们的私人数据。为此,我们在不同的小工具或 ATM 卡中使用密钥(密码或 PIN)。但是该密钥可能被盗,一旦被盗,我们将无法控制我们的数据。

用于为数据提供保护的另一种方法是使用我们的生物特征数据,如指纹、虹膜或面部图案。它比以前的有一些优势,因为它不能被盗,因为用户只能通过出现在验证位置来验证他们的身份。但这里的缺点是该标准导致错误拒绝率增加,即,由于在验证时他们的生物特征数据失真,不允许有效用户访问他们的数据。

可以使用更好的方法,它使用上述两种思想并将其合并为单个密钥。这就是为什么它被称为两因素身份验证。

执行 :
每个用户都有一个随机种子,只有用户知道。此随机种子用作 Blum Blum Shub 随机数生成器的初始化程序。这使用两个大素数(p 和 q)作为起始,并找到 M=p*q。在这里,X0 是与 M 互质的种子。然后新的输出导出为 Xn+1 = power(Xn, 2) mod M。我们可以通过应用筛选生成大量素数来选择这两个素数埃拉托色尼算法并从所有这些中选择两个随机素数。我们通过位奇偶校验将所有这些随机数存储在 m*n 阶矩阵(n 维的 m 个向量)中,即我们存储 Xn+1 mod 2。

然后,我们对所有这些向量应用 Gram-Schmidt 正交归一化过程。它使所有向量彼此正交(垂直)并且具有一个单位大小。

然后,我们提取生物特征数据(为简单起见,我们采用一维随机矩阵)并对这些生物特征数据应用离散余弦变换(dct)。然后我们取这些 dct 的标量积,并在应用 gram-schmidt 正交归一化后获得数据。然后我们将获取的数据与预设的阈值保持值进行比较,并按照如果获取的数据大于预设值,则存储1或0的标准进行存储。这些存储的数据称为Bio-Hash code

这个生物哈希码是我们为我们的真实数据提供隐私或保护的关键。这意味着当我们需要访问我们的数据时,会发生上述所有过程,然后将获得的数据与存储的生物哈希码进行比较。如果找到匹配 - 访问被授予否则访问被拒绝。

所有这些描述过程的代码都在我的 github 链接上 https://github.com/kaditya139/Project