Puncte:5

O imagine fizică arbitrară poate fi o cheie?

drapel ng

Să presupunem o imagine fizică secretă arbitrară¹, cum ar fi un Polaroid chimic fabricat privat⢠similar cu acesta cabluri

Există o modalitate fezabilă și sigură prin care această imagine fizică să poată fi utilizată ca cheie criptografică, echivalentă funcțional cu o cheie AES sau cu o cheie privată RSA, fără a „însoți² alte date digitale” dincolo de imaginea fizică? Vom presupune că un scaner digitalizează imaginea fizică la fiecare utilizare, iar restul este gestionat digital.

Poate dorim să distingem 4 cazuri de utilizare

  • Criptarea și decriptarea simetrică a mesajelor
  • Autentificare și verificare simetrică a mesajelor
  • Decriptarea asimetrică a unui text cifrat pentru un mesaj secret, criptat folosind o cheie publică făcută anterior
  • Semnătura asimetrică/digitală a unui mesaj, verificabilă public folosind o cheie publică presupusă autentică.

Pentru asimetric, există problema că, spre deosebire de cheile private tradiționale, imaginea fizică nu poate conține cheia publică, care trebuie pregătită separat (într-o scanare independentă).

Să presupunem că vrem cel puțin³ securitate CPA și securitatea semnăturii EUF-CMA; și suntem gata să tolerăm că criptogramele și cheile publice sunt mari, algoritmii lenți și că decriptarea legitimă sau verificarea semnăturii eșuează cu o probabilitate scăzută, dar vizibilă.

Dacă acest lucru nu este posibil (nu cunosc o metodă), pot fi publice „alte date digitale însoțitoare” necesare? Trebuie să avem încredere în integritatea sa? Cât de mare trebuie să fie pentru diferite tipuri de imagini fizice, inclusiv date biometrice (presupuse private)? Ce denumiri standard au aceste „alte date”?

Actualizare târzie (2021-09-08): Acum mă întreb dacă pentru cripto simetric am putea folosi combinația de


¹ Întrebarea a fost pusă inițial pentru datele biometrice presupuse private și achiziționate într-un mod acceptabil din punct de vedere social. Să zicem, o scanare a retinei și există o metodă de nefalsificat pentru a recunoaște scanerele de retină sigure dintre cele care vor păstra o copie a scanării sau vor arde utilizatorul, iar oftalmologii nu au păstrat arhivele, iar rotația cheilor a fost inutilă. Motivul principal pentru care am menționat biometria a fost respingerea acesteia pentru a fi utilizată ca înlocuire directă a unei chei criptografice, cu argumente de securitate dure, mai degrabă decât atingerea prost a obiectivelor funcționale.

² Prin „însoțire” înțeleg păstrat de-a lungul imaginii, cu aceeași secretizare și integritate. Întrebarea exclude astfel de ex. făcând semne pe imaginea fizică.Dar încorporarea în textul cifrat a unor date generate de o scanare a imaginii fizice ar fi un joc.

³ Ne-am dori, de asemenea, ca criptarea să rămână sigură, presupunând că un adversar poate trimite texte cifrate arbitrare unui oracol de decriptare și să cunoască dacă decriptarea a avut succes sau nu. Acest lucru echivalează cu securitatea CCA.

â´ Principala problemă este că rezultatul unei scanări variază, iar niciun algoritm nu poate repara (în ambele sensuri ale termenului) aceasta (cel puțin, pentru toate imaginile arbitrare) în ceva direct utilizabil ca cheie într-un criptosistem standard, fără niște „alte date”. suspectez extractoare (robuste?) fuzzy poate ajuta într-o anumită măsură, dar recunosc că cunoștințele mele despre ele sunt în sine neclare. Prin urmare, pare imposibil să se definească o funcție care să transforme scanările într-o cheie pentru un criptosistem standard simetric nemodificat, cum ar fi AES-CTR sau AES-GCM, și să o facă în siguranță și să funcționeze în mod acceptabil și fiabil. Pentru a ilustra dificultatea am scanat o fotografie (nu cea de mai sus), de 5 ori, folosind același scaner cu aceeași setare (alb și negru 8 biți), doar mutând imaginea la fiecare scanare și mutând manual un dreptunghi de selecție de dimensiune constantă. Iată scanările. Cred că orice algoritm determinist care transformă aceste scanări într-o cheie stabilă va trebui fie să conțină date extrase dintr-una dintre scanări pentru a obține rezultate stabile pentru celelalte (și nu va funcționa în mod fiabil pentru majoritatea celorlalte seturi de scanări realizate din imagini diferite), sau va avea entropie insuficientă în ieșire.

