大文件 public 密钥和三个用户的更快加密
Faster Encryption of large file public key and three users
要加密的文件很大。我在加密部分。错误显示:
"Error reading password from Bios"
"Error getting password."
请让我知道该怎么做。提前致谢。
我有点想删除 cbc 模式,因为它很慢。我在一篇文章中读到过。此外,说明书上说要加快速度,因为三个用户都需要它。
我认为这是使用 192 而不是 4096 或更高的问题,但我需要降低它以使其从问题中走得更快。
openssl genrsa -aes256 -out pubPrivate.key 192
openssl enc -aes-256-cbc -in BigFile.txt -out cipher.bin -pass File: pubPrivate.key
此外,我在某处读到代码前面的数字 0000 导致了错误,如果这很重要的话?
不清楚您要做什么。当然,加密一个大文件。但是怎么办? Symmetric with AES, or asymmetric with RSA?
你的第一个命令,openssl genrsa
创建一个长度为 192 的 RSA public/private 密钥对,正如 Ken White 所说,这是一个坏主意,它不仅不是 2 的幂,而且是一个令人难以置信的短密钥长度; 512 位 RSA 密钥 were broken twenty years ago,让您估计这有多糟糕。事实上,我的 openssl 版本 1.1.1b 甚至拒绝创建这样的密钥对:
$ openssl genrsa -aes256 -out foo.key 192
Generating RSA private key, 192 bit long modulus (2 primes)
25769803792:error:04081078:rsa routines:rsa_builtin_keygen:key size too small:crypto/rsa/rsa_gen.c:78:
你的第二个命令会做一些完全不同的事情。它尝试在 CBC 模式下使用 AES256 加密 Bigfile.txt,这没问题,但您没有为该命令提供 256 位 AES 密钥。相反,您告诉它在 RSA 密钥文件中查找密码,这肯定不是您想要的。 Openssl 也不接受这个:
$ openssl enc -aes-256-cbc -in BigFile.txt -out cipher.bin -pass File: pubPrivate.key
Extra arguments given.
enc: Use -help for summary.
所以我们假设您想要对称加密 BigFile.txt,使用从密码派生的密钥在 CBC 模式下使用 AES256。然后,您会将此密码分发给三个收件人。这有多快?在我的笔记本电脑上,1GB BigFile.txt:
$ time openssl enc -aes-256-cbc -in BigFile.txt -out cipher.bin -pass pass:start123
*** WARNING : deprecated key derivation used.
Using -iter or -pbkdf2 would be better.
real 0m3,099s
user 0m1,562s
sys 0m0,968s
因此,openssl 的加密速度约为 330MB/秒,它还告诉我们密钥派生是不安全的,我们应该改用 PBKDF2。让我们这样做:
$ time openssl enc -aes-256-cbc -in BigFile.txt -out cipher.bin -pbkdf2 -pass pass:start123
real 0m3,202s
user 0m1,656s
sys 0m1,077s
要加密的文件很大。我在加密部分。错误显示:
"Error reading password from Bios"
"Error getting password."
请让我知道该怎么做。提前致谢。
我有点想删除 cbc 模式,因为它很慢。我在一篇文章中读到过。此外,说明书上说要加快速度,因为三个用户都需要它。
我认为这是使用 192 而不是 4096 或更高的问题,但我需要降低它以使其从问题中走得更快。
openssl genrsa -aes256 -out pubPrivate.key 192
openssl enc -aes-256-cbc -in BigFile.txt -out cipher.bin -pass File: pubPrivate.key
此外,我在某处读到代码前面的数字 0000 导致了错误,如果这很重要的话?
不清楚您要做什么。当然,加密一个大文件。但是怎么办? Symmetric with AES, or asymmetric with RSA?
你的第一个命令,openssl genrsa
创建一个长度为 192 的 RSA public/private 密钥对,正如 Ken White 所说,这是一个坏主意,它不仅不是 2 的幂,而且是一个令人难以置信的短密钥长度; 512 位 RSA 密钥 were broken twenty years ago,让您估计这有多糟糕。事实上,我的 openssl 版本 1.1.1b 甚至拒绝创建这样的密钥对:
$ openssl genrsa -aes256 -out foo.key 192
Generating RSA private key, 192 bit long modulus (2 primes)
25769803792:error:04081078:rsa routines:rsa_builtin_keygen:key size too small:crypto/rsa/rsa_gen.c:78:
你的第二个命令会做一些完全不同的事情。它尝试在 CBC 模式下使用 AES256 加密 Bigfile.txt,这没问题,但您没有为该命令提供 256 位 AES 密钥。相反,您告诉它在 RSA 密钥文件中查找密码,这肯定不是您想要的。 Openssl 也不接受这个:
$ openssl enc -aes-256-cbc -in BigFile.txt -out cipher.bin -pass File: pubPrivate.key
Extra arguments given.
enc: Use -help for summary.
所以我们假设您想要对称加密 BigFile.txt,使用从密码派生的密钥在 CBC 模式下使用 AES256。然后,您会将此密码分发给三个收件人。这有多快?在我的笔记本电脑上,1GB BigFile.txt:
$ time openssl enc -aes-256-cbc -in BigFile.txt -out cipher.bin -pass pass:start123
*** WARNING : deprecated key derivation used.
Using -iter or -pbkdf2 would be better.
real 0m3,099s
user 0m1,562s
sys 0m0,968s
因此,openssl 的加密速度约为 330MB/秒,它还告诉我们密钥派生是不安全的,我们应该改用 PBKDF2。让我们这样做:
$ time openssl enc -aes-256-cbc -in BigFile.txt -out cipher.bin -pbkdf2 -pass pass:start123
real 0m3,202s
user 0m1,656s
sys 0m1,077s