/ / Použitie implementácie AES na HElib; zlyháva funkcia addCtxt - c ++, šifrovanie, kryptografia, aes

Využívanie implementácie AES na HElib; funkcia addCtxt nefunguje - c ++, šifrovanie, kryptografia, aes

Momentálne hrám s homomorfnou knižnicou HElib a mám problém s implementáciou AES.

V jednej ruke sa mi podarí jednoduché HEšifrovanie na čistom texte a vykonajte nejaké operácie na šifrovanom texte. Toto funguje dobre. Na druhej strane som na implicitáciu AES cez HElib použil dáta na šifrovanie a dešifrovanie a funguje to tiež dobre.

Teraz chcem byť schopný využiť všetku silu tejto implementácie: urobiť nejakú operáciu HE na dátach šifrovaných týmto AES.

Na jednoduchom HE šifrovaní sa robia operácienad objektom Ctxt, ale keď použijeme implementáciu AES, všetok šifrovací text je vektorom Ctxt a nemôžem prísť na to, ako by som mohol vektor využiť.

Ako príklad som si vzal Test_AES.cpp a používam rovnaké parametre na vytvorenie kontextu a vygenerovanie kľúča. (Tu uvediem iba tie časti, ktoré považujem za dôležité a za predpokladu, že túto knižnicu trochu poznáte, ale ak potrebujete celý kód, môžem Napíš to)

Najprv teda zašifrujem jednoduchý vektor 1.

Vec<uint8_t> ptxt(INIT_SIZE,nBlocks*16); //Vector of 1
vector<Ctxt> doublyEncrypted;
hAES.homAESenc(doublyEncrypted,encryptedAESkey,ptxt); // Encryption of the vector store
//in doublyEncrypted

Takže ako bežne hovorí knižnica, máme doublyEncrypted = Enc_HE (Enc_AES (myvector)).

Teraz dešifrovanie

hAES.homeAESdec(doublyEncrypted,encryptedAESkey);

Teraz je náš doublyEncrypted Enc_HE (myvector). V tomto okamihu by som mal byť schopný vykonať nejakú operáciu so svojím šifrovaným vektorom. Pretože doublyEncrypted je vektor Ctxt, skúsil som niečo ako:

for(long i=0;i<(long)doublyEncrypted.size();i++){
doublyEncrypted[i].addCtxt(doublyEncrypted[i]);
}

Ale keď to dešifrujem tajným kľúčom adekódovať to všetko, čo som dostal, je vektor 0 (mal by som dostať vektor 2). Skúšal som tiež pridať iný šifrovaný vektor, ale tam som dostal vektor nejakej náhodnej hexadecimálnej hodnoty.

Moja otázka teda znie, je možné pri tejto implementácii AES cez HElib vykonať nejakú operáciu na šifrovacom texte a či niekto túto knižnicu natoľko používa, aby si to myslel.

Vopred ďakujem!

odpovede:

1 pre odpoveď č. 1

Pre prípad, že by sa s tým niekto niekedy stretol:

Plagát je zjavne nepochopenýako funguje homomorfné šifrovanie. V príklade kódu najskôr šifrujú holý text homomorfne pomocou HElib. Tento šifrovací text je potom manipulovaný pomocou homomorfných vlastností do šifrovacieho textu, ktorý predstavuje AES šifrovanie holého textu. Pridanie niečoho k tomuto šifrovaniu AES zjavne prinesie nezmyselný výsledok. HElib magicky nemení AES na homomorfný kryptosystém.