fgrieu avatar
drapel ng
Comentariul anterior a fost interesant, dar învechit sau devenind lung. Au fost [mutate la chat](https://chat.stackexchange.com/rooms/128733/discussion-on-question-by-fgrieu-can-a-physical-image-be-a-key), ceea ce este potrivită pentru discuție.
jjj avatar
drapel cn
jjj
Câtă toleranță este necesară? Când vă înțeleg bine, este posibil să nu presupunem că este posibil să facem din nou exact aceeași poză
fgrieu avatar
drapel ng
@jjj: Nu știu cum să exprim pur și simplu „câtă toleranță este nevoie”. În linii mari, vreau ceva sigur și cu o fiabilitate acceptabilă. Poate că mai târziu înseamnă rata de eșec de
Puncte:4
drapel in

Vă rog, permiteți-mi să confirm că problema majoră este citirea zgomotoasă a informațiilor cheii private, astfel încât majoritatea schemelor cripto (toate binecunoscute) ar eșua. Corectarea erorilor este zona bine stabilită care are matematica/instrumentele adecvate pentru a gestiona o astfel de problemă.

Pentru o semnătură cu „cheie privată zgomotoasă”, s-ar evita corecția efectivă, concentrându-se pe deciziile de „distanță mică/metrică” asupra datelor private în timpul verificării. O schemă specială de corectare a erorilor, codurile Goppa, ar putea fi convenabilă de combinat cu protocolul Schnorr pentru a obține o astfel de semnătură, IACR 2008/359.

Asemănarea secvenței ar putea fi o altă măsurătoare, uneori numită Short Tandem Repeat (STR), și există câteva baze de date criminalistice de identificare STR. S-ar putea aborda o astfel de metrică cu un model polinom caracteristic secvență și contorizare de inserare/ștergere (appartenarea setului). Având secvențe înlocuite cu polinoame, s-ar combina cu Schnorr obținând o dovadă a asemănării ADN-ului, IACR 2008/357.

Reprezentarea grafică polinomială a fost un precursor pentru polinomul caracteristic secvenței (IACR 2008/363 și MFCS 2012), realizarea izomorfismului grafic, hamiltonicității și dovezilor de colorare cu provocări „mari” (nu binare ca 0 sau 1); încă nu există erori sau valori de similaritate.

Polinoamele secrete ar invita un protocol asemănător Schnorr cu polinoame de grad mai mare (mai mult decât liniare, de grad 1) în provocarea verificatorului. În cele din urmă, toate rezultatele menționate ar necesita un ajutor/bibliotecă de algebră computerizată implementată pentru a gestiona acele polinoame de grad superior.

fgrieu avatar
drapel ng
Vă mulțumim pentru confirmare și referințe la munca dvs. în domeniu. Aș aprecia dacă ați putea clarifica dacă luați în considerare răspunsul la întrebarea mea principală/prima (posibilitatea de a evita în întregime „datele suplimentare”) este da sau nu, poate distingând criptarea simetrică, criptarea cu cheie publică și semnătura, dacă este necesar. De asemenea, dacă sunt necesare „date suplimentare” pentru „Corectarea erorilor”, este mai puțin clar dacă este vorba doar despre asta sau dacă există ceva cripto pe deasupra; dacă poate fi public; dacă trebuie de încredere pentru a evita atacul; și dacă există un nume standard pentru el.
Vadym Fedyukovych avatar
drapel in
Ei bine, criptarea cu „chei zgomotoase” mi se pare mai complexă decât semnătura/identificarea. Probabil ar însemna implementarea corectării complete a erorilor asupra datelor private cumva; nu era punctul meu de vedere (prioritatea).
Puncte:2
drapel in

Partea provocatoare este în principal despre procesarea imaginilor și nu foarte mult despre cripto. Doriți să extrageți din imagine suficientă entropie într-un mod fiabil.

Are foarte mult de-a face cu modul în care folosești imaginea și modelul adversarului tău. Dacă adversarul tău nu știe nimic despre imagine, unele caracteristici simple și grosiere ar putea fi suficiente, dacă adversarul tău știe multe despre imagine, de exemplu, a aruncat o privire asupra ei sau știe aproximativ unde a fost luată, trebuie să fii mai atent. despre ce informații sunt extrase din imagine și va trebui să utilizați caracteristici de imagine cu granulație mai fină, care vor fi greu de extras într-un mod stabil.

Dacă de fiecare dată când imaginea este utilizată, aceasta este scanată în același scaner de înaltă calitate, iar între utilizări este păstrată în siguranță, astfel încât să nu se estompeze, să nu se încrețească sau să acumuleze praf, ar fi mai ușor să obțineți scanări foarte aproape una de cealaltă și să aibă doar aliniere automată simplă și discretizare (spațială și color) pentru a obține aproape aceeași secvență de biți de fiecare dată.

Atunci întrebarea este care este modelul de eroare pe care îl avem pentru rezultatele scanării? Ne așteptăm la zgomot gaussian? sare si piper? zgomot de aliniere? rotație? adăugarea de bucăți mari continue de zgomot? zgomot de iluminare? Fiecare tip de zgomot poate fi tratat diferit.

O schiță generală pentru o soluție: folosim tehnici de procesare a imaginii pentru a minimiza zgomotul pentru a trece la o reprezentare care le elimină majoritatea, apoi limitați spațiul la doar anumite puncte valide și alegeți cel mai apropiat punct valid de ceea ce avem pentru a reduce zgomotul. la zero.

Vom discretiza suficient de agresiv și vom alege destul de rare puncte valide pentru a ne permite să ajungem la zero zgomot în mod fiabil. În acest moment, ar trebui să avem în continuare mult mai mult decât lungimea cheii necesară, dar într-un spațiu încă strâns legat de imaginea originală și, ca atare, biții vor fi părtinși și corelați. Aplicarea unui hash criptografic acelor date ar trebui să le rezolve și să ne permită să avem suficient material cheie de înaltă calitate derivat în mod fiabil și să obținem aceeași cheie exact oricând scanați. Aceasta ar putea fi folosită, de exemplu, ca o cheie AES.

Dacă doriți să creați o cheie RSA, veți avea nevoie de mai mulți biți aleatori. Cu toate acestea, puteți extrage cât mai mulți biți puteți extrage, obținând totuși aceiași biți de fiecare dată și să-l utilizați pentru a genera un PRNG criptografic și a-l folosi pentru a genera o cheie privată RSA.

Edit: nu am încercat să implementez o soluție completă, dar am deschis un notebook și m-am jucat cu modelul de zgomot sugerat, zgomotul gaussian și deplasările cred că se corectează ușor, așa că am verificat ce se întâmplă dacă rotesc imaginea (cu fantezie). interpolări) cu 2 grade și rotire înapoi cu 1,8 grade Am obținut o diferență maximă (pe imaginea de mai sus) de 33%, aceasta este susținătoare pentru afirmația mea că, prin identificarea celei mai bune contrarotații și deplasări, scăderea rezoluției și cuantificarea agresivă ignorând marginile să poată obține 1-2 biți pe canal pe ~25 de regiuni de pixeli. Pentru imaginea de mai sus iese cel puțin 36K de biți, iar după hashing, pariez că va avea 128 de biți de entropie reală

