Alfabetul masonic. Codificarea

Acasă / Dispozitivele mobile

MATEMATICĂ

Vestn. Ohm. un-ta. 2016. Nr 3. P. 7-9.

UDC 512,4 V.A. Romankov

OPȚIUNEA DE CRIPTARE SEMANTIC PUTERNICĂ BAZAT PE RSA*

Scopul principal al articolului este de a propune o altă modalitate de selectare a unuia dintre parametrii principali ai unei scheme de criptare bazată pe sistemul criptografic RSA, propus de autor în lucrările anterioare. Versiunea originală se bazează pe complexitatea de calcul a determinării ordinelor elementelor în grupuri multiplicative de inele modulare. Metoda propusă schimbă această bază într-o altă problemă insolubilă de a determina dacă elementele grupurilor multiplicative ale inelelor modulare aparțin puterilor acestor grupuri. Un caz special al unei astfel de probleme este problema clasică de determinare a pătraticității unui reziduu, care este considerată dificilă din punct de vedere computațional. Această sarcină determină stabilitatea semantică sistem cunoscut Criptare Goldwasser-Micali. În versiunea propusă, puterea semantică a schemei de criptare se bazează pe complexitatea computațională a problemei de a determina dacă elementele grupurilor multiplicative de inele modulare aparțin puterilor acestor grupuri.

Cuvinte cheie: sistem criptografic RSA, criptare cu cheie publică, inel modular, reziduu pătratic, stabilitate semantică.

1. Introducere

Scopul acestei lucrări este de a introduce noi elemente pentru versiunea bazată pe RSA a schemei de criptare introdusă de autor în . Și anume: se propune o altă modalitate de precizare a subgrupurilor care apar în această diagramă. Această metodă conduce la înlocuirea problemei complexe de calcul de bază de determinare a ordinelor elementelor grupurilor multiplicative de inele modulare cu problema complexă de calcul a introducerii unor puteri date ale acestor grupuri. Un caz special ultima problema este problema clasică de a determina dacă restul unui element al grupului multiplicativ al unui inel modular este pătratic.

Sistemul de criptare cu chei publice RSA a fost introdus de Rivest, Shamir și Adleman în 1977. Este utilizat pe scară largă în întreaga lume și este inclus în aproape toate manualele de criptografie. În ceea ce privește acest sistem și puterea sa criptografică, vezi, de exemplu.

Versiunea de bază a sistemului este deterministă și din acest motiv nu are proprietatea secretului semantic, cel mai important indicator al puterii criptografice a unui sistem de criptare cu cheie publică. Prin urmare, în practică, sunt utilizate variante ale sistemului, al căror scop este introducerea unui element probabilistic în acesta și, prin urmare, asigurarea îndeplinirii proprietății secretului semantic.

Instalare: platformă de criptare

Fie n produsul a două numere prime mari distincte p și q. Inelul rezidual Zn este ales ca platformă pentru sistemul de criptare. Modulul n și platforma Zn sunt elemente deschise ale sistemului, numerele p și q sunt secrete.

* Studiul a fost susținut de Fundația Rusă pentru Cercetare de bază (proiect 15-41-04312).

© Romankov V.A., 2016

Romankov V.A.

Funcția Euler se notează cu φ:N ^ N, în în acest caz, luând valoarea φ(n)= (p-1)(q-1). Astfel, ordinea grupării multiplicative Z*n a inelului Zn este (p-1)(q-1). Referitor la aceste concepte, vezi, de exemplu.

În continuare, sunt selectate două subgrupuri M și H ale grupului Z*n al perioadelor coprime r și, respectiv, t. Se propune definirea acestor subgrupe prin elementele lor generatoare M = gr(g1,...,gk), H = gr(j1,...,hl). Reamintim că perioada t(G) a unui grup G este cel mai mic număr t astfel încât dr = 1 pentru orice element geG. Perioada grupului Z*n este numărul t (n), egal cu cel mai mic multiplu comun al numerelor p-1 și q-1. Subgrupurile M și H pot fi ciclice și definite de un element generator. Elementele generatoare ale subgrupurilor M și H sunt considerate deschise, în timp ce perioadele subgrupurilor r și t sunt considerate secrete.

În și se explică cum să se efectueze eficient selecția specificată a subgrupurilor M și H, cunoscând parametrii secreti p și q. În plus, puteți seta mai întâi r și t, apoi selectați p și q și abia apoi efectuați acțiuni suplimentare. Rețineți că construcția elementelor unor ordine date în câmpuri finite se realizează printr-o procedură eficientă standard, descrisă, de exemplu. Trecerea la construirea elementelor de ordine date în grupele multiplicative Z*n ale inelelor modulare Zn se realizează într-un mod evident folosind teorema chineză a restului sau . Instalare: selecția cheilor Cheia de criptare e este orice număr natural coprim la r Cheia de decriptare d = ^ se calculează din egalitate

(te)d1 = 1 (modr). (1)

Cheia d există deoarece parametrul d1 este calculat datorită primei reciproce a lui te și r. Cheia e este publică, cheia d și parametrul d1 sunt secrete.

Algoritm de criptare Pentru a transmite un mesaj printr-o rețea deschisă - m element al subgrupului M, Alice selectează un element aleator h din subgrupul H și calculează elementul hm. Transmisia arata ca

c = (hm)e (modn). (2)

Algoritm de decriptare

Bob decriptează mesajul primit c după cum urmează:

cd=m(modn). (3)

Explicația decriptării corecte

Deoarece ed=1 (modr), există un întreg k astfel încât ed = 1 + rk. Apoi

cd = (hm)ed = (ht)edi m (mr)k = m (mod n). (4) Deci, elementul h se scrie ca element al subgrupului H sub forma valorii cuvântului de grup u(x1,.,xl) din elementele generatoare h1t... ,hl ale subgrupului H. De fapt, noi

alegeți cuvântul u(x1,.,xl), apoi calculați valoarea lui h = u(h1t..., hl). În special, aceasta înseamnă că elementele generatoare h1t... ,hl sunt deschise.

Puterea criptografică a schemei

Puterea criptografică a schemei se bazează pe dificultatea de a determina, din elementele generatoare date ale subgrupului H al grupului Z*n, perioada sau ordinea acestui subgrup. Dacă ordinea unui element ar putea fi calculată printr-un algoritm eficient, atunci prin numărarea ordinelor o rd(h1), ..., ord(hl) ale elementelor generatoare ale subgrupului H, am putea afla perioada lui t = t (H), egal cu cel mai mic multiplu comun al acestora. Acest lucru ar face posibilă eliminarea factorului de umbră h din această opțiune de criptare prin transformarea c1 = met(modri), reducând procedura de decriptare la sistemul clasic RSA cu o cheie publică de criptare et.

3. O altă modalitate de a defini subgrupul H

Această lucrare propune o altă opțiune pentru specificarea subgrupului H în schema de criptare luată în considerare. În primul rând, să luăm în considerare cazul său special, asociat cu problema recunoscută insolubilă a determinării pătraticității reziduului grupului Z*n. Reamintim că reziduul aeZ^ se numește pătratic dacă există un element xeZ*n astfel încât x2= a (modn). Toate reziduurile pătratice formează un subgrup QZ*n al grupului Z*n. Problema determinării pătraticității unui reziduu arbitrar al unui grup este considerată insolubilă din punct de vedere computațional. Cunoscutul sistem de criptare Goldwasser-Micali, puternic din punct de vedere semantic, se bazează pe această proprietate. Stabilitatea sa semantică este complet determinată de insolubilitatea problemei determinării pătraticității unui reziduu.

Să presupunem că parametrii p și q sunt aleși cu condiția p, q = 3 (mod 4), adică p = 4k +3, q = 41 +3. În schemele legate de natura pătratică a reziduurilor, această ipoteză pare naturală și apare destul de des. Dacă este valabil, maparea p:QZ*n ^ QZ*n, p:x^x2, este o bijecție.

Subgrupul de resturi pătratice QZ*n al grupului are un indice de 4 în Z*n, vezi, de exemplu. Ordinea sa o^^2^) este egală cu φ(n)/4 = (4k + 2)(41 + 2)/4= 4kl + 2k + 21 + 1, adică este un număr impar.

În schema de criptare de mai sus presupunem H = QZ*n. Orice element al subgrupului H are o ordine impară, deoarece perioada t(Z*n), egală cu cel mai mic multiplu comun al numerelor p - 1 = 4k +2 și q - 1 = 41 +2, este divizibil cu 2 , dar nu este divizibil cu 4. Maxim o posibilă alegere pentru M este un subgrup de ordinul 4 ale cărui elemente au ordine par 2 sau 4. Dacă există mod eficient calcularea ordinului (sau cel puțin a parității acesteia) element arbitrar

Opțiune de criptare puternică din punct de vedere semantic, bazată pe RSA

grupa 2*n, atunci problema determinării pătraticității unui reziduu este rezolvată efectiv. Dezavantajul schemei cu această alegere este puterea scăzută a spațiului de texte - subgrupa M. De fapt, schema dublează deja menționată binecunoscuta schemă Gol-Dwasser-Micali.

Avem oportunități mai mari cu următoarea noastră alegere. Fie s un număr prim care poate fi considerat suficient de mare. Fie p și q numere prime astfel încât cel puțin unul dintre numerele p - 1 sau q - 1 este divizibil cu s. Se explică că se poate alege s și apoi găsi efectiv p sau q cu proprietatea dată. Să presupunem că numărul p este căutat sub forma 2sx +1. x este schimbat și p rezultat este verificat pentru simplitate până când se dovedește a fi simplu.

Să definim un subgrup Н =, format din s-puteri ale elementelor grupului 2*n (pentru s = 2 acesta este subgrupul QZ*n). Dacă p = 52k + su + 1 și q = 521 + sv +1 (sau q = sl + V +1), unde numerele u și V nu sunt divizibile cu s, atunci ordinea o^(H) a subgrupului H având 2 în grupul *n indicele b2 (sau indicele s, dacă q = sl + V +1) este egal cu B2k1 + Bku + b1n + w>. Acest ordin este coprim la s. În special, aceasta înseamnă că elementele subgrupului H au ordine care nu sunt divizibile cu s. Dacă un element se află în afara subgrupului H, atunci ordinea sa este împărțită la s, deoarece s împarte ordinea grupului. Dacă problema calculării ordinii unui element din grupul 2*n (sau determinarea divizibilității acestuia cu s) este rezolvabilă efectiv în grupul 2*n, atunci problema intrării într-un subgrup este de asemenea rezolvată eficient în acesta.

Atunci când alegem subgrupul H în acest fel, avem posibilitatea de a alege ca M un subgrup ciclic de ordinul r = 52 (sau de ordinul s). Un astfel de subgrup există deoarece ordinea grupului 2*n, egal cu (p-1)^-1) = (52k + vi)^21 + sv) (sau (52k + vi)^1 + V)), este divizibil cu 52 (pe s). Pentru a specifica H, este suficient să specificați s. Mai mult, pentru orice alegere a subgrupului M avem M*2 =1. Dacă la decriptarea unui mesaj m este posibil să se obțină un element de forma tel, unde ed este coprim cu s, atunci prin găsirea numerelor întregi y și z astfel încât edy + s2z = 1, putem calcula teL = m.

Cu toate acestea, elementele generatoare ale subgrupului H nu sunt indicate la specificarea tipului, prin urmare, dacă există un algoritm pentru calcularea ordinelor elementelor grupului 2*n, acesta nu permite calcularea perioadei subgrupului

H, care ar fi fost posibil în versiunea originală din .

Puterea criptografică a versiunii schemei se bazează pe dificultatea de a determina ordinea elementului din grupul 2*n. În versiunea propusă, se bazează pe dificultatea determinării perioadei subgrupului Z*s. Puterea semantică Să se știe că c = (hm")e (modn) este un mesaj criptat de forma (2), unde heH, m" = m1 sau m" = m2. Criptarea este considerată puternică din punct de vedere semantic dacă este imposibilă. pentru a determina în mod eficient ce îi corespunde all -does c. Răspunsul corect mt (i = 1 sau 2) se obține dacă și numai dacă cmje aparține lui H. Aceasta înseamnă că criptarea este puternică din punct de vedere semantic dacă și numai dacă problema apariției în H este efectiv indecidabil în cazul analizat în acest articol este problema intrării în subgrupul de s-reziduuri Z*s. În cazul special s = 2, se obține problema binecunoscută, considerată insolubilă, a intrării în Q2 *n, pe care se bazează puterea semantică a sistemului de criptare Goldwasser-Micali și a unui număr de alte sisteme de criptare.

LITERATURĂ

Romankov V. A. Nou sistem de criptare cu chei publice puternic semantic bazat pe RSA // Matematică discretă aplicată. 2015. Nr 3 (29). pp. 32-40.

Rivest R., Shamir A., ​​​​Adleman L. O metodă pentru obținerea semnăturilor digitale și a criptosistemelor cu cheie publică // Comm. ACM. 1978. Vol. 21, nr 2. P. 120126.

Hinek M. Criptanaliza RSA și variantele sale. Boca Raton: Chapman & Hall/CRC, 2010.

Song Y. Y. Atacurile criptoanalitice asupra RSA. Berlin: Springer, 2008.

Ștampila M., R.M. scăzut. Criptanaliza aplicată. Ruperea cifrurilor în lumea reală. Hoboken: JohnWiley&Sons, 2007.

Roman"kov V.A. Nouă criptare probabilistică cu cheie publică bazată pe criptosistemul RAS // Croups, Complexity, Cryptology. 2015. Vol. 7, No. 2. P. 153156.

Romankov V.A. Introducere în criptografie. M.: Forum, 2012.

Menezes A., Ojrschot P.C., Vanstone S.A. Manual de Criptografie Aplicată. Boca Raton: CRC Press, 1996.

Goldwasser S., Micali S. Criptarea probabilistică și cum să joci poker mental păstrând secrete toate informațiile parțiale // Proc. 14th Symposium on Theory of Computing, 1982, pp. 365-377.

Designerii și dezvoltatorii web le place să arunce jargon și expresii abstruse care uneori ne sunt greu de înțeles. Acest articol se va concentra pe codul semantic. Să ne dăm seama ce este!

Ce este codul semantic?

Chiar dacă nu ești web designer, probabil știi că site-ul tău a fost scris în HTML. HTML a fost inițial conceput ca un mijloc de a descrie conținutul unui document, mai degrabă decât ca un mijloc de a-l face să arate plăcut din punct de vedere vizual. Codul semantic revine la acest concept original și încurajează designerii web să scrie cod care descrie conținutul, mai degrabă decât cum ar trebui să arate. De exemplu, titlul paginii poate fi programat după cum urmează:

Acesta este titlul paginii

Acest lucru ar face titlul mare și îndrăzneț, dându-i aspectul unui titlu de pagină, dar nu există nimic în el care să-l descrie drept „titlu” în cod. Aceasta înseamnă că computerul nu îl poate recunoaște ca titlu al paginii.

Când scriem un titlu semantic, pentru ca computerul să-l recunoască ca „titlu”, trebuie să folosim următorul cod:

Acesta este titlul

Aspectul antetului poate fi determinat în dosar separat, care se numește „Foi de stil în cascadă” (CSS), fără a interfera cu codul HTML descriptiv (semantic).

De ce este important codul semantic?

Capacitatea computerului de a recunoaște corect conținutul este importantă din mai multe motive:

  • Multe persoane cu deficiențe de vedere se bazează pe browserele de vorbire pentru a citi paginile. Astfel de programe nu vor putea interpreta paginile cu acuratețe decât dacă au fost explicate clar. Cu alte cuvinte, codul semantic servește ca mijloc de accesibilitate.
  • Motoarele de căutare trebuie să înțeleagă despre ce este conținutul tău pentru a te clasifica corect în motoarele de căutare. Codul semantic are reputația de a vă îmbunătăți destinațiile de plasare. motoarele de căutare, deoarece este ușor de înțeles de „roboții de căutare”.

Codul semantic are și alte avantaje:

  • După cum puteți vedea din exemplul de mai sus, codul semantic este mai scurt și încărcarea este mai rapidă.
  • Codul semantic facilitează actualizările site-ului, deoarece puteți aplica stiluri de antet pe tot site-ul, mai degrabă decât pe o pagină cu pagină.
  • Codul semantic este ușor de înțeles, așa că dacă un nou designer web preia codul, îi va fi ușor de analizat.
  • Deoarece codul semantic nu conține elemente de design, atunci modificați aspect site-ul web este posibil fără recodificarea întregului cod HTML.
  • Încă o dată, deoarece designul este păstrat separat de conținut, codul semantic permite oricui să adauge sau să editeze pagini fără a avea nevoie de un ochi bun pentru design. Pur și simplu descrieți conținutul, iar CSS determină cum va arăta acel conținut.

Cum vă puteți asigura că un site web folosește cod semantic?

Pe în acest moment nu există niciun instrument care să poată verifica codul semantic. Totul se reduce la verificarea culorilor, fonturilor sau machetelor din cod în loc să descrie conținutul. Dacă analiza codului sună înfricoșător, un punct de plecare excelent este să-l întrebați pe designerul dvs. web - codifică având în vedere semantică? Dacă se uită la tine în gol sau începe să vorbească ridicol, atunci poți fi sigur că nu codifică în acest fel. În acest moment trebuie să decizi dacă îi dai o nouă direcție în munca lui, sau îți găsești un nou designer?!

Semantica codului HTML este întotdeauna un subiect fierbinte. Unii dezvoltatori încearcă să scrie întotdeauna cod semantic. Alții critică adepții dogmatici. Și unii chiar nu au idee ce este și de ce este nevoie de el. Semantica este definită în HTML în etichete, clase, ID-uri și atribute care descriu scopul, dar nu specifică conținutul exact pe care îl conțin. Adică vorbim despre separarea conținutului și a formatului acestuia.

Să începem cu un exemplu evident.

Semantică proastă a codului

Titlul articolului
Și autorul
Inko Gnito.

Semantică bună a codului

Titlul articolului

Textul unui articol care a fost scris de cineva. Inko Gnito- autorul acesteia.

Indiferent dacă credeți că HTML5 este gata de utilizare sau nu, utilizarea

în acest caz va fi mai atractiv decât de obicei
indicând clasa. Titlul articolului devine titlu, cuprinsul devine paragraf, iar textul aldin devine eticheta. .

Dar nu totul este reprezentat atât de clar de etichetele HTML5. Să ne uităm la un set de nume de clase și să vedem dacă îndeplinesc cerințele semantice.

Nu cod semantic. Acesta este un exemplu clasic. Fiecare banc de lucru cu grilă CSS utilizează aceste tipuri de nume de clasă pentru a defini elementele grilei. Fie că este vorba de „yui-b”, „grid-4” sau „spanHalf” - astfel de nume sunt mai aproape de specificarea markupurilor decât de descrierea conținutului. Cu toate acestea, utilizarea lor este inevitabilă în majoritatea cazurilor când se lucrează cu șabloane de grilă modulare.

Cod semantic. Subsolul a căpătat o semnificație puternică în designul web. Aceasta este partea de jos a paginii, care conține elemente precum navigarea repetată, drepturile de utilizare, informațiile despre autor și așa mai departe. Această clasă definește un grup pentru toate aceste elemente fără a le descrie.

Dacă ați trecut la utilizarea HTML5, atunci este mai bine să utilizați elementul

în astfel de cazuri. Nota se aplică și tuturor celorlalte părți ale paginii web (antetul ar trebui să fie
, bară laterală -

© 2024 ermake.ru -- Despre repararea PC-ului - Portal de informații