如何生成其公共密钥仅具有写入任何文件授权的PGP密钥?

时间:2018-07-24 14:55:26

标签: logging encryption pgp

我想跟踪日志文件。

用户只能使用公共密钥写入日志文件,并且必须对文件进行加密,或者用户必须先写入通过公共密钥加密的文件。 (用户无法编辑或读取文件。)

而且,我需要使用我的私钥读取该日志文件。 还是您有解决此问题的建议?

1 个答案:

答案 0 :(得分:0)

  

Quora用户Adrian Ho给出了答案。

这是一种教科书加密情况,需要两个组件:

  
      
  • ChaCha20 这样的对称流密码(对于基于文本的日志;如果您以固定大小的块编写二进制日志,那么像AES这样的对称块密码也可以使用)
  •   
  • 一种非对称密码,例如 RSA
  •   

几乎每种生产质量的语言都应在加密库中提供两种密码。我亲自接触过libcrypt(GnuPG的核心库)和NaCl(另一种强调易用性和速度的加密库),但请继续使用您所拥有的一切手。

准备工作:

  

创建RSA密钥对。
  将公钥嵌入到记录程序中。
  保持私钥私密。

记录器的基本逻辑:

  1. 每次创建新的日志文件时,它都会首先执行以下操作:

      
        
          
    • 随机生成一个新的ChaCha20密钥。
    •     
    • 用您的RSA公钥加密ChaCha20密钥。
    •     
    • 在文件的开头写入加密的ChaCha20密钥。
    •     
      
  2. 每次写入新的日志条目时,都会首先使用ChaCha20对条目进行加密。

在接收端,您的自定义日志读取器会在每个日志文件上执行此操作:

  1. 从文件的开头读取加密的ChaCha20密钥。
  2. 使用RSA私钥解密密钥。
  3. 用解密的ChaCha20密钥解密文件的其余部分。

工作完成。