Edit2: Am descărcat imaginile furnizate de scanări în tonuri de gri și m-am jucat cu ele, am aliniat semi-automat la rotit primele două imagini.

img = io.imread("scans/scan078.tif")
img2 = io.imread("scans/scan079.tif")
imgr = transform.rotate(img,unghi = -0,78)
imgr2 = transform.rotate(img2,angle = -0,805)
tr1=transform.rescale(imgr[:-10,:-6],0.1)[20:-20,20:-20]
tr2=transform.rescale(imgr2[10:,6:],0.1)[20:-20,20:-20]

Această citire rotește fiecare aliniere și decupează, eșantionează de 10 ori și decupează pentru a scăpa de marginile care pot avea artefacte. Acest lucru oferă o diferență maximă de mai puțin de 6% per valoare de pixel. Ceea ce este destul de bine. Cu toate acestea, această diferență de 6% poate fi cu ușurință în jurul oricărei limite pe care o alegem, așa că chiar și cuantizarea agresivă nu dă 0 erori.

bin1 = tr1> 0,5
bin2 = tr2> 0,5

Acest lucru a dat o diferență în 103 biți din 27248 biți sau 0,37% Aceste erori par să fie răspândite în mod rezonabil. Această redimensionare și cuantificare agresivă pierde o mulțime de informații, dar probabil că avem încă suficiente. Cam asa arata imaginea: introduceți descrierea imaginii aici

