Williams kryptosystem

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 20 december 2014; kontroller kräver 11 redigeringar .

Williams Cryptosystem  är ett krypteringssystem med offentlig nyckel skapat av Hugh Cowie Williams 1984.

Historik

Algoritmen utvecklades 1984 som ett alternativ till den mer kända RSA. Syftet med utvecklingen var att bli av med sårbarheterna i kryptosystemet.

Om algoritmen

För vilket kryptosystem som helst är det önskvärt att det bevisas att dess brytning har en beräkningskomplexitet som liknar beräkningskomplexiteten hos ett problem som för tillfället inte kan lösas inom en överskådlig tid. Liksom RSA, är Williams kryptosystem baserat på antagandet att det är svårt att faktorisera stora tal, och det har bevisats att för all krypteringstext som bryts med hjälp av preliminär kryptoanalys (som endast har den publika nyckeln), är det nödvändigt att faktorisera [ 1] , det vill säga lös ekvationen för och . Detta påstående har inte bevisats för RSA- systemet . Faktoriseringsproblemets beräkningskomplexitet är okänd, men den tros vara ganska hög. Men precis som RSA är Williams kryptosystem sårbart för en chiffertextattack.

Beskrivning av algoritmen

Williams systemalgoritm, även om den inte är beräkningsmässigt mer komplex än RSA, är mycket mer besvärlig att beskriva. Det finns ett lemma för den [2] , som kommer att beskrivas i avsnittet om den matematiska apparaten - den spelar en nyckelroll i detta kryptosystem.

Matematisk apparat

Till att börja med bör terminologin definieras - den är lånad från teorin om kvadratiska fält , men endast den mest grundläggande kunskapen krävs för ett kryptosystem. Tänk på elementet

där  är heltal och  är ett villkorligt element vars kvadrat är . Då kommer följande formler att vara giltiga:

Konjugatet av ett tal kallas

Vi definierar också funktioner som hjälper oss att uttrycka kraften i detta tal. Låta

då kan du uttryckas så här:

Det sista uttrycket är endast för att underlätta förståelsen. Eftersom funktionerna är definierade för par innehåller de inte . Om vi ​​nu antar att , då kan vi skriva följande återkommande relationer:

Dessa formler är utformade för att snabbt beräkna och . Sedan och , det beror inte heller på .

Lemma

Låta vara produkten av två udda primtal och ; är heltal som uppfyller ekvationen . Låt Legendre-symbolerna och tillfredsställa kongruenserna

.

Vidare, låt och Jacobi-symbolen vara lika med 1. Beteckna

och vi antar det och uppfyller jämförelsen

.

Under dessa antaganden

Skapa en nyckel

Först två primtal och väljs , och deras produkt beräknas . Med hjälp av uppräkning väljs ett nummer så att Legendre symboliserar och uppfyller de villkor som ställs i lemma. Sedan (även genom val) bestäms ett nummer så att Jacobi-symbolen

och Antal väljs på samma sätt som i lemmat:

Sedan väljs siffror som uppfyller de villkor som ställs i lemma. Vi väljer slumpmässigt, till exempel, och beräknar med formeln

Sedan  är den offentliga nyckeln och  är den privata nyckeln.

Kryptering

Alla beräkningar här är modulo . Notationen här betyder Låt oss representera klartexten som ett tal . Definiera och : om Jacobi-symbolen är lika med , då

och

annars definierar vi genom produkten

och

Då är det lätt att verifiera att Jacobi-symbolen

som verifieras genom direkt beräkning (i det andra fallet, med hänsyn till valet och multiplikativiteten för Jacobi-symbolen). Därefter hittar vi numret

Låt oss representera det i formen uppfyller de villkor som ställs i lemma. De uppfyller faktiskt byggvillkoren, och

Det följer av den sista formeln att

Efter att ha mottagit det, bör det krypteras med exponentiering  - resultatet kan representeras genom och som kan [3] snabbt (för antalet operationer i ordning ) hittas med återkommande formler. Låt oss presentera notationen

Då blir kryptotexten en trippel av siffror där

Dekryptering

Dekryptering är lättare. Beräknade först

vad en angripare kan göra. Men för den slutliga dekrypteringen är det nödvändigt att beräkna, som visas i lemma  - trots vad som hålls hemligt.

Siffran som skickas i meddelandet kommer att indikera vilket av tecknen som är korrekt - det som ger ett jämnt resultat eller det som ger ett udda. Siffran kommer att indikera om resultatet ska multipliceras med . Som ett resultat kommer vi att få numret

Och vi kan enkelt hitta källtexten, som kommer att slutföra dekrypteringsprocessen.

Säkerhet

Liksom RSA kan ett kryptosystem attackeras baserat på en vald chiffertext . Anta att en kryptoanalytiker har hittat någon algoritm som med sannolikhet gör det möjligt att dechiffrera kryptotexten. Då kan han göra följande:

1. Välj ett tal så att Jacobi-symbolen ; 2. Kryptera , men på ett sådant sätt som om den nämnda Jacobi-symbolen är lika med och , efter att ha mottagit kryptotexten vid utgången ; 3. Dekryptera den mottagna kryptotexten, få några .

Då med sannolikhet kan kryptoanalytikern få

eller

Det gör att du kan faktorisera och knäcka kryptosystemet.

Prestanda

Efter generering av nyckeln sker huvudberäkningarna när man höjer ett tal till en potens, och detta kan göras i modulo multiplikationer, som var och en sker i additionsoperationer, som i sin tur utförs i elementära additionsoperationer med konstant hastighet - dvs. , i , med samma hastighet, vilket är exponentieringen av en heltalsmodulo, som krävs för att använda RSA.

Exempel

Nyckelgenerering

Låt oss välja, till exempel, och , vems produkt är . Därför att

och

Du kan välja . Dessutom, om vi väljer , får vi

Vilket uppfyller satsens villkor. Nästa får vi

Och slutligen väljer vi exponenterna för kryptering och dekryptering: sedan

Kan välja

Kryptering

Låt originaltexten vara . Därför att

Vi har , och

Eftersom det är udda får vi . Efter att ha räknat och vi får

Således är chiffertexten en trippel .

Dekryptering

Nu ska du räkna ut :

Sedan beräknar vi också

Sedan måste då vara udda och

Med tanke på att den andra komponenten i chiffertexten är , drar vi slutsatsen att . I detta fall

.

Således fick vi , som var den ursprungliga klartexten.

Anteckningar

  1. Kim, 1992 .
  2. Williams, 1985 .
  3. Arto Salomaa - Public Key Cryptography, ed. Fred, 1995, ISBN 5-03-001991-X

Litteratur