Lucrez la un mic proiect de hobby pentru a înțelege mai bine cripto.
https://app.gitbook.com/@noojee/s/dvault/
Scopul este de a facilita criptarea unui set de fișiere într-un „seif” și decriptarea acestora la o dată ulterioară.
Instrumentul cli va funcționa după cum urmează
#genera pereche de chei rsa
dvault init -p frază de acces
#creați un seif criptat care conține <calea către fișier>
dvault lock <calea către fișier>
# decriptați seiful restabilind fișierul text simplu.
dvault unlock <calea către seif> -p frază de acces
Frazele de acces nu vor fi trecute pe cli, cele de mai sus sunt doar o ilustrație.
Deci întrebarea se referă într-adevăr la structura și procesul de creare a seifului.
Înțeleg că iv și sarea trebuie să fie aleatorii, dar nu trebuie să fie criptate.
Intenția mea este să folosesc aes 256 pentru a cripta fișierele și să folosesc cheia publică rsa pentru a cripta cheia aes.
Pentru a cripta conținutul fișierului, voi crea un fișier „seif” care conține:
în text clar:
rsaIV
rsaSare
aes256Iv
aes256Sare
articole criptate:
# generați, criptați și stocați aeskey cu cheia publică rsa
aesKey = gen aesKey
encRsa[aesKey] folosind rsaPubKey, rsa256Iv, rsa256Salt
# generați, criptați și stocați macKey folosind cheia aes
aesMacKey = gen aesMacKey
încAes[aesMacKey] folosind aesKey, aesIV,aesSalt
#generați, criptați și stocați cheia corporală folosind cheia aes
aesBodyKey = gen aesKey
encAes[aesBodyKey] folosind aesKey, aesIV, aesSalt
# criptați/stocați fișierul folosind cheia aes
encBody = encAes256[fișier] folosind aesBodyKey, aes256Iv, aes256Salt
# generați mac din corpul criptat
macOfEncBody = mac[encBody]
# criptați, stocați mac folosind aes
encAes256[macOfEncBody] folosind aesMacKey, aes256IV, aes256Salt
Am folosit trei chei aes aici. Înțeleg că tastele mac și body aes trebuie să fie diferite. Aș putea reutiliza cheia principală aes pentru a cripta corpul și cheia mac și pentru a elimina cheia de corp?
https://en.wikipedia.org/wiki/Authenticated_encryption (Criptați Mac-ul)
Am împărțit aes IV și Salt între cele trei taste, este OK sau am nevoie de un salt/iv unic pentru fiecare tastă?