Erorile sunt destul de bine răspândite (și putem oricând să aplicăm o permutare fixă ​​sau să folosim simboluri mai mari dacă este necesar). Deci, acum putem aplica orice pas de corectare a erorilor (de exemplu Reed Solomon), vom face doar pasul de decodare (de fapt nu am făcut asta) și ar trebui să obținem aceeași ieșire de la oricare dintre imagini cu probabilitate mare și să avem încă ~20K biți.

Dacă reducem de 5x în loc de 10x, obținem 816 biți diferiți. dar obțineți de 4 ori mai mulți biți, la 0,6% diferență. Pot să te joci cu asta și să găsești optimul.

De asemenea, probabil ne putem descurca mai bine la etapa de cuantizare și păstrăm mai multe informații în mod fiabil. Cuantizarea agresivă pe care am folosit-o va funcționa doar pentru fotografii echilibrate rezonabil, o imagine supraexpusă va ieși cu o singură valoare. Am putea adăuga preprocesare pentru a gestiona acest scenariu.

fgrieu avatar
drapel ng
Comentariile nu sunt pentru discuții extinse; această conversație a fost [mutată în chat](https://chat.stackexchange.com/rooms/129266/discussion-on-answer-by-meir-maor-can-an-arbitrary-physical-image-be-a- cheie).
Puncte:2
drapel es

Dacă folosești cel puțin 7 amestecuri de pușcă pentru a randomiza un pachet de 52 de cărți și pentru a face o fotografie a pachetului întins suficient de mult astfel încât fiecare literă/suită să fie clar vizibilă, ceea ce vă va oferi un (registru2 (52!)) == cheie secretă de 225 de biți pentru utilizare în criptarea simetrică. Apoi ați putea folosi cheia stretching pentru a vă duce puțin mai sus, dacă este necesar.

Ați putea veni cu scheme similare atâta timp cât aveți suficient control asupra elementelor fotografiate pentru a vă asigura că nu există ambiguitate. De exemplu, puteți arunca o cutie de scobitori pe podea și apoi reglați manual fiecare scobitoare astfel încât să fie aproximativ doar la un unghi de 0, 45 sau 90 de grade înainte de a face o fotografie. Extragerea cheii ar folosi apoi unghiul fiecărei scobitori la cel mai apropiat 45 de grade.

fgrieu avatar
drapel ng
Este adevărat. De asemenea, putem codifica o cheie într-un cod QR. Nici unul nu răspunde cu adevărat la întrebare așa cum am vrut-o. Am adăugat acum „arbitrare”
knaccc avatar
drapel es
@fgrieu Sunt de acord că nu poate fi folosit pe o imagine arbitrară.Cu toate acestea, rezolvă problema de a permite realizarea unei fotografii fără utilizarea asistenței computerului, ceea ce nu ar fi cazul dacă ați fotografia pur și simplu un cod QR.
fgrieu avatar
drapel ng
Buna observatie! Este o modalitate interesantă de a genera și codifica manual o cheie și de a o transmite ca imagine care poate fi apoi citită de mașină.

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.