0

我试图想出一个很好的策略,用每个单元格的 [半]独立盐对 SQL 表中的每一行的列值进行加盐。理想情况下,我更喜欢每张桌子只有 1 个秘密盐的设置,每个表格单元格的盐来自(即通过算法确定)来自该 1 个秘密盐。

我需要每个表单元格一个新盐的原因是我需要宣传每个列值的哈希值而不泄露它的值。(我将通过将单元格的值连接到其盐值来计算每个单元格的哈希值,然后计算该字节序列的哈希值。)

我想到的生成每个表单元的简单策略是说为表生成一个秘密的、安全的 32 字节随机字节序列,称为 R_32,然后为每个单元计算连接的 R_32 的 SHA-256与单元格的坐标。在伪代码中:

salt(row,col) = SHA_256( R_32 + row + col)

这里+表示字节串连接(不是加法)。

这样,我既可以宣传表格单元格的哈希值,也可以稍后证明该单元格的内容生成了哈希值(通过仅公开该单元格的盐及其内容)。

我是一名数学程序员,对密码学原理有一些工作(应用程序级)知识,但不是密码学家。所以2个一般问题:

  1. 上述salt(row,col)功能安全吗?(我显然认为应该是,但可能有细微之处)

  2. 我觉得我不能成为第一个解决从一种秘密盐中衍生出多种盐的问题的人。然而,我的搜索一无所获。也许他们甚至写过它。如果是这样,任何指针都非常感谢。

谢谢

4

0 回答 0