Làm cách nào để tạo khóa với RSA và aes-256-gcm?


1

Tôi muốn tạo khóa với RSA và AES 256 GCM nhưng tôi luôn gặp lỗi sau:

$ openssl genpkey -out mkey.pem -aes-256-gcm -algorithm rsa
.........................++++++
..............++++++
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
Error writing key
140735190483024:error:0D0A7072:asn1 encoding routines:PKCS5_pbe2_set_iv:error setting cipher params:p5_pbev2.c:133:
140735190483024:error:2307D00D:PKCS12 routines:PKCS8_encrypt:ASN1 lib:p12_p8e.c:86:

Khi tôi cố gắng sử dụng aes-256-ctr Tôi cũng gặp lỗi nhưng hơi khác:

$ openssl genpkey -out mkey.pem -aes-256-ctr -algorithm rsa
.................++++++
.....++++++
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
Error writing key
140735190483024:error:0D0A706C:asn1 encoding routines:PKCS5_pbe2_set_iv:cipher has no object identifier:p5_pbev2.c:104:
140735190483024:error:2307D00D:PKCS12 routines:PKCS8_encrypt:ASN1 lib:p12_p8e.c:86:

Phiên bản OpenSSL OpenSSL 1.0.2g 1 Mar 2016. Mac OS X 10.11.

Câu trả lời:


1

OpenSSL không hỗ trợ điều đó.

Từ https://www.openssl.org/docs/manmaster/apps/genpkey.html :

-cipher
    This option encrypts the private key with the supplied cipher. Any algorithm name
    accepted by EVP_get_cipherbyname() is acceptable such as des3.

Từ https://www.openssl.org/docs/manmaster/apps/enc.html :

The enc program does not support authenticated encryption modes like CCM and GCM.
The utility does not store or retrieve the authentication tag.

Bạn có thể tìm thấy danh sách các mật mã mà bạn có thể chỉ định trong phần "CIPHERS HPORT TRỢ" của enc.html:

https://www.openssl.org/docs/manmaster/apps/enc.html#SUPPORTED-CIPHERS


Vậy tôi có thể làm gì? Có thư viện khác không? Dự án của tôi có yêu cầu sử dụng aes-256-gcm để tạo (các) khóa sẽ được sử dụng để mã hóa một số dữ liệu ...
user606521

1
Tôi nghĩ rằng nó phụ thuộc vào những gì bạn đang thực sự cố gắng làm. Bạn đang tìm kiếm một tiện ích độc lập hiện có mã hóa AES-GCM? Tôi không biết về một. Nếu bạn sẽ tích hợp thư viện tiền điện tử vào dự án của mình, thì bạn có thể sử dụng OpenSSL cho AES-GCM. Lưu ý rằng mật mã bạn chọn ở đây chỉ được sử dụng để mã hóa khóa riêng (và tôi không thấy lý do nào đặc biệt thuyết phục để khóa riêng được mã hóa bằng AES-GCM). Nó không liên quan gì đến loại mã hóa bạn có thể làm với khóa này trên dữ liệu khác.
jjlin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.