-1

我正在使用Googles Tink DeterministicAead。我想要实现的是长时间使用相同的密钥,但每 24 小时将密文更改为某个明文(出于 GDPR 原因)。

我可以每 24 小时以某种方式选择一个新的初始化向量吗?我正在使用的代码是:

KeysetHandle keysetHandle = KeysetHandle.generateNew(
                DeterministicAeadKeyTemplates.AES256_SIV);
DeterministicAead daead = keysetHandle.getPrimitive(DeterministicAead.class);
byte[] ciphertext = daead.encryptDeterministically(clearText.getBytes(), "".getBytes());

ciphertext确实是确定性的,所以至少那部分是好的:-)

我希望能够在 BigQuery 中解密密文,所以自定义原语让我有点担心。

注意:这不是关于财务数据等,而是关于能够更新关于密文行为的推荐模型,同时符合用户的隐私要求。

4

1 回答 1

1

根据定义(根据我在那些文档中阅读的内容),似乎没有一种方法可以指定 IV(因为那样它就不是确定性的)。

DeterministicAead语似乎是带有 MAC 的 AES,没有 IV。

因此,我认为这里唯一的选择是轮换密钥,或者在加密之前将您自己的前置/附加盐添加到明文中并将其存储以进行解密。

请记住,确定性方案在语义上并不安全。

于 2020-04-29T10:18:49.800 回答