英文:
How to generate a Java tink key?
问题
我在我的Java项目中使用Google Tink库来对两段文本进行加密,一个是使用对称密钥加密(SKE),另一个是使用确定性对称密钥加密(DSKE)。
这是一个后端应用程序,我没有远程存储来存储主密钥(比如Google Could、AWS等)。
生成我需要用来加密这两个文件的秘密材料的正确方法是什么?我认为我需要使用'tinkey'来完成这个任务,但我真的不太理解密钥和密钥集之间的区别。我的SKE密钥和DSKE密钥可以在同一个密钥集中吗?如何生成它们?我可以有一个用于密钥轮换的主密钥吗?
谢谢。
英文:
I'm using the Google Tink library in my Java project to encrypt two texts, one with Symmetric Key Encryption (SKE), and another one with Deterministic symmetric key encryption (DSKE).
This is a backend application, and I do not have a remote storage for storing a master key (google could, aws, ...).
What would be the correct way to generate the secret material that I need to encrypt both of these files ? I think I need to use 'tinkey' for this task, but I don't really understand the difference between a key and a keyset.
Can my SKE key and DSKE key be in the same keyset ? How to generate them ? Can I have a master key that's used for key rotation ?
Thanks
答案1
得分: 1
你需要生成两个密钥集,一个是AEAD,另一个是确定性AEAD。
tinkey create-keyset --key-template AES128_GCM --out aead-keyset.json
tinkey create-keyset --key-template AES256_SIV --out deterministic-aead-keyset.json
你希将密钥集文件存储在后端服务器的安全位置。请不要将它们提交到你的git服务器。
在Java中,你可以使用CleartextKeysetHandle
或其他语言中等效的API来加载密钥集。有关更多信息,请参阅相应语言的HOWTO。
英文:
You'll want to generate two keysets, one AEAD and another Deterministic AEAD.
tinkey create-keyset --key-template AES128_GCM --out aead-keyset.json
tinkey create-keyset --key-template AES256_SIV --out deterministic-aead-keyset.json
You want to store the keyset files in a secure location in your backend server. Do not commit them to your git server.
In Java, you can load the keysets using CleartextKeysetHandle
or equivalent APIs in other languages. See the language's HOWTO for more information.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论