Puncte:2

Este posibil să criptați fișierele bitmap .bmp folosind Stream Cipher Chacha20?

drapel in

Poate asta sună a o întrebare stupidă. Îmi pare rău pentru asta.

Am vrut doar să știu dacă este posibil să criptez un fișier imagine bitmap, cum ar fi *.BMP, și să generez textul cifrat, care este o imagine bitmap obscure în care fiecare pixel este aleatoriu (imaginea poate arăta ca un televizor analog fără antenă)?

Paul Uszak avatar
drapel cn
Vrei să spui doar să criptezi rasterul, astfel încât întregul fișier să rămână în continuare un .BMP valid?
akez avatar
drapel in
@Paul Uszak, da exact.
Puncte:1
drapel in

Da, este posibil să criptați o imagine BMP cu orice cifru de flux.

În primul rând, trebuie să tăiați primii 54 de octeți a imaginii BMP într-un alt fișier. În acest moment, începe partea de date. Apoi restul poate fi criptat cu orice cifru de flux. După aceea, înaintează antetul fișierului criptat.

Iată exemplul cu OpenSSL. Voi folosi AES cu modul CTR, în care modul CTR transformă orice cifru bloc într-un cifr de flux.

#/bin/bash
#fișierul original este tux.bmp
head -c 54 tux.bmp > tux_head.part
coada -c +55 tux.bmp > tux_data.part
openssl enc -aes-128-ctr -e -in tux_data.part -out aes-ctr-enc-data.part -K "01234567890123450123456789012345" -iv "000000000000000000000000000000000"
cp tux_head.part encrypted_tux.bmp
cat aes-ctr-enc-data.part >> encrypted_tux.bmp

Am folosit AES-CTR deoarece OpenSSL are ChaCha20-Poly1305 ca suită de criptare care este o criptare autentificată. Va adăuga etichetă, deci nu este utilă aici.


Imaginea de intrare

introduceți descrierea imaginii aici

Imaginea de ieșire

introduceți descrierea imaginii aici

Paul Uszak avatar
drapel cn
Are nevoie de `in` pentru a fi `-in`.
Paul Uszak avatar
drapel cn
Și există o ciudățenie. Ai încercat asta? Al meu apare cu o nuanță verde. Este aceasta o „funcție” a formatului BMP?
kelalaka avatar
drapel in
@PaulUszak Am corectat, testat și am adăugat rezultatul în răspuns, Ați putea verifica cu fișierul dvs.?
Paul Uszak avatar
drapel cn
Nu. Tocmai am făcut-o pe Tux și iese cu aceeași nuanță verde, nu cu stilul pe care îl aveți :-( Bănuiesc că sunt opțiuni de compatibilitate cu GIMP, deoarece am folosit-o pentru a-mi crea BMP-urile. Criptarea funcționează perfect totuși :-) O voi lăsa aici. Răspuns bun.
kelalaka avatar
drapel in
Interesant. Am folosit un vizualizator, testat acum și cu GIMP. Functioneaza.
Paul Uszak avatar
drapel cn
https://pasteboard.co/K6biu3Y.bmp făcut ca `openssl enc -aes-128-ctr -e -in pic_data.part -out aes-ctr-enc-data.part -K "aaaaaa" -iv "bbbbbb" `
kelalaka avatar
drapel in
Ați combinat partea antet și rasterul criptat?
Paul Uszak avatar
drapel cn
Da. Oricum, spectatorii nu ar afișa un raster de date brute fără informații din antet. Ar trebui să importați brut, să setați dimensiuni și să atribuiți un format și o paletă. Este ceva ce am făcut prin GIMPing. Sunt special așa... Chat bot-ul strigă la mine.
akez avatar
drapel in
@Paul Uszak Chacha20 folosește o constantă de 128 de biți, o cheie de 256 de biți, un contor de 32 de biți și un nonce de 96 de biți. Ceea ce înseamnă că va crește dimensiunea fișierului, dar asta e în regulă pentru mine. Problema este că este încă posibil să afișați textul cifrat ca bitmap raster?
kelalaka avatar
drapel in
Acesta va crește dimensiunea fișierului la doar 96 de biți, nimic mai mult. Exemplul meu afișează deja rasterul ca imagine, ați verificat? Se poate folosi cu ușurință programarea pentru a realiza acest lucru.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.