Rabinin allekirjoituksen todennäköisyyskaavio

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 6. helmikuuta 2019 tarkistetusta versiosta . tarkastukset vaativat 8 muokkausta .

Rabinin todennäköisyyspohjainen allekirjoitusmenetelmä  on Michael O. Rabinin vuonna 1979 alun perin ehdottama digitaalinen allekirjoitusmenetelmä [1] . Rabinin allekirjoitusmalli oli yksi ensimmäisistä ehdotetuista digitaalisista allekirjoitusmenetelmistä, ja se on ainoa, joka yhdistää suoraan allekirjoituksen väärentämisen monimutkaisuuden kokonaislukujen tekijöiden jakamisongelmaan . Rabinin allekirjoitusalgoritmi ei sovellu satunnaiseen oraakkelilaskentamalliin , jossa oletetaan, että kokonaislukujen tekijöiden muodostusongelma on ratkaisematon. Rabinin allekirjoitusjärjestelmä liittyy myös läheisesti Rabinin salausjärjestelmään .

Alkuperäinen algoritmi

Alkuperäinen algoritmi ei käytä hash-funktioita ja sitä pidetään epäluotettavana. [2]

Turvallinen ja yksinkertaistettu algoritmi

Turvallinen algoritmi [3] perustuu törmäyksenkestävään hash-funktioon .

Useimmissa näkymissä algoritmi on yksinkertaistettu valitsemalla . Oletetaan, että hajautusfunktio tulosbittien lukumäärällä on satunnainen oraakkeli ja algoritmi toimii seuraavasti:

Avaimen sukupolvi
  1. Valitaan alkuluvut , joista jokainen on suunnilleen bitin kokoinen, ja mod 4 on yhtä suuri kuin 3. Seuraavaksi lasketaan tulo .
  2. Julkinen avain tässä tapauksessa on .
  3. Yksityinen avain on pari .
Allekirjoitus
  1. Viestin allekirjoittamista varten valitaan ja lasketaan satunnaisluku .
  2. Jos ei ole neliömoduuli , valitaan uusi arvo .
  3. Sen jälkeen löydetään yksi x-arvo, joka on yhtälön ratkaisu .
  4. Viestin allekirjoitus on pari .
Tutkimus
  1. Viestin ja allekirjoituksen perusteella todentaja suorittaa laskelmia ja tarkistaa sitten, että ne ovat yhtä suuret.

Muistiinpanot

Joissakin algoritmin toteutuksissa arvoa ei käytetä. Sen sijaan on mahdollista kertoa hash-arvo kahdella numerolla a tai b ominaisuuksilla ja , jossa tarkoittaa Legendre-symbolia . Tällöin mille tahansa modulolle vain yksi neljästä numerosta on neliön muotoinen modulo , ja juuri tämä numero valitaan viestin digitaaliseen allekirjoitukseen.

Algoritmin yksinkertaistamiseksi entisestään sinun on muutettava viestiä, kunnes allekirjoitus läpäisee vahvistuksen.

\\ Viestinmuutostoiminto allekirjoituksen vahvistukselle def root ( m : str , p , q ) : while True : x = h ( m ) sig = pow ( p , q - 2 , q ) * p * pow ( x , ( q ) _ + 1 ) / 4 , q ) sig = ( pow ( q , p - 2 , p ) * q * pow ( x , ( p + 1 ) / 4 , p ) + sig ) % ( nrabin ) if ( sig * sig ) ) % nrabin == x : print ( "Kirjoita laajennettu viesti tiedostoon m.txt" ) f = open ( 'm.txt' , 'w' ) f . kirjoita ( m ) f . sulje () tauko m = m + ' ' paluu sig

Turvallisuus

Jos hash-funktio on satunnainen oraakkeli, eli sen tulos on todella satunnainen paikassa , niin allekirjoituksen väärentäminen mille tahansa viestille on yhtä vaikeaa kuin satunnaiselementin neliöjuuren laskeminen kohteesta .

Sen todistamiseksi [4] , että satunnaisen neliöjuuren saaminen on yhtä vaikeaa kuin tekijöiden laskeminen, on huomattava, että useimmissa tapauksissa neliöjuuria on neljä, koska sillä on kaksi neliöjuurta modulo ja kaksi neliöjuurta modulo , ja jokainen pari antaa neliöjuuren modulo kiinalaisen jäännöslauseen mukaan . Joillakin juurilla voi olla sama arvo, mutta tämän todennäköisyys on erittäin pieni.

Jos on mahdollista löytää kaksi erilaista neliöjuurta niin, että mutta , niin tämä johtaa välittömästi tekijöihin , koska alkutekijät ovat jaollisia : llä , mutta eivät jaollisia. Joten laskelma johtaa ei-triviaaliin tekijöihin .

Nyt oletetaan, että on olemassa tehokas algoritmi ainakin yhden neliöjuuren löytämiseksi. Sitten valitaan satunnainen modulo ja neliötetään , algoritmin käytön jälkeen otetaan modulon neliöjuuri ja saadaan uusi juuri , joka todennäköisyydellä 50 % .

Katso myös

Muistiinpanot

  1. Digitalisoidut allekirjoitukset ja julkisen avaimen toiminnot yhtä vaikeasti hoidettavissa kuin faktorointi  (linkkiä ei ole saatavilla)
  2. | Michele Elia, Davide Schipani, On the Rabin Signature c.1-3 . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 22. syyskuuta 2019.
  3. | Michele Elia, Davide Schipani, On the Rabin Signature n.5-9 . Haettu 13. joulukuuta 2019. Arkistoitu alkuperäisestä 22. syyskuuta 2019.
  4. Digitaaliset allekirjoitukset ja julkisen avaimen toiminnot yhtä vaikeasti hoidettavissa kuin faktorointi c.15-19  (linkki ei ole käytettävissä)

Kirjallisuus

  • Michele Elia, Davide Schipani, On the Rabin Signature , 2011 PDF
  • Buchmann, Johannes. Einführung in die Kryptographie . toinen painos. Berliini: Springer, 2001. ISBN 3-540-41283-2
  • Menezes, Alfred; van Oorschot, Paul C.; ja Vanstone, Scott A. Handbook of Applied Cryptography . CRC Press, lokakuu 1996. ISBN 0-8493-8523-7
  • Rabin, Michael. Digitalisoidut allekirjoitukset ja julkisen avaimen toiminnot yhtä vaikeasti hoidettavissa kuin faktorointi (PDF-muodossa). MIT Laboratory for Computer Science, tammikuu 1979.
  • Scott Lindhurst, Shankin algoritmin analyysi neliöjuurien laskemiseksi äärellisissä kentissä. julkaisussa R Gupta ja KS Williams, Proc 5th Conf Can Nr Theo Assoc, 1999, osa 19 CRM Proc & Lec Notes, AMS, elokuu 1999.
  • R Kumanduri ja C Romero, Number Theory w/ Computer Applications, Alg 9.2.9, Prentice Hall, 1997. Todennäköisyys neliöjuurelle neliöjuurelle modulo a alkuluku.

Linkit


Lähde

Smart N. Kryptografia. - M .: Technosfera, 2005. S. 525.