NO326812B1 - Innretning og fremgangsmate for numerisk gruppeutgivelse, krypteringsinnretning og dekrypteringsinnretning - Google Patents

Innretning og fremgangsmate for numerisk gruppeutgivelse, krypteringsinnretning og dekrypteringsinnretning Download PDF

Info

Publication number
NO326812B1
NO326812B1 NO20025013A NO20025013A NO326812B1 NO 326812 B1 NO326812 B1 NO 326812B1 NO 20025013 A NO20025013 A NO 20025013A NO 20025013 A NO20025013 A NO 20025013A NO 326812 B1 NO326812 B1 NO 326812B1
Authority
NO
Norway
Prior art keywords
unit
group
vector
integer
output
Prior art date
Application number
NO20025013A
Other languages
English (en)
Other versions
NO20025013L (no
NO20025013D0 (no
Inventor
Yuichi Futa
Motoji Ohmori
Kaoru Yokota
Makoto Tatebayashi
Original Assignee
Panasonic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp filed Critical Panasonic Corp
Publication of NO20025013D0 publication Critical patent/NO20025013D0/no
Publication of NO20025013L publication Critical patent/NO20025013L/no
Publication of NO326812B1 publication Critical patent/NO326812B1/no

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme

Landscapes

  • Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

En numerisk gruppeutgivelsesenhet 100 er dannet av en første gruppebeslutningsenhet 110 som forsøksvis beslutter en første beslutningsgruppe VI som har n1 biter på 1, n2 biter på -1 og (n-n2-n2) biter på 0 som sitt gruppeelement og en gruppeelements omplasseringsenhet 120 som endrer gruppeelementet for den første beslutningsgruppe VI som er besluttet av den første gruppebeslutningsenhet 110 som er basert på et inngangs heltall X og som gir som utgang gruppen V.

Description

Bakgrunn for oppfinnelsen
(1) Oppfinnelsesfeltet
Foreliggende oppfinnelse angår en innretning til utgivelse av numeriske grupper der innretningen omformer et helt tall til en gruppe og angår særlig innretningen til utgivelse av de numeriske grupper benyttet til en krypteringsteknikk, en feilkorreksjonsteknikk og en digital signaturteknikk som en sikkerhetsteknikk for informasjoner.
(2) Beskrivelse av teknikkens stand
En privat kommunikasjonsmetode er en metode for å få kommunikasjon med en bestemt kommunikasjonspartner uten at noe av kommunikasjonens innhold lekker ut til noen andre. En digital signaturmetode er en kommunikasjonsmetode som retter kommunikasjonsinnhold til partneren og påviser at den som er opprinnelse til kommunikasjonen er selve personen. I denne signaturmetode benyttes det en krypteringsmetode som kalles offentlig nøkkelkryptering. Den offentlige nøkkelkryptering er en metode for enkel administrasjon av en krypteringsnøkkel som varierer fra hver kommunikasjonspartner når det finnes mer enn en partner noe som er en påkrevet og grunnleggende teknologi for å kommunisere med flere kommunikasjonspartnere. For kort å forklare dette er krypteringsnøkkelen i denne metode forskjellig fra dekrypteringsnøkkelen og dekrypteringsnøkkelen er behandlet som privat mens krypteringsnøkkelen er offentlig. Den offentlige nøkkelkryptering er beskrevet i detalj i "Moderen Encryption", Industry Book 1997 skrevet av Tatsuaki Okamoto og Hiroshi Yamamoto (i det følgende betegnet som "Litteratur 1").
Som en av den offentlige nøkkelkryptering finnes det en kryptering som kalles NTRU kryptering. I denne NTRU kryptering blir en kode for krypteringen liten i størrelse sammenlignet med en kryptering av elliptisk kurve kryptering. Den kan installeres i en lavytelses datamaskin for eksempel en datamaskin for hjemmebruk. Derfor har denne krypteringsmetode store muligheter i fremtiden.
Denne NTRU kryptering er beskrevet i detalj hos Jeffrey Hoffstein, Jill Pipher og Joseph H. Silverman, "NTRU: A ring based public key cryptosystem", Lecture Notes in Computer Science, 1423, s. 267-288, Springer-Verlag, 1998 (betegnet som "Litteratur 2").
Her følger forklaringen på NTRU krypteringen.
I alminnelighet blir alle polynomer for f(X) uttrykt som:
I det følgende skal polynomet f(X) uttrykkes i forhold til en n-dimensjonal vektor (fo, fi, f2 ..., fN-i). Blant disse n-dimensjonale vektorer blir den vektor som har n 1 bit(er) av 1, n 2 bit(er) av -1 og andre (n-nl-n2) bit(er) av 0 uttrykt som L (n, ni, n2).
I denne NTRU kryptering blir dekrypteringsnøklene som er behandlet som privat nøkkel (i det følgende betegnet som en privat nøkkel), f (v) og Fp (v) uttrykt med en følgende formel. En kode som er knyttet til (v) som for eksempel f (v) og Fp (v) angir et polynom.
Den private nøkkel f(v)= et sett med polynomer Lf, et sett polynomer Lf=L (263, 51, 50).
Den private nøkkel Fp(v) = privat nøkkel f(v)"<!> mod p.
I korthet er et sett med polynomer Lf et sett med polynomer som har 51 biter på 1, 50 biter på -1 og 162 biter på 0 i sin faktor fo, fi, f2 ..., fjj-i. Den private nøkkel f er et polynom som tilhører settet med polynomer Lf. Dessuten er p et helt tall som for eksempel 3.
På den annen side blir den krypteringsnøkkel som er offentlig (i det følgende betegnet som en offentlig nøkkel), h(v) uttrykt i en følgende formel.
Offentlig nøkkel h(v) = privat nøkkel f{ v)' 1 x polynom g(v) (mod q).
Polynom g(v)= et sett med polynomer Lg = L (263,24,24).
Den offentlige nøkkel h(v) er her et polynom. Dessuten er q for eksempel et helt tall på 2<7>.
I NTRU krypteringen blir krypteringen utført basert på en følgende formel ved bruk av denne offentlige nøkkel h(v). I denne kryptering blir det utgitt en krypteringstekst el (v) for inngang av en melding ml (v).
Krypteringsteksten el (v) = p polynom ^ (v) x offentlig nøkkel h(v) + ml (v) (mod q)
polynom ^ (v) = et sett av polynomer L ^ = L (263,16,16).
Her blir polynomet ^ (v) valgt tilfeldig fra et sett med polynomer L ø.
I mellomtiden blir krypteringsteksten el (v) dekryptert med de følgende to trinn ved bruk av de nevnte private nøkler f (v) og Fp (v) og en melding ml' (v) fremkommer.
Det skal nevnes at for å bryte koden finnes det to angrepsmåter: passive angrep og aktive angrep. Kryptering som for eksempel RSA kryptering, EIGamal kryptering og NTRU kryptering er skapt basert på den antagelse at de bare blir utsatt for passive angrep. Disse passive angrep, de aktive angrep, RSA kryptering og EIGamal kryptering er beskrevet i detalj i Litteratur 1.
I den senere tid er det foreslått et teknologiopplegg som skaper sikkerhet og som omformer en generell krypteringsmetode til et opplegg for sikkerhet, i form av en forbedringsteknologi for krypteringsalgoritme som hever sikkerhetsnivået mot enhver type angrep.
Det finnes en metode som benytter en spredefunksjon som kalles FOSRT i teknikkopplegget for bedre sikkerhet.
FOSRT og hvorledes FOSRT blir benyttet i NTRU kryptering er beskrevet i detalj av Jeffrey Hoffstein og Joseph H. Silvermann, "Protecting NTRU Against Chosen Ciphertext and Reaction Attacks", NTRU Cryptosystems Technical Report #016,2000 (betegnet som "Litteratur 3"). Spredefunksjonen er beskrevet i detalj i Litteratur 1.
Det følgende skal forklare en konkret metode med FOSRT.
Krypteringen med denne FOSRT blir utført med de følgende 3 trinn og krypteringstekst E blir utgitt som inngang for meldingen M.
(Første trinn) Et tilfeldig tall RI blir sammenkjedet med meldingen M og den sammenkjedede melding M || RI fremkommer.
(Andre trinn) En spredefunksjonsverdi for meldingen M || RI fremkommer basert på spredefunksjonen.
(Tredje trinn) Meldingen M || RI og spredefunksjonen ha blir kryptert basert på krypteringsalgoritmen og en krypteringstekst E fremkommer.
I det følgende forklares dekryptering med FOSRT.
(Første trinn) Krypteringsteksten E blir dekryptert og det fremkommer en melding M||R1'.
(Andre trinn) En spredefunksjonsverdi ha' for meldingen M || RI' fremkommer basert på spredefunksjonen. (Tredje trinn) Kryptering blir utført basert på meldingen M || RI', spredefunksjonsverdien ha' og samme algoritme som ble benyttet for krypteringen og en krypteringstekst E' fremkommer.
(Fjerde trinn) Hvis krypteringsteksten E og krypteringsteksten E' ikke faller sammen gis det ingen utgang. Hvis de faller sammen blir meldingen M || RI' delt opp i meldingen M' og det tilfeldige tall RI' og den ønskede melding M' fremkommer.
En metode for kryptering og dekryptering når denne FOSRT blir anvendt på NTRU kryptering blir forklart som følger.
Krypteringen utføres gjennom 3 trinn og krypteringsteksten e (v) blir utgang for inngangen av meldingen M (v).
(Første trinn) En tilfeldig vektor R (v) blir sammenkjedet med meldingen M (v) og meldingen m (v) fremkommer. M(v) = M(v) || R(v).
(Andre trinn) En spredefunksjonsverdi H (m(v)) for meldingen m (v) blir beregnet basert på spredefunksjonen.
(Tredje trinn) Krypteringsteksten e (v) fremkommer basert på en formel, krypteringstekst e (v) = pH(m(v)) x offentlig nøkkel h(v)+m(v) (mod q).
På den annen side blir dekryptering av krypteringsteksten e (v) utført med de følgende fem trinn.
(Første trinn) Finn et polynom a(v) basert på a(v) = privat nøkkel f(v) x krypteringstekst e(v) (mod q).
(Andre trinn) Få en melding m'(v) basert på m'(v) = privat nøkkel Fp(v) x a(v) (mod p).
(Tredje trinn) Beregn en spredefunksjonsverdi H(m'(v)) for meldingen m'(v) og få en krypteringstekst e'(v) basert på krypteringsteksten e'(v) = pH (m'(v)) x offentlig nøkkel h(v) + m'(v) (mod q).
(Fjerde trinn) Kontroller om krypteringsteksten e'(v) passer sammen med krypteringsteksten e(v).
(Femte trinn) Hvis krypteringsteksten e'(v) faller sammen med krypteringsteksten e(v), del m'(v) = M'(v) || R'(v) der M'(v) er en dekryptert melding og R'(v) er en tilfeldig vektor og gir som utgang meldingen M'(v).
Som forklart ovenfor er i krypterings og dekrypteringsprosessene når FOSRT anvendes på NTRU kryptering nødvendig at spredefunksjonsverdiene, H(M(v)) og H(m'(v)) hører til et sett med polynomer Lø, for eksempel uttrykt som L (263,16,16).
Settet med polynomer Lø er knyttet til et sett med vektorer som har 16 biter på 1,16 biter på -1 og 231 biter på 0 blant sine faktorer fo, fi, f2..., fN-i-
Derfor blir det i tilknytning til spredefunksjonsverdien nødvendig å få den n-dimensjonale gruppe som består av tre verdier det vil si 16 biter på 1,16 biter på -1 og 231 biter på 0.
I krypteringsprosessen og dekrypteringsprosessen når FOSRT anvendes på NTRU kryptering er disse spredefunksjonsverdier H(m(v)) og H(m'(v)) et helt tall.
For å anvende FOSRT på NTRU kryptering må den n-dimensjonale gruppe som har n 1 bit(er) på 1, n2 bit(er) på -1 og andre element(er) som er -1 basert på spredefunksjonsverdiene, H(m(v)) og H(m'(v)) frembringes. (Her er n, ni og n2 positive hele tall).
Her må de følgende betingelser tilfredsstilles i metoden til å frembringe den n-dimensjonale gruppe basert på spredefunksjonsverdiene H(m(v)) og H(m'(v)).
(1) Få alltid samme utgang for samme inngang.
(2) Velbalansert fordeling av innganger og utganger.
(1) betyr at en forskjellig verdi ikke blir utgang for samme inngang.
(2) betyr at det ikke foreligger noe tilfelle der bare en bestemt utgangsverdi ofte er utgang for innganger. Når FOSRT blir anvendt på NTRU kryptering vil dekryptering ikke være mulig hvis både sender og mottaker ikke er i stand til å skape den n-dimensjonale gruppe for utgang. Hvis (1) ikke blir tilfredsstilt vil krypteringsmetoden i seg selv ikke gjennomføres. Dessuten hvis (2) ikke er tilfredsstilt vil balansen i utgangsfordelingen for spredefunksjonsinngangen ikke blir opprettholdt siden gruppen ikke er jevnt utgangsbasert på utgangsverdien for spredefunksjonsverdien. Derfor blir sikkerhetsnivået for spredefunksjonen redusert. Dermed blir sikkerhetsnivået for NTRU kryptering når FOSRT anvendes redusert.
Her blir en selvforklarende metode for å fa den n-dimensjonale gruppe som har 1 bit(er) på 1, n2 bit(er) på -1 og andre elementer som er 0 forklart.
Fig. 1 er et flytskjema for å vise metoden til frembringelse av den n-dimensjonale gruppe.
Denne omformingsmetode gir som inngang ni, n2 og et heltall X som en spredefunksjonsverdi og gir som utgangen den n-dimensjonale gruppe VJ som har ni bit(er) på 1, n2 bit(er) på -1 og den/de andre (n-nl-n2) bit(er) på 0. Nedenfor forutsettes det at det i te element (fra venstre) i gruppen VJ er VJ [i]. (Det skal påpekes at "i" er et helt tall fra 1 til n).
La først alle elementer i gruppen VJ være en gruppe på 0 (trinn S901).
Deretter, la en telleverdi cl for en teller cl' være 1 (trinn S902).
Deretter, la VJ [cl] = 1 (trinn S903).
Deretter, inkrementer telleverdien cl for telleren cl' (trinn S904).
Deretter avgjør om telleverdien cl er >nl (trinn S905). Hvis telleverdien cl ikke er >nl (nei i trinn S905) utfør en prosess for VJ [cl] = 1 på nytt (trinn S903).
Hvis telleverdien cl er >nl (ja i trinn S905) blir VJ [cl] = -1 (trinn S906).
Deretter, inkrementer telleverdien cl (cl<—cl+1) (trinn S907).
Deretter avgjør om telleverdien cl er >nl+n2 (trinn S908). Hvis telleverdien cl ikke er >nl+n2 (nei i trinn S908) utfør en prosess for VJ [cl] = -1 (trinn S906) på nytt.
Hvis telleverdien cl er >nl+n2 (ja i trinn S908) gi gruppen VJ som utgang og avslutt prosessen.
I denne metode har gruppe VJ utgangen uten hensyn til inngangen med heltallet X den opprinnelige gruppe med ni bit(er) på 1, n2 bit(er) på -1 og andre elementer som er 0.
På den annen side er en vanlig nøkkelkrypteringsmetode som krypterer en melding som sendes med en nøkkel og dekrypterer den med samme nøkkel tilgjengelig som en privat kommunikasjonsmetode. I den vanlige nøkkelkrypteringsmetode finnes det en måte for å skape en krypteringstekst ved hjelp av en datautbytningsoperasjon for eksempel utført som forklart nedenfor.
Denne utbytningsmetode benytter en gruppe m[l], m[2],..., m[n] og en nøkkel Ke (et positivt helt tall) som en inngang og gir som en krypteringstekst e[l], e[2],..., e[n]. Det følgende eksempel forutsettes å ha to dimensjonale tabellmerker [j][i] (1 ^ j ^ n !, 1 ^ i ^ n) på forhånd.
Først still 1 i telleverdien c for telleren c'.
Deretter bytt ut m[c] med e [Tab [K][c]]. Denne prosess utføres inntil telleverdien c for telleren c' blir n.
Deretter, når telleverdien for telleren c' blir n blir krypteringsteksten e utgang og prosessen blir avsluttet.
Selv om det er mulig å ta i betraktning at en slik utbytningsmetode blir anvendt på den nevnte metode for å komme frem til den n-dimensjonale gruppe basert på spredefunksjonsverdien er det nødvendig å ha n*n bit(er) av tabeller. ;Den tidligere nevnte selvforklarende metode for å komme frem til den n-dimensjonale gruppe fører imidlertid til at dens utgang er rettet mot en type og ikke tilfredsstiller den ovenstående betingelse (2) (velbalansert fordeling av innganger og utganger). I dette tilfellet går virkning tapt ved å anvende FOSRT og dens sikkerhetsnivå blir lettere utsatt for passive angrep. Det er derfor et problem at sikkerhetsnivået for NTRU kryptering faller når FOSRT blir benyttet for NTRU kryptering med denne metode. ;Selv om utbytningsmetoden som benyttes som den tidligere nevnte felles nøkkelkryptering anvendes for å komme frem til den n-dimensjonale gruppe benytter den en minnetabell som krever en høy grad av minne noe som betraktes som et problem. ;Dokument US6081597, publisert 27. juni, 2000, beskriver en fremgangsmåte og en anordning ved NTRU-kryptosystemet. Det tillater valg av krypteringsnøkler hovedsakelig slumpmessig fra en stor samling av binære vektorer, for hvilke nøkkellengdene er sammenliknbare med nøkkellengdene til de mest anvendte av tidligere kjente kryptosystemer. ;Dokumentet US5142597 , publisert 25. august, 1992, beskriver et kryptosystem og fremgangsmåte med offentlig nøkkel, som er basert på det beregningsmessige "harde" og NP-komplette problem. ;OPPSUMMERING AV OPPFINNELSEN ;Foreliggende oppfinnelse blir utført basert på betraktningen av de ovenstående problemer og er rettet mot frembringelse av en gruppeutgivende anordning som gir som utganger en velbalansert n-dimensjonal gruppe basert på en heltallsverdi som for eksempel en utgangsverdi fra en spredefunksjonsverdi uten at det er behov for å stor minnekapasitet. ;Mange av oppfinnelsens forskjellige formål er oppnådd ved at den tilveiebringer en krypteringsanordning for å kryptere en melding, kjennetegnet ved de trekk som fremgår av det vedfølgende selvstendige patentkrav 1. ;Ytterligere fordelaktige trekk ved oppfinnelsens krypteringsanordning ifølge krav 1 er angitt i de vedfølgende uselvstendige patentkravene 2,3, 8 og 9. ;Mange av oppfinnelsens forskjellige formål er oppnådd ved at den tilveiebringer en krypteringsanordning for å kryptere en melding, kjennetegnet ved de trekk som fremgår av det vedfølgende selvstendige patentkrav 4. ;Ytterligere fordelaktige trekk ved oppfinnelsens krypteringsanordning ifølge krav 4 er angitt i de vedfølgende uselvstendige patentkravene 5,6,7, 8 og 9. ;Mange av oppfinnelsens forskjellige formål er oppnådd ved at den tilveiebringer en dekrypteringsanordning for å dekryptere en melding som har blitt kryptert i samsvar med krav 1, kjennetegnet ved de trekk som fremgår av det vedfølgende selvstendige patentkrav 10. ;Mange av oppfinnelsens forskjellige formål er oppnådd ved at den tilveiebringer en dekrypteringsanordning for å dekryptere en melding som har blitt kryptert i samsvar med krav 4, kjennetegnet ved de trekk som fremgår av det vedfølgende selvstendige patentkrav 11. ;For å oppfylle det ovenstående formål er gruppeutgivelsesanordningen en numerisk gruppeutgivelsesanordning som gir som utgang forskjellige n-dimensjonale grupper bestående av n K-verdiheltall der hvert av disse er et av K typer heltall avhengig av et inngangsheltall omfattende: en første gruppebeslutningsenhet som kan forsøksvis beslutte en første gruppe og en vekslingsenhet som kan bevirke endring av et gruppeelement i den første gruppe som er besluttet av den første gruppebeslutningsenhet til de n-dimensjonale grupper basert på inngangsheltallet. ;Ved å gjøre dette, uten å benytte så meget minnekapasitet kan den n-dimensjonale gruppe basert på heltallet frembringes jevnt og dette gjør det mulig å frembringe den n-dimensjonale gruppe samtidig med opprettholdelse av ensartethet basert på at heltallsverdiene er jevnt fordelt som spredefunksjonsverdien etc. ;Den numeriske gruppeutgivelsesanordning kan her være en gruppeutgivelsesanordning hvori den første gruppebesluttende enhet forsøksvis beslutter en av de n-dimensjonale grupper bestående av de n K-verdiheltall som den første gruppe og vekslingsenheten bytter ut gruppeelementet i den første gruppe som er besluttet av den første gruppebesluttende enhet basert på inngangsheltallet og gir som utgang den utbyttede første gruppe. ;Dessuten kan den nevnte gruppeutgivelsesanordning være en ;gruppeutvidelsesanordning der den første gruppebesluttende enhet forsøksvis beslutter som den første gruppe en gruppe hvori alle gruppeelementer er K-verdiheltallene P3 og vekslingsenheten bytter ut det gruppeelement som er plassert ved en posisjon basert på inngangsheltallet blant gruppeelementet for heltallet P3 i den opprinnelige gruppe som ble besluttet med den første gruppebeslutningsenhet med det andre heltall Pl av K-verdiene og gir som utgang den utbyttede første gruppe. ;Det kan også være en gruppeutgivelsesanordning der inngangsheltallet er angitt med et flertall av bit informasjon og vekslingsenheten inkluderer en oppdelende enhet som kan dele inngangsheltallet i individuelle delte informasjoner bestående av et bestemt antall bit informasjon og en tredje heltalls utbytningsenhet som kan bytte ut gruppeelementet og som er plassert i en posisjon basert på den delte informasjon blant gruppeelementer med heltallet P3 i den opprinnelige gruppe med andre heltall Pl av K-verdiene. ;For å komme frem til de ovennevnte formål benyttes det en numerisk gruppeutgivelsesmetode som gir forskjellige n-dimensjonale grupper bestående av n K-verdiheltall der hvert av disse er en av K typene av heltall avhengig av en heltalls inngang innbefattende: et første gruppebeslutningstrinn for forsøksvis beslutning av en første gruppe; og et endringstrinn for endring av et gruppeelement i den første gruppe som er besluttet av det første gruppebeslutningstrinn til de n-dimensjonale grupper basert på inngangsheltallet. ;Med denne oppbygging kan man vente den samme virkning som ovenfor. ;Videre er krypteringsanordningen i følge oppfinnelsen en anordning som krypterer en melding bestående av: en funksjonsverdi utgangsenhet som kan beregne meldingen med en enveis omformingsfunksjon og gi sitt resultat som utgang i form av en funksjonsverdi, en numerisk gruppeutgivelsesenhet innbefattende en første gruppebeslutningsenhet som forsøksvis beslutter en første gruppe og en endringsenhet som endrer et element i den første gruppe som er besluttet av den første gruppebeslutningsenhet til en n-dimensjonsgruppe basert på funksjonsverdiutgangen fra funksjonsverdiutgangsenheten og som kan gi som utgang forskjellige n-dimensjonale grupper bestående av n K-verdiheltall der hvert av disse er en av K typer av hele tall avhengig av funksjonsverdien og en genereringsenhet for krypteringstekst som kan generere en krypteringstekst basert på gruppeutgangen med den numeriske gruppeutgangsenhet. ;Ved å gjøre dette blir det mulig å beholde ensartethet og få til den n-dimensjonale gruppe basert på heltallsverdien jevnt fordelt med en enveis omformingsfunksjon som spredefunksjonsverdien for en melding og dermed forbedre sikkerhetsnivået for krypteringsteksten. ;KORT BESKRIVELSE AV TEGNINGENE ;Disse og andre hensikter, fordeler og trekk ved oppfinnelsen vil fremgå av den følgende beskrivelse av denne i tilknytning til tegningene som viser en bestemt utførelse av oppfinnelsen. På tegningene er: ;Fig. 1 et flytskjema som viser en vanlig gruppeutgivelsesmetode. ;Fig. 2A et blokkskjema for å vise oppbyggingen av en krypteringsanordning som er knyttet til en første utførelse og Fig. 2B et blokkskjema for å vise oppbyggingen av en dekrypteringsanordning. Fig. 3 en skjematisk gjengivelse av oppbyggingen av den ovenfor omhandlede gruppeutgivelsesenhet. Fig. 4 et skjema for å vise en gruppestatus for en gruppeutgang fra den ovennevnte gruppeutgivelsesenhet. Fig. 5 et flytskjema for å vise virkningen med den ovenfor omhandlede gruppeutgivelsesenhet. Fig. 6 et blokkskjema for å vise oppbyggingen av den gruppeutgivelsesenhet som er knyttet til en andre utførelse. Fig. 7 et flytskjema for å vise virkningen ved en første tallplasseringsenhet i den ovenfor nevnte gruppeutgivelsesenhet. Fig. 8 et skjema for å vise en gruppestatus for en gruppeutgang fra den første tallplasseringsenhet i den omhandlede gruppeutgivelsesenhet. Fig. 9 et flytskjema for å vise virkningen med en andre tallplasseringsenhet i den omhandlede gruppeutgivelsesenhet. Fig. 10 et skjema for å vise en gruppestatus for gruppeutgangen fra den andre tallplasseirngsenhet i den nevnte gruppeutgivelsesenhet. Fig. 11 et blokkskjema for å vise oppbyggingen av en gruppeutgivelsesenhet knyttet til en tredje utførelse av foreliggende oppfinnelse. Fig. 12 et skjema for å vise en gruppestatus for gruppeutgangen fra den første tallplasseirngsenhet i den nevnte gruppeutgivelsesenhet. Fig. 13 et skjema for å vise en gruppestatus for gruppeutgangen fra den andre tallplasseirngsenhet i den nevnte gruppeutgivelsesenhet. Fig. 14A, Fig. 14B og Fig. 14C er skjemaer for å vise en gruppestatus for den gruppe som er stilt i hver enhet av den omhandlede gruppeutgivelsesenhet. Fig. 15 er et skjema for å vise oppbyggingen av den gruppeutgivelsesenhet som foreligger i en fjerde utførelse. Fig. 16 et flytskjema for å vise virkningen med den ovennevnte gruppeutgivelsesenhet. Fig. 17 et skjema for å vise skjematisk en heltalls inngang til den nevnte gruppeutgivelsesenhet. Fig. 18 er et skjema for å vise en gruppestatus for gruppeutgangen fra den nevnte gruppeutgivelsesenhet. Fig. 19 en oversikt for å vise utseende av en mobiltelefon med krypteringsanordningen som innholder gruppeutgivelsesenheten i følge oppfinnelsen. ;BESKRIVELSE AV DEN/DE FORETRUKNE UTFØRELSE(R) ;(Første utførelse) ;. Det følgende forklarer en krypteringsanordning i den første utførelse av foreliggende oppfinnelse med henvisning til skjemaer. ;Fig. 2(A) er et blokkskjema for å vise oppbyggingen av krypteringsanordningen i den første utførelse av foreliggende oppfinnelse. ;Krypteringsanordningen 10 omfatter en slumptallgenereringsanordning 20, en sammenkjedningsenhet 30, en spredefunksjonsenhet 40, en gruppeutgivelsesenhet 100 og en krypteringstekstgenererende enhet 50 som genererer en krypteringstekst e(v) basert på en melding M(v) som er fremkommet og en offentlig nøkkel h(v). Et symbol (v) slik som en melding M(v), en offentlig nøkkel h(v) og en krypteringstekst e(v) avgir et polynom. Dessuten er de samme symboler benyttet for de samme komponenter i vanlige eksempler. ;Den slumptallgenererende enhet 20, sammenkjedningsenheten 30, spredefunksjonsenheten 40, gruppeutgivelsesenheten 100 og den krypteringstekstgenererende enhet 50 som utgjør denne krypteringsanordning 10 utfører prosesser henholdsvis ved bruk av programvare i en minidatamaskin og de prosesser som utføres ved bruk av en sentral datamaskin og minneanordninger. ;Som beskrevet i det vanlige eksempel benytter denne krypteringsanordning 10 FOSRT, et sikringsopplegg for NTRU krypteringen og frembringer kryptering som har et høyere sikkerhetsnivå for NTRU krypteringen. ;Den slumptallgenererende enhet 20 genererer en tilfeldig vektor R(v). ;Sammenkjedningsenheten 30 sammenkjeder vektoren R(v) som er generert med den slumptallgenererende enhet 20 med en melding M(v), genererer en melding m(v) og gir denne som utgang til spredefunksjonsenheten 40 og den krypteringstekstgenererende enhet 50. ;Spredefunksjonsenheten 40 behandler meldingen m(v) med spredefunksjonen som er en toveis funksjon for å frembringe en spredefunksjonsverdi H(m) og gir denne som utgang til gruppeutgivelsesenheten 100. Her er spredefunksjonen en enveis funksjon og spredefunksjonsverdien H(m) som er utgang fra spredefunksjonsenheten 40 er et helt tall som i det følgende blir betegnet som heltall X. ;Gruppeutgivelsesenheten 100 frembringer den n-dimensjonale gruppe V basert på heltall X utgangen fra spredefunksjonsenheten 40 og gir dette som utgang til den krypteringstekstgenererende enhet 50. ;Den krypteringstekstgenererende enhet 50 genererer krypteringsteksten e(v) basert på et polynom ø (v) svarende til den n-dimensjonale gruppe V utgang fra gruppeutgivelsesenheten 100, meldingen m(v) fra sammenkjedningsenheten 30, den offentlige nøkkel h(v) og en formel for krypteringsteksten e(v) = p polynom $ (v) x offentlig nøkkel h(v) + m(v) (mod q), og gir dette som utgang ekstern, p og q er hele tall for eksempel er p 3 og q er 2 . ;Dessuten er Fig. 2(B) et blokkskjema for å vise oppbyggingen av dekrypteringsanordningen i følge en første utførelse av den foreliggende oppfinnelse. ;DelaTpteringsanordningen 15 inneholder en dekrypteirngsenhet 25, en spredefunksjonsenhet 45, en gruppeutgivelsesenhet 105, en krypteringstekstgenererende enhet 55, en beslutningsenhet 65 og en deleenhet 35, som dekrypterer krypteringsteksten e(v) som ble kryptert med krypteringsanordningen 10 basert på den innførte krypteringstekst e(v), en privat nøkkel f(v), Fp(v) og en offentlig nøkkel h(v) og gir som utgang den opprinnelige melding M'(v). ;Dekrypteringsenheten 25, spredefunksjonsenheten 45, gruppeutgivelsesenheten 105, den krypteringstekstgenererende enhet 55, beslutningsenheten 65 og deleenheten 35 som utgjør denne dekrypteringsanordning 15 utfører prosesser henholdsvis ved bruk av programvaren i en minidatamaskin og de prosesser som utføres ved bruk av en sentral datamaskin og minneanordninger. ;Dekrypteringsenheten 25 far meldingen m'(v) som er en dekrypteirngsverdi svarende til den opprinnelige melding fra krypteringsteksten e(v) inngangen basert på de følgende formler: ;a(v) = privat nøkkel f(v) x krypteringstekst e(v) (mod q) ;m'(v) = privat nøkkel Fp(v) x a(v) (mod p) ;Spredefunksjonsenheten 45 beregner spredefunksjonsverdien H(m') for meldingen m'(v) og gir denne som utgang til gruppeutgivelsesenheten 105. Spredefunksjonsverdien H(m') som er utgang fra spredefunksjonsenheten 45 er et helt tall som i det følgende blir betegnet som heltall X'. ;Gruppeutgivelsesenheten 105 frembringer den n-dimensjonale gruppe V basert på heltall X' utgangen fra spredefunksjonsenheten 45 og gir denne som utgang til den krypteringstekstgenererende enhet 55. ;Den krypteringstekstgenererende enhet 55 genererer en krypteringstekst e'(v) basert på polynomet f (v) svarende til den n-dimensjonale gruppe V utgang fra gruppeutgivelsesenheten 105, meldingen m'(v) fra dekrypteringsenheten 25, den offentlige nøkkel h(v) og formelen for krypteringsteksten e'(v) = p polynom f (v) x offentlig nøkkel h(v) + m'(v) (mod q) og gir denne som utgang til beslutningsenheten 65. ;Beslutningsenheten 65 tar inn krypteringsteksten e(v) og krypteringsteksten e'(v), avgjør om begge passer sammen og gir som utgang meldingen m'(v) til deleenheten 35 hvis tekstene faller sammen. ;Deleenheten 35 deler meldingen m'(v) fra beslutningsenheten 65 i en melding M'(v) og en tilfeldig vektor R'(v) og gir som utgang den opprinnelige melding M'(v). ;I det følgende forklares gruppeutgivelsesenheten 100 i lcrypteringsanordningen 10 med henvisning til tegningene. Fordi gruppeutgivelsesenheten 105 i dekrypteringsanordningen 15 har samme utførelse som gruppeutgivelsesenheten 100 og har samme oppgave er forklaring av denne utelatt. ;Fig. 3 viser oppbyggingen av gruppeutgivelsesenheten 100. ;Denne gruppeutgivelsesenhet 100 benytter heltallet X som sin inngang og gir som utgang en gruppe V som tilhører L (n, ni, n2). L (n, ni, n2) her er hele den n-dimensjonale gruppe som har ni bit(er) på 1, n2 bit(er) på -1 og andre (n-nl-n2) bit(er) på 0 og disse n, ni og n2 er forhåndsinnstilt i gruppeutgivelsesenheten 100. Gruppeutgivelsesenheten 100 består av en første gruppebeslutningsenhet 110 og en gruppeelement utskiftende enhet 120. ;Den første gruppebeslutningsenhet 110 skal treffe en første beslutning om gruppe V og genererer den følgende første beslutningsgruppe VI. ;Her er VI [i] det i te (i er et helt tall fra 1 til n) gruppeelement (element fra venstre) for den første beslutningsgruppe VI. ;Fig. 4 er et skjema som viser en gruppestatus for gruppen V i hver fase i gruppeutgivelsesenheten 100. Fig. 4 viser hver gruppestatus i gruppen V for eksempel (n=8, nl=3, n2=2) i eksempel L (8,3,2). På Fig. 4 viser gruppestatusen øverst den ;opprinnelige beslutningsgruppe VI som ble besluttet i den første beslutningsenhet 110. ;Den gruppeelementutbyttende enhet 120 innfører den første beslutningsgruppe VI som utgang fra den første gruppebeslutningsenhet 110 og heltallet X og gir som utgang den n-dimensjonale gruppe V som har ni bit(er) på 1, n2 bit(er) på -1 og andre (n-nl-n2) bit(er) på 0. Dette er for å endre et gruppeelement i den første beslutningsgruppe VI som er besluttet av den første gruppebeslutningsenhet 110. ;Det følgende forklarer prosesser som utføres med den gruppeelementutbyttende enhet 120. ;Fig. 5 er et flytskjema for å vise de prosesser som utføres med gruppeelementutbyttingsenheten 120. ;La en verdi for en teller c' være en telleverdi c i nedenfor. ;Først vil den gruppeelementutbyttende enhet 120 bytte ut det hele tall X med et argument Y og bytte ut gruppen V med den første beslutningsgruppe VI. Dette betyr at den bytter ut VI [i] med V[i] for alle i (i er et helt tall fra 1 til n). (Trinn Sl01). ;Deretter stiller gruppeelement utbyttingsenheten 120 telleverdien c for telleren c' på n (trinn Sl 02). ;Deretter blir i den gruppeelementutbyttende enhet 120 en kvotient mellom argumentet Y dividert med telleverdien c behandlet som S og resten som R (trinn Sl03). ;Deretter betrakter den gruppeelementutbyttende enhet 120 tmp<—V[c] (trinn Sl04). Dette er for å bytte ut det c te element V[c] i gruppen V med en register tmp. ;Deretter betrakter den gruppeelementutbyttende enhet 120 V[c]<—V[R+1] (trinn S105). Dette er for å bytte ut det (R+l) te element av gruppen V med det c te element i gruppen ;V. ;Deretter betrakter den gruppeelementutbyttende enhet 120 V[R+1]<—tmp (trinn S106). Dette er for å bytte ut innholdet av register tmp med det (R+l) te element i gruppen V. Med prosessen for denne tmp=V[c], V[c]=V[R+l], V[R+l]=tmp (trinn Sl04 til trinn Sl06) blir det c te element og det (R+l) te element byttet ut. ;Deretter bytter den gruppeelementutbyttende enhet 120 ut kvotienten S med argumentet Y (trinn S107). ;Deretter avgjør den gruppeelementutbyttende enhet 120 om telleverdien c er 2 eller ikke (trinn Sl08). Hvis telleverdien c ansees å være 2 (ja i trinn Sl08) gir den gruppeelementutbyttende enhet 120 som utgang gruppen V (trinn Sl 10) og avslutter prosessen. ;På den annen side hvis den gruppeelementutbyttende enhet 120 anser at telleverdien c ikke er 2 (nei i trinn Sl08) dekrementeres telleverdien c (c<—c-1) (trinn Sl09) og går igjen til prosessen for å få S som kvotient til argumentet Y delt med telleverdien c, og for å få R som resten (trinn Sl03). ;På denne måte gjentar den gruppeelementutbyttende enhet 120 prosessen i hvert trinn med start fra prosessen for å få kvotienten S og resten R (trinn Sl03), og å dekrementere telleverdien c (trinn Sl09) for hver gang telleverdien for telleren c' er fra n til 2. Etter at hvert element i gruppen V er byttet ut og prosessen for telleverdien c=2 er fullført, gir den gruppeelementutbyttende enhet 120 gruppen V som utgang. ;Alle prosesser i gruppeutgivelsesenheten 100 blir her forklart. I ;gruppeutgivelsesenheten 100 beslutter den første gruppebeslutningsenhet 110 den første beslutningsgruppe VI av den n-dimensjonale gruppe som har ni bit(er) på 1, n2 bit(er) på -1 og andre som er 0, og gir dette som utgang til den gruppeelementutbyttende enhet 120. ;Deretter henter den gruppeelementutbyttende enhet 120 den første beslutningsgruppe VI utgang fra den første gruppebeslutningsenhet 110 og heltallet X innført til gruppeutgivelsesenheten 100, erstatter hvert element i den første beslutningsgruppe VI basert på heltallet X, og gir som utgang den n-dimensjonale gruppe V som har ni bit(er) på 1, n2 bit(er) på -1 og andre element(er) som er 0. ;Prosessene med denne gruppeutgivelsesenhet 100 blir forklart med et konkret eksempel. ;Prosessene i denne gruppeutgivelsesenhet 100 blir forklart ved å bruke tall som virkelig ble innført, for eksempel heltallet X=39356, n=8, ni =3, n2=2. ;Først bestemmer den første gruppebeslutningsenhet 110 den første beslutningsgruppe VI som tilfredsstiller n=8, nl=3, n2=2 og gir dette som utgang til den gruppeelementutbyttende enhet 120 (se Fig. 4). ;Deretter bytter den gruppeelementutbyttende enhet 120 ut inngangsheltallet X med argumentet Y, betrakter argumenter Y=39356 og bytter ut den første beslutningsgruppe VI med gruppen V (trinn S101). ;Deretter betrakter den gruppeelementutbyttende enhet 120 telleverdien c=8 (trinn S102). ;Deretter beregner den gruppeelementutbyttende enhet 120 kvotienten S og resten R, og får kvotienten S=4919 og resten R=4 (trinn S103). ;Deretter vil den gruppeelementutbyttende enhet 120 bytte ut det (R+l) te element i gruppen V som betyr det femte element "-1" med det åttende element "0" (trinn Sl04 ~ trinn Sl06) og skaper den gruppestatus som er angitt i gruppen V2 på Fig. 4. ;Deretter bytter den gruppeelementutbyttende enhet 120 ut 4919 for argumentet Y (trinn Sl 07). ;Fordi telleverdien c er =8 og ikke =2 (nei i trinn Sl08) dekrementerer den gruppeelementutbyttende enhet 120 telleverdien c for å gjøre telleverdien c=7 (trinn Sl 09). ;Deretter beregner den gruppeelementutbyttende enhet 120 kvotienten S og resten R en gang til fra argumentet Y=4919 og telleverdien =7, og får kvotienten S=702 og resten R=5 (trinn Sl03). ;Deretter bytter den gruppeelementutbyttende enhet 120 ut det sjette element "0" med det syvende element "0" fra venstre i gruppen V (trinn Sl04 ~ trinn Sl06) og skaper den gruppestatus som er angitt for gruppen V3 på Fig. 4. ;Den gruppeelementutbyttende enhet 120 bytter på denne måte ut elementer i gruppen V basert på kvotienten S og resten R når argumentet Y blir dividert med telleverdien c for hver gang telleverdien c er fra n til 2 (gjentagelse av prosessene i trinn Sl03 —*■ trinn Sl09) og utfører utbyttingsprosessen for hvert element i den første beslutningsgruppe VI. Deretter, når den ovennevnte prosess er fullført for eksemplet med telleverdien c=2 gir den gruppeelementutbyttende enhet 120 gruppen V som utgang.
Forklaringen nedenfor gjelder det forhold at gruppe V utgangen fra gruppeutgivelsesenheten 100 er velbalansert på inngangsheltallet X.
Basert på heltallet X som tilfredsstiller 0 ^ X ^ (n! -1) (n! viser "n fakultet". For å være mer bestemt, n! =n x (n-1) x ... x 2 x 1), gir gruppeutgivelsesenheten 100 som jevn utgang gruppen L (n, ni, n2). Det følgende gir en forklaring basert på en betingelse om at X er begrenset til å være 0 ^ X ^ (n! -1).
I den gruppeelementutbyttende enhet 120 blir elementene for den første beslutningsgruppe VI byttet ut. Det følgende retter oppmerksomheten i detalj på elementene i den første beslutningsgruppe VI som ble byttet ut av den gruppeelementutbyttende enhet 120. For at den følgende forklaring skal være lettere å forstå blir i oppbyggingen av den ovenstående gruppeelementutbyttende enhet 120 den rest som ble resultat fra prosessen R<—Ymod c (trinn Sl03) behandlet som R i når telleverdien c er i (i=n, n-1, n-2, ...,3,2).
Forløpet av forklaringen er som følger.
(1) Forklaring av et faktum om at utbyttingsprosessen ikke blir duplisert.
(2) Ved bruk av resultatet fra (1) forklaring av det faktum at prosessinnholdet i heltallet
X og den gruppeelementutbyttende enhet 120 svarer til et 1 til 1 forhold.
(3) Beregn hvor mange typer av heltallet X som resulterer i samme gruppe.
Beregningen av (3) gjør det mulig å angi antall typer for heltallet X som er identiske uten hensyn til gruppen V slik at dette viser at utgangen er velbalansert som inngang.
Først, (1) forklares "det faktum at utbyttingsprosessen ikke blir duplisert".
Den nedenstående forklaring går ut på at den samme verdi ikke blir gjentatt utbyttet. Det betyr at den verdi for hvilken utbyttingsprosessen blir fullført ikke blir betraktet som et emne for utbytting i påfølgende prosesser.
" Når telleverdien n for telleren c' er n
En betydning av prosessene i trinn Sl04, Sl05, trinn Sl06 (i det følgende betegnet som "en utbyttingsprosess når telleverdien c er n") er at det n te element VI [n] i den første beslutningsgruppe VI blir byttet ut med det (R n + 1) te element VI [R n +1]. R n er her resten når argumentet Y blir dividert med n slik at det kan fremkomme et tall fra + til n-1.
' Når telleverdien c er n-1.
På dette tidspunkt blir det n-1 te element i gruppen V, som er i den status der utbyttingsprosessen nettopp er fullført når telleverdien c er n, byttet ut med det (R_(n-1)+1) te element. Fordi R_(n-1) her er resten når argumentet Y blir delt med tellerverdien (n-1) kan verdien være et hvilket som helst tall fra 0 til n-2. Derfor er det (n-l)te element i gruppen V som er i status for utbyttingsprosessen når telleverdien c er n-1 nettopp fullført det (R_(n-l)+l)te element av gruppen V ved det punkt der utbyttingsprosessen nettopp er fullført når telleverdien c er n. Det skal også påpekes at det n te element i gruppen V i status når utbyttingsprosessen er fullført når telleverdien c er n ikke blir behandlet som et emne for bytting.
' Når telleverdien c er n-2 eller mindre
Et eksempel når telleverdien c er n-2 eller mindre blir nå omhandlet. I dette tilfellet er det det samme som når telleverdien c er n-1. Det i te element i gruppen V i status da utbyttingsprosessen er fullført når telleverdien c er i er det (R_i+1) te element av gruppen V i status da utbyttingsprosessen er fullført når telleverdien c er (i+1). Det skal påpekes at utbyttingsprosessen når telleverdien c er (i+1) blir utført før utbyttingsprosessen når telleverdien c er i. Etter dette punkt vil det i te element i gruppen V aldri bli byttet ut med andre verdier. Fordi hvis j ^ i-ler Rj resten når argumentet Y blir delt med j slik at det tilfredsstiller RJ ^ j-1. Som følge av dette blir
Hvert element i gruppen V etter at prosessen med den gruppeelementutbyttende enhet 120 er fullført, det vil si i status der alle prosesser for n til 2 av telleverdi c er fullført blir et av hvert element i den første beslutningsgruppe VI byttet ut.
I det følgende blir unikheten i prosessen med den gruppeelementutbyttende enhet 120 forklart.
Ved bruk av det ovenstående resultat (utbytting blir ikke duplisert) forklarer det følgende det faktum at prosessinnholdet i heltalls X og i den gruppeelementutbyttende enhet 120 tilsvarer 1 til 1 forholdet.
' Forhold mellom heltallet X og rekker
Anta at heltallet X er et helt tall som tilfredsstiller 0 ^ X ^ (n! -1). I dette tilfellet er verdien av argumentet Y i trinnet Sl03 når telleverdien c for telleren c' er c, er Y_c, kvotienten S er S_c og resten R er R c (verdien for R c er som definert tidligere). I dette tilfellet, hvis prosessen som gjøres i trinn Sl03 uttrykkes med en formel, er denne:
Imidlertid er 0 ^ R c ^ (c-1). Dessuten, hvis prosessen som gjøres i trinn Sl07 uttrykkes med en formel, er denne:
Hvis dette summeres ved anvendelse av et eksempel på c=n, (n-1),..., 2, blir dette som følger.
(merk at X=Y_n)
R i er her et helt tall som tilfredsstiller 0|R_i^i-l. Fra heltallet X er det klart at R_2, R_3,..., R_(n-2), R_(n-1), R_n blir besluttet unikt. Dessuten er det omvendte forhold også tydelig. Derfor vil forholdet mellom heltallet X som er 0 ^ X ^ (n! -1) og R_2, R_3,R_(n-2), R_(n-1), R_nbli 1 til 1.
' Forhold mellom rekker og utbytting
Som tidligere nevnt i den første utførelse blir hvert element i den første beslutningsgruppe VI byttet ut i forhold til heltallet X for å gi som utgang gruppen V. Som nevnt tidligere blir utbyttingen besluttet ved rekker av R_n, R_(n-1), R_(n-2) R_3, R_2. Fordi det n te element i gruppen V på tidspunktet for fullførelse av utbyttingsprosessen når telleverdien c er n, er det (R_n+l)te element i den første beslutningsgruppe VI. Fra dette punkt vil det n te element i gruppen V ikke bli byttet ut. På samme måte, er det n te element i gruppen V på tidspunktet for fullførelse av utbyttingsprosessen når telleverdien c er i det (R_i+1) te element i gruppen V på tidspunktet for avslutning av utbyttingsprosessen når telleverdien c er (i+1). Fra dette punkt vil det i te element i gruppen V ikke bli byttet ut, noe som betyr at fra det n te element til det i te element av gruppen V vil elementene ikke bli byttet. Det er også fordi gruppen V, ved tidspunktet for fullførelse av utbyttingsprosessen når telleverdien c er (i+1), blir bestemt av rekken R_n, R_(n-1),..., R_(i+1).
Dessuten blir utbyttingsmetoden for n bit(er) av elementene i den første beslutningsgruppe VI betraktet som å være "n bit(er) av opprinnelig utbytting". For eventuell "n bit(er) av opprinnelig utbytting" kan denne utbytting virkeliggjøres med det ovennevnte behandlingsinnhold i den gruppeelementutbyttende enhet 120. Dette blir forklart som følger. Som uttrykk for utbyttingen blir det benyttet en ordnet streng som er et resultat av utbytting av n bit(er) av sekvensielle elementer V[1],V[2],..., V[n] som inngang. For eksempel blir en utbytting uttrykt som følger.
(V[<ri],V[<72],...,V[<m])
imidlertid som et sett, {l,2,...,n} = {cl, & 2,on}
På dette tidspunkt er det klart at verdien for a n er besluttet av den ovenstående R_n. Dessuten er verdien for o(n-l) besluttet av verdier for R n og R_(n-1) og det skulle være klart at dette ble valgt ut fra alle andre verdier enn a n. Det samme gjelder til det følgende. Verdien for a i blir bestemt av R n, R_(n-1),..., R_(i+1), og er besluttet fra alle andre verdier enn a n, ø(n-l),..., ø(i+l). Derfor, i følge den ovennevnte gruppeelementutbyttende enhet 120, blir utbyttingsmetoden for hele den første beslutningsgruppe VI besluttet. Som følge av dette skulle det være klart at forholdet ved utbyttingsmetoden mellom heltallet X som er 0 ^ X ^ (n! -1) og den første beslutningsgruppe VI blir 1 til 1. Forklaringer som er beskrevet opp til dette punkt er basert på den ide at et element blir betraktet som forskjellig hvis dets utbyttingsinformasjon, det vil si en indeks, for hvert element er forskjellig uansett om verdien i hvert element i den første beslutningsgruppe VI er identisk eller ikke. Egentlig er imidlertid hvert element i den opprinnelige beslutningsgruppe VI satt sammen av ni bit(er) på 1, n2 bit(er) på -1 og (n-nl-n2) bit(er) på 0. Hvis utbyttingssettet på ni bit(er) på 1 er identisk i gruppe V utgangen er verdien for gruppen V også identisk. Det samme kan være gyldig for n2 bit(er) på -log (n-nl-n2) bit(er) på 0. Det følgende forklarer hvor ofte den samme utgangsgruppe kan komme til å bli utgang.
I det følgende blir ensartetheten i utgangen fra den gruppeelementutbyttende enhet 120 forklart.
Som nevnt tidligere er forholdet mellom det hele tall som tilfredsstiller 0 ^ X ^ (n! -1) og "n bit(er) av opprinnelig utbytting" 1 til 1. La omformingen være x. Ved å bruke x svarende til heltallet X gir den gruppeelementutbyttende enhet 120 som utgang x (VI) som V. Fra x til x (VI) besluttes unikt. For det følgende x 0 forklares det nedenfor hvor mange omforminger eksister for at xl skal bli x0 (VI) = xl (VI).
ni bit(er) på 1 i x0 (VI) forblir det samme som verdien for x0 (VI) selv om dens posisjon blir flyttet. På samme måte vil resultatet av x0 (VI) ikke forandre seg selv om posisjonene er flyttet for n2 bit(er) på -1 og (n-nl-n2) på 0. Hvis imidlertid en posisjon på 1 blir byttet ut med en posisjon på 0 eller om posisjonen på 1 blir byttet ut med en posisjon på -1 vil resultatet for x0 (VI) bli forskjellig. Derfor eksisterer bare enhver mulig xl bare for en kombinasjon av posisjonsutbyttinger i ni bit(er) på 1 og n2 bit(er) av -1 og (n-nl-n2) bit(er) av 0. Fordi det finnes ni bit(er) på 1 gir dette (ni)! typer. På samme måte, for utbyttinger av n2 bit(er) på -1 og (n-nl-n2) bit(er) på 0 finnes det (n2)! typer og (n-nl-n2)! typer er tilgjengelig for hver. Derfor har man (ni)! x (n2)! x (n-nl-n2)! typer på xl.
Som følge av dette kan det sies at gruppeutgivelsesenheten 100 i den første utførelse kan omforme n! typer av heltall X til n! / ((ni)! x (n2)! x (n-nl-n2)!) typer på utbyttinger. Den tidligere beskrivelse viser også at ensartethet blir besluttet av ni og n2 uansett utbyttingstyper.
Som forklart ovenfor kan gruppeutgivelsesenheten 100 jevnt gi som utgang den n-dimensjonale gruppe basert på inngangsheltallet X. Dessuten i følge ovenstående forklaring fremgår det at gruppeutgivelsesenheten 100 alltid frembringer samme utgang for samme inngang.
Forklaringen opptil dette punkt gjelder eksemplet med X<n!. Den samme type forklaring gjelder også for eksemplet med X>n! ved å ta resten av X dividert med n!.
Et eksempel der en virkelig parameter benyttes blir nå forklart. Når n=263, nl=16, n2=16 har den gruppe som tilhører L (n, ni, n2) n! / ((ni)! x (n2)! x (n-nl-n2)!) = 2
A 163 typer, x A y angir den y te potens av X. n! = 2 A 1741. For utgangslengden for spredefunksjonen for å opprettholde ensartetheten i spredefunksjonsfordelingen, er det nødvendig med 1741 biter eller mer. Selv om spredefunksjonen med 1741 biter eller mer i dens utgang ikke eksisterer for tiden, er det en måte å beregne spredefunksjonsverdien på ved å bruke en spredefunksjon som har større lengde enn utgangslengden til denne spredefunksjonen. Derfor, selv om en hvilken som helst spredefunksjonsverdi som har 1741 biter eller mer er nødvendig som dens utgang, behøver dette ikke skape problemer som vanskeliggjør oppbygging av den sikre krypteringsmetode.
I følge denne utførelse kan gruppeutgivelsesenheten 100 på en jevn måte gi som utgang den n-dimensjonale gruppe basert på inngangsheltallet X. På grunn av dette, når det
gjelder FOSRT benyttet ved NTRU kryptering, kan gruppeutgivelsesenheten 100 jevnt gi som utgang den n-dimensjonale gruppe basert på spredefunksjonsverdien H(m) som er utgang fra spredefunksjonsenheten 40. Det er mulig å opprettholde ensartetheten for spredefunksjonen som distribueres av spredefunksjonsenheten 40. Derfor kan krypteringsanordningen 10 generere krypteringsteksten e(v) med et høyt sikkerhetsnivå.
Videre, siden gruppeutgivelsesenheten 100 stiller gruppen V bare basert på heltallet X er det ikke nødvendig å bruke en minnetabell og det kreves bare en liten minnekapasitet. Dessuten siden gruppeutgivelsesenheten 105 i det krypteringsanordningen 15 på Fig. 2(B) har samme oppbygging som gruppeutgivelsesenheten 100 er det mulig å dekryptere den krypterte tekst som er kryptert med krypteringsanordningen 10.
I den foreliggende utførelse, selv om prosessen utføres med hver enhet som sammen utgjør krypteringsanordningen 10 og dekrypteringsanordningen 15 forutsettes å bli utført med programvaren i mikrodatamaskinen, kan den også utføres med maskinvare så som en elektrisk krets eller en integrert krets.
I tillegg er oppbyggingen ikke bare begrenset til den forutsatte oppbygging som gir som utgang gruppen basert på spredefunksjonsverdien ved bruk av gruppeutgivelsesenheten 100 på krypteringsanordningen 10.
Videre omfatter gruppeutgivelsesenheten 100 som er vist på Fig. 3 den første gruppebeslutningsenhet 110 og den gruppeelementutbyttende enhet 120, som har en oppbygging hvor den gruppeelementutbyttende enhet 120 bytter ut hvert element i den første beslutningsgruppe VI som er besluttet i den første gruppebeslutningsenhet 110 basert på heltallet X, men den kan være en gruppeutgivelsesenhet (i det følgende betegnet som en gruppeutgivelsesenhet 100a) som har en struktur som utfører samme prosess som den gruppeelementutbyttende enhet 120 som tar som inngang heltallet X og den forhåndsinnstilte første beslutningsgruppe VI, bytter ut den første beslutningsgruppe VI basert på heltallet X, og gir som utgang gruppen V.
Fordi gruppeutgivelsesenheten 100a som er bygget opp på denne måte utfører den samme prosess som den gruppeelementutbyttende enhet 120, kan den bevare ensartetheten i spredefunksjonsfordelingen og den benytter ikke noen tabell og bytter ut gruppen VI bare fra heltalls X informasjonen. Dermed kreves det ikke noen særlig stor minnekapasitet.
Dessuten kan gruppeutgivelsesenheten 100a være en krypteringsanordning eller en krypteringsmetode som benytter heltallet X som en nøkkel, den første beslutningsgruppe VI som en melding og gruppen V som en krypteringstekst. Videre kan den være en krypteringsanordning eller en krypteringsmetode som benytter gruppeutgivelsesenheten 100a.
(Andre utførelse)
Det følgende forklarer krypteringsanordningen som gjelder den andre utførelse av foreliggende oppfinnelse.
Krypteringsanordningen i denne utførelse er en gruppeutgivelsesenhet 200 som har en annen oppbygging enn gruppeutgivelsesenheten 100 sammenlignet med krypteringsanordningen 10 på Fig. 2(A). Siden oppbyggingen av andre deler er felles er beskrivelse av disse utelatt.
Fig. 6 er et blokkskjema for å vise oppbyggingen av gruppeutgivelsesenheten 200 i den foreliggende utførelse. Denne gruppeutgivelsesenhet 200 får heltallet X som inngang, og gir som utgang gruppen V20 som tilhører L (n, ni, n2). L (n, ni, n2) angir her hele den n-dimensjonale gruppe som har ni bit(er) på 1, n2 bit(er) på -1 og andre (n-nl-n2) bit(er) på 0, og n, ni, n2 er forhåndsinnstilt i gruppeutgivelsesenheten 200.
Gruppeutgivelsesenheten 200 består av en første tallplasseringsenhet 210 og en andre tallplasseringsenhet 220 som utfører prosesser på samme måte som gruppeutgivelsesenheten 100 ved hjelp av programvaren i mikrodatamaskinen eller maskinvare som en elektrisk krets.
Den første tallplasseirngsenhet 210 benytter heltallet X som sin inngang og gir som utgang den n-dimensjonale gruppe VI0 som har ni bit(er) på 1 og andre element(er) på 0, og heltallet XI som fremkommer ved en spesiell beregning av heltallet X, til den andre tallplasseirngsenhet 220. Den første tallplasseirngsenhet 210 beslutter forsøksvis et gruppeelement som har alle gruppeelementer som er 0 og endrer gruppeelementene på 0 til 1 basert på heltallet X.
Den andre tallplasseirngsenhet 220 far som inngang gruppe VI0 utgangen fira den første tallplasseirngsenhet 210 og heltallet XI, og gir som utgang den n-dimensjonale gruppe V20 som har ni bit(er) på 1, n2 bit(er) på -1 og andre (n-nl-n2) bit(er) på 0. Den andre tallplasseirngsenhet 220 forandrer her gruppeelementet med 0 i gruppeutgangen av den første tallplasseringsenhet 210 til -1.
Først blir prosessene i den første tallplasseirngsenhet 210 forklart.
Fig. 7 er flytskjema som viser den prosess som utføres av den første tallplasseirngsenhet 210. Den første tallplasseirngsenhet 210 utfører prosessen i de følgende trinn. I den nedenstående forklaring skal det i te element (fra venstre) i gruppen VI0 være V10[i].
Dessuten skal en verdi for telleren cl' være en telleverdi cl og en verdi for telleren c2' skal være en telleverdi c2.
Fig. 8 viser en gruppestatus ved hver fase i gruppen VI0 i den første tallplasseringsenhet 210.
Først setter den første tallplasseringsenhet 210 heltallet X som et argument Yl (trinn S201).
Deretter gir den første tallplasseirngsenhet 210 alle elementer i gruppen VI0 verdien 0 (et heltall Pl) (trinn S202). Den første gruppe blir besluttet på dette punkt.
Deretter stiller den første tallplasseirngsenhet 210 telleverdien cl på telleren cl' til 1 (trinn S203).
Deretter stiller den første tallplasseringsenhet 210 telleverdien c2 for telleren c2' til n (trinn S204).
Deretter frembringer den første tallplasseirngsenhet 210 en kvotient S og en rest R av argumentet Yl (dividend) dividert med telleverdien c2 (divisor) (trinn S205).
Deretter stiller den første tallplasseirngsenhet 210 det (R+l)te element fra venstre i elementene med 0 i gruppen VI0 til 1 (heltall P2) (trinn S206).
Deretter setter den første tallplasseirngsenhet 210 kvotienten S som argumentet Yl (trinn S207).
Deretter avgjør den første tallplasseirngsenhet 210 om telleverdien cl =nl (trinn S208). Hvis telleverdien cl ikke =nl (nei i trinn S208) vil den første tallplasseringsenhet 210 inkrementere telleverdien cl (cl<—cl+1) som tallet på det element med 1 i gruppen VI0 som ikke har nådd ni bit(er). Deretter går prosessen for å dekrementere telleverdien c2 (c2<—c2-l) (trinn S209). Deretter utfører den første tallplasseirngsenhet 210 prosessen med å få kvotienten S og resten R av argumentet Yl delt med telleverdien c2 ennå en gang (trinn S205).
På den annen side hvis den første tallplasseirngsenhet 210 fastslår at telleverdien cl er =nl (ja i trinn S208) gir den som utgang gruppen VI0 og verdien på argumentet Yl
(heltallet XI) til den andre tallplasseirngsenhet 220 (trinn S210) som tallet på elementene med 1 som i gruppen VI0 har nådd ni bit(er) og avslutter dermed prosessen.
På denne måte gjentar den første tallplasseirngsenhet 210 prosessen for å få kvotienten S og resten R inntil telleverdien cl i telleren cl' blir ni (trinn S205) som prosessen for å inkrementere telleverdien cl og dekrementere telleverdien c2 (trinn S209). Deretter, når telleverdien cl for telleren cl' blir ni, det vil si når antallet av 1 blant elementene i gruppen V10 har blitt på ni bit(er) gir den første tallplasseirngsenhet 210 som utgang gruppen VI0 til den andre tallplasseirngsenhet 220.
Prosessene ved den første tallplasseirngsenhet 210 blir forklart med henvisning til konkrete eksempler. Forklaringen er gitt med et eksempel på at heltallet X er inngang på = 5644 og den n-dimensjonale gruppe VI0 utgang fra den første tallplasseirngsenhet 210 er for eksempel en 8-dimensjonal gruppe (n=8) som har 3 bit(er) (nl=3) på 1 og andre 5 bit(er) på 0.
Først setter den første tallplasseirngsenhet 210 5644 som argumentet Yl (trinn S201).
Deretter skaper den første tallplasseirngsenhet 210 en gruppestatus for gruppen VI0 med en status der alle elementer med 0 som vist i gruppe VI1 på Fig. 8 (trinn S202).
Deretter sørger den første tallplasseirngsenhet 210 for at telleverdien cl blir =1 (trinn S203) og får telleverdien c2 til å bli =8 (trinn S204).
Deretter frembringer den første tallplasseirngsenhet 210 kvotienten S = 705 og resten R = 4 fra argumentet Yl = 5644 og telleverdien c2 = 8 (trinn S205).
Deretter stiller den første tallplasseirngsenhet 210 1 for det (R+l)te element fra venstre i elementene som er 0 i gruppen VI0, det vil si det femte element, V10[5] og som er i den gruppestatus som er vist for gruppen V12 på Fig. 8 (trinn S206).
Deretter setter den første tallplasseirngsenhet 210 705 (=kvotienten S) som argumentet Yl (trinn S207).
Deretter, fordi telleverdien cl er =1 og telleverdien cl ikke =3 (=nl) (nei i trinn S208) sørger den første tallplasseirngsenhet 210 for at telleverdien cl blir =2 (inkrement) og får telleverdien til å bli 7 (dekrement) (trinn S209).
Deretter frembringer den første tallplasseringsenhet 210 kvotienten S og resten R en gang til fra argumentet Yl = 705 og telleverdien c2 =7 (trinn S205). Kvotienten S er 100 og resten R er 5.
Deretter stiller den første tallplasseirngsenhet 210 1 for det sjette element fra venstre blant de elementer som er 0 i gruppen V10. En gruppestatus for gruppen V10 før denne oppstilling er den gruppestatus som er vist i gruppen VI2 på Fig. 8. Elementet på 0 i gruppen V12 er et annet element enn V12[5]. Fordi det sjette element i elementene som er 0 i gruppen V12 er V12[7], blir 0 for V12[7] gjort til 1 (trinn S206). På grunn av dette blir denne til gruppen VI3 som er vist på Fig. 8.
På denne måte får den første tallplasseirngsenhet 210 elementet på 0 i gruppen V10 til å bli 1 i overensstemmelse med resten R inntil antallet av elementer som har 1 i gruppen VI0 blir ni bit(er) (ni =3 i dette eksempel). Når antallet av elementer som er 1 blir 3 biter som vist i gruppen VI4 på Fig. 8 blir gruppen gitt som utgang til den andre tallplasseirngsenhet 220 som gruppen VI0.
I det følgende beskrives prosessene i den andre tallplasseirngsenhet 220.
Fig. 9 er et flytskjema for å vise en prosess som utføres med den andre tallplasseirngsenhet 220. Fig. 10 viser en gruppestatus ved hver fase av gruppen V20 i den andre tallplasseirngsenhet 220.
I den følgende forklaring forutsettes det at det i te element (fra venstre) i gruppen V20 er V10[i]. Det forutsettes også at verdien for telleren cl' er telleverdien cl og at verdien for telleren c2' er telleverdien c2.
Først vil den andre tallplasseirngsenhet 220 sette verdien på argumentet Yl (heltall XI) utgang fra den første tallplasseirngsenhet 210 som argumentet Y2 (trinn S301). Deretter vil den andre tallplasseirngsenhet 220 sette gruppe VI0 utgangen fra den første tallplasseirngsenhet 210 som gruppen V20 (trinn S302).
Deretter stiller den andre tallplasseirngsenhet 220 telleverdien cl på 1 (trinn S303).
Deretter suller den andre tallplasseirngsenhet 220 telleverdien c2 på (n-nl) (trinn S304).
Deretter frembringer den andre tallplasseringsenhet 220 kvotienten S og resten R av argumentet Y2 (dividende) dividert med telleverdien c2 (divisor) (trinn S305).
Deretter stiller den andre tallplasseirngsenhet 220 -1 for det (R+l)te element fra venstre blant de elementer som er 0 i gruppen V20 (trinn S306).
Deretter setter den andre tallplasseirngsenhet 220 kvotienten S som argumentet Y2 (trinn S307).
Deretter bestemmer den andre tallplasseirngsenhet 220 om telleverdien cl =n2 (trinn S308). Hvis den andre tallplasseirngsenhet 220 finner at telleverdien cl ikke =n2 (nei i trinn S308) inkrementerer den telleverdien cl (cl<—cl+1) siden tallet for det element som er -1 i gruppen V20 ikke har nådd til n2 bit(er). Deretter går den til prosessen med å dekrementere telleverdien c2 (c2<—c2-l) (trinn S309). Deretter utfører den andre tallplasseringsenhet 220 prosessen med å frembringe kvotienten S og resten R for argumentet Y2 dividert med telleverdien c2 en gang til (trinn S305).
På den annen side, hvis den andre tallplasseirngsenhet 220 finner at telleverdien cl er =n2 (ja i trinn S308) blir gruppen V20 ført som utgang (trinn S310) fordi antallet av elementer som er -1 i gruppen V20 har nådd n2 bit(er) og deretter blir prosessen avsluttet.
På denne måte gjentar den andre tallplasseirngsenhet 220 prosessen med å frembringe kvotienten S og resten R (trinn S305) inntil telleverdien cl blir =n2, til prosessen med å inkrementere telleverdien cl og dekrementere telleverdien c2 (trinn S309). Når telleverdien cl blir =n2 blir gruppen V20 ført som utgang fordi antallet av elementer som har -1 blant elementene i gruppen V20 er blitt til n2 bit(er) (n2=2 i dette eksempel).
Prosesser i denne andre tallplasseirngsenhet 220 blir forklart med et konkret eksempel. Forklaringen blir gitt med det følgende eksempel. Heltallet XI som egentlig er utgang fra den første tallplasseirngsenhet 210 skal være = 150 og den n-dimensjonale gruppe V20 som er utgang fra den andre tallplasseirngsenhet 220 er for eksempel den 8-dimensjonale gruppe (n=8) som har 3 bit(er) (ni =3) på 1,2 bit(er) (n2=2) på -1 og det andre 3 bit(er) på 0.
Først vil den andre tallplasseirngsenhet 220 sette 150 som argumentet Y2 (trinn S301).
Deretter vil den andre tallplasseirngsenhet 220 sette gruppen VI0 som har 3 bit(er) på 1 og 5 bit(er) på 0, som er utgang fra den første plasseringsenhet 210 som gruppen V20. Gruppen V21 på Fig. 10 er gruppeinngang som en erstatning (trinn S302).
Deretter lar den andre tallplasseirngsenhet 220 telleverdien cl bli =1 (trinn S303) og telleverdien c2 bli =n-nl =8-3=5 (trinn S304).
Deretter frembringer den andre tallplasseirngsenhet 220 kvotienten S=30 og resten R=0 fra argumentet Y2=150 og telleverdien c2=5 (trinn S305).
Deretter får den andre tallplasseirngsenhet 220 det første element, det vil si V20[l] fra venstre blant elementene som er 0 i gruppen V20 til å bli -1 (trinn S306). Gruppen V22 på Fig. 10 viser denne gruppestatus.
Deretter får den andre tallplasseringsenhet 220 argumentet Y2 til å bli =30 (=kvotienten S) (trinn S307).
Deretter, fordi telleverdien cl=l og fordi telleverdien cl ikke er n2 (=2) (nei i trinn S308) får den andre tallplasseirngsenhet 220 telleverdien cl =2 (inkrement) og telleverdien c2=4 (dekrement) (trinn S309).
Deretter frembringer den andre tallplasseirngsenhet 220 kvotienten S og resten R fra argumentet Y2=30 og telleverdien c2=4 en gang til (trinn S305). Kvotienten S er =7 og resten R er =2.
Deretter stiller den andre tallplasseirngsenhet 220 -1 for det (R+l)te element fra venstre blant de elementer som er 0 i gruppen V20, det vil si det tredje element. Gruppestatusen for gruppen V20 før oppstillingen er gruppen V22 som er vist på Fig. 10 og elementet på 0 er V22[3], V22[4], V22[6], V22[8]. Fordi det tredje element fra venstre i elementene som er 0 i gruppen V22 er V22[6] blir 0 for V22[6] stilt til å være -1 (trinn S306). Gruppestatusen etter denne oppstilling er gruppen V23 som er vist på Fig. 10.
Deretter setter den andre tallplasseringsenhet 220 7 (=kvotienten S) som argumentet Y2 (trinn S307).
Deretter, på dette punkt, fordi telleverdien cl er =2, det vil si telleverdien cl er =n2 (ja i trinn S308) gir den andre tallplasseringsenhet 220 som utgang gruppen V20 (trinn S310). Denne gruppe 20 utgang er i gruppestatusen vist som gruppe V23 på Fig. 10.
På denne måte gir gruppeutgivelsesenheten 200 den n-dimensjonale gruppe som har ni bit(er) på 1, n2 bit(er) på -1 og (n-nl-n2) bit(er) på 0 fra det hele tall X som blir spredefunksjonsverdien H(m).
Gruppeutgivelsesenheten 200 som er nevnt ovenfor vil jevnt som utgang gi gruppen L (n, ni, n2) basert på heltalls X som tilfredsstiller 0 = X ^(((n!)/(n-nl-n2)!)-l). Den følgende forklaring er begrenset til at heltallet X tilfredsstiller 0 _ X _(((n!)/(n-nl-n2)!)-1).
Den første tallplasseirngsenhet 210 stiller 1 for elementet i gruppen VI0 på det sted som er basert på heltallet X. Det følgende er rettet mot prosessen i detalj når denne stiller dette element på 1. Dessuten på samme måte som i den første utførelse i oppbyggingen av den første tallplasseirngsenhet 210 blir resten av trinn S205 i telleverdien c2 lik R_c2. Det samlede forklaringsforløp er som følger.
(1) Forklarer at utbyttingsprosessen ikke blir duplisert.
(2) Bruk av resultatet fra (1) forklarer et forhold mellom tallet X og et prosessinnhold i den gruppeelementutbyttende enhet til å være 1 til 1. (3) Her beregnes hvor mange typer på tallet X som gir den samme gruppe som utgang.
Uansett gruppen er det mulig å angi at antallet av typer på heltallet X er identisk i beregningen av (3) slik at utgangen blir fordelt jevnt for inngangen.
Først blir det faktum at plasseringsprosessen ikke blir duplisert forklart.
Først forklares det i det følgende at plasseringen av verdien (1 eller -1) i samme posisjon i gruppen ikke foregår mange ganger, det vil si at straks plasseringen er fullført blir posisjonen ikke betraktet som emne for plassering i noen påfølgende prosesser.
' Når telleverdien c2 er n
I trinn S206 blir det R_n+1 te element i elementet som er 0 i gruppen VI0 stilt på 1. Her, når telleverdien c2 er n, blir alle av elementene i VI0 som er 0 foran det R_n+1 te element stilt på 1. Dette betyr at det R_n+1 te element ganske enkelt blir stilt på 1.
' Når telleverdien c2 er n-1
I trinn S206 blir det R_(n-1)+1 te element i elementene som er 0 i gruppen V10 stilt på 1. Fordi elementet som er 0 i gruppen VI0 blir behandlet som et emne som skal stilles
til 1, skal det påpekes at det R_n te element som er stilt på tidspunktet da telleverdien c2 er n ikke blir behandlet som dets emne. Når det R_(n-1)+1 te element blant elementene som er 0 i gruppen VI0 er R_(n-l)<R_n, er det ganske enkelt det R_(n-1)+1 te element i gruppen V10. Hvis R_(n-l)>R_n, er det det R_(n-l)+2 te element i gruppen V10.
Som nevnt ovenfor blir det element som er stilt på 1 når telleverdien c2 er i ikke betraktet som et emne som skal stilles på 1 i det trinn der telleverdien c2 er i+1 og deretter. Derfor blir det element som er stilt en gang ikke stilt på nytt.
' Etter at prosessen for den første tallplasseirngsenhet 210 er fullført
Derfor, ved det punkt der alle prosesser er fullført når telleverdien c2 er fra n til (n-nl+1), har gruppen V10 ni bit(er) på 1 og andre (n-nl) bit(er) på 0. Den ovenstående forklaring om den første tallplasseirngsenhet 210 kan også benyttes for den andre tallplasseirngsenhet 220. Ved det punkt der prosessen i den andre tallplasseirngsenhet 220 er fullført, har gruppen V20 ni bit(er) på 1, n2 bit(er) på -1 og andre (n-nl-n2) bit(er) på 0.
Entydigheten ved prosessen for den første tallplasseringsenhet 210 og den andre tallplasseirngsenhet blir forklart.
Ved bruk av det ovenstående resultat (plassering av verdien blir ikke gjentatt) forklarer det følgende at forholdet mellom heltallet X og prosessinnholdet i tallplasseringsenheten er 1 til 1.
Forholdet mellom heltallet X og rekker.
Anta at heltallet X er et helt tall som tilfredsstiller 0 = X ^((n!)/(n-nl-n2)!)-l). Ved dette punkt, på samme måte som i den første utførelse når telleverdien c2 er I, anta R i trinn S205 i den første tallplasseringsenhet å være R_i og R i trinn S305 som utfører samme prosess for den andre tallplasseringsenhet er også R i. Telleverdien c2 for den første tallplasseringsenhet 210 er her i området fra n til n-nl+1. Telleverdien c2 for den andre tallplasseringsenhet 220 er i området fra n-nl til n-nl-n2+l. Det skal derfor påpekes at telleverdien c2 ikke blir overlappet mellom den første tallplasseringsenhet og den andre tallplasseringsenhet. Ved dette punkt opptrer heltallet X på samme måte som i den første utførelse.
Derfor har X et 1 til 1 forhold med rekken R_(n-nl-n2+l),..., R_n.
' Rekke og heltallsplassering
Når telleren c2 er i med R_i(n-nl-n2+l_i^n) blir 1 stilt der det R'_i+1 te element i gruppen V20 er n-nl+l_i_ii, og -1 blir stilt når det R'_i+1 te element i gruppen V20 er n-n 1 -n2+1 _i_n-n 1. Ved dette punkt, innbefattende verdien for telleren c2 når en sekvens, det vil si 1 eller -1 blir stilt har rekken R_(n-nl-n2+l),..., R_n og den ovennevnte oppstilling forholdet 1 til 1.
Når telleverdien c2 er j (j#) blir det R'_i+1 te element stilt på y (y er 1 eller -1). Når
telleverdien c2 er i blir den samme gruppe V20 ført ut for å stille det R'J+l te element på y selv om en verdi i telleverdien c2 blir byttet ut når y blir stilt. Den samme gruppe V blir ikke i noe tilfelle gitt som utgang på annen måte enn dette. Hvis den samme ide som
i den første utførelse blir benyttet har denne type verdiutbytting av telleverdien c2 (ni)! bit(er) hvis y er 1 og (n2)! bit(er) hvis y er -1. Derfor har heltallet X som gir som utgang den samme gruppe V20 (ni)! x (n2)! typer.
Gruppen tilhører L (n, ni, n2) som har n!/(nl)! x (n2)! x (n-nl-n2)!) typer. Derfor er det mulig for gruppeutgangsenheten 200 i den andre utførelse å gi som jevn utgang n!/((nl)! x (n2)! x (n-nl-n2)!) typer på grupper basert på n!/(n-nl-n2)! typer på heltallet
X.
Dessuten er det fra den ovenstående forklaring opplagt at gruppeutgangsenheten 200 alltid gir samme utgang for samme inngang.
Den ovenstående beskrivelse gjelder når X<n!/(n-nl-n2)!. Den samme beskrivelse kan benyttes når X>n!/(n-nl-n2)! ved å ta det gjenværende X dividert med (n!/(n-nl-n2)!).
En forskjell i resultatet mellom den første utførelse og den andre utførelse blir her forklart.
I den første utførelse kan telleverdien c for telleren c' svinge fra n til 2.1 motsetning til dette vil i den første tallplasseirngsenhet 210 og den andre tallplasseirngsenhet 220 i den andre utførelse telleverdien c2 for telleren c2' svinge fra n til (n-nl-n2+l). Derfor har verdien for heltallet X n! typer i den første utførelse mens det har (n!/(n-nl-n2)!) typer i den andre utførelse. Sammenlignet med den første utførelse kan derfor inngangstypen for den andre utførelse bli redusert til (l/(n-nl-n2)!) og en bitlengde for den nødvendige inngang kan være kortere.
Et eksempel på bruk av virkelige parametere blir forklart. Når n=263, nl=16, n2=16 er gruppen L (n, ni, n2) tilhører n!/((nl)! x (n2)! x (n-nl-n2)!) = 2 A 163. På dette tidspunkt blir n!/(n-nl-n2)! = 2 A 255. For å opprettholde en velbalansert fordeling av spredefunksjonen krever spredefunksjonen 255 biter eller mer som sin utgangslengde. Sammenlignet med den første utførelse er spredefunksjonens utgangslengde som er nødvendig 1486 biter mindre slik at den far en bedre effektivitet enn den første utførelse.
Med den foreliggende utførelse som denne kan gruppeutgivelsesenheten 200 jevnt gi som utgang den n-dimensjonale gruppe basert på heltallet X. Derfor, når FOSRT blir anvendt på NTRU kryptering i stedet for gruppeutgivelsesenheten 100 i krypteringsanordningen 10 på Fig. 2(A) er det mulig å opprettholde den velbalanserte fordeling ensartet for spredefunksjonen ved bruk av gruppeutgivelsesenheten 200 og få denne gruppeutgivelsesenhet 200 til å gi som jevn utgang den n-dimensjonale gruppe basert på spredefunksjonsverdien H(m) utgang fra gruppefunksjonsenheten 40. Som følge av dette kan sikkerhetsnivået forbedres for den krypteringstekst som er generert med krypteringsanordningen 10.
Videre fordi gruppeutgivelsesenheten 200 stiller gruppen V20 bare ut fra informasjonen om heltallet X krever dette ikke bruk av noen minnetabell. Dermed kreves det bare liten minnekapasitet.
Dessuten, i stedet for gruppeutgivelsesenheten 105 i dekrypteringsanordningen 15 på
Fig. 2(B) kan den krypterte tekst dekrypteres ved bruk av denne gruppeutgivelsesenhet 200.
Dessuten, selv om det har strukturen for bruk av gruppeutgivelsesenheten 200 for krypteringsanordningen 10 og gir som utgang gruppen basert på spredefunksjonsverdien er den ikke begrenset til dette.
(Tredje utførelse)
En krypteringsanordning som gjelder den tredje utførelse av foreliggende oppfinnelse blir forklart. Sammenlignet med krypteringsanordningen 10 på Fig. 1 inkluderer krypteringsanordningen i den foreliggende utførelse en gruppeutgivelsesenhet 300 som har en annen struktur enn gruppeutgivelsesenheten 100. Siden komponentene er identiske er forklaring av disse utelatt.
Gruppeutgivelsesenheten 300 i foreliggende oppfinnelse blir forklart med henvisning til diagrammer.
Fig. 11 er et blokkdiagram som viser oppbyggingen av gruppeutgivelsesenheten 300 i den foreliggende utførelse.
Denne gruppeutgivelsesenhet 300 innfører heltallet X og gir som utgang gruppen V40 som tilhører L (n, ni, n2). n, ni og n2 er her forhåndsinnstilt og ført til gruppeutgivelsesenheten 300.
I gruppeutgivelsesenheten 300 som består av en første tallplasseringsenhet 310 og en andre tallplasseringsenhet 320 utføres prosessen med programvare i en mikrodatamaskin og maskinvare som for eksempel en elektrisk krets på samme måte som gruppeutgivelsesenheten 100.
Den første tallplasseringsenhet 310 fører som inngangsheltallet X og gir som utgang den n-dimensjonale gruppe V30 som har ni bit(er) på 1 og andre elementer på 0 og heltallet X2 som er resultatet av en bestemt beregning av heltallet X. Den første tallplasseringsenhet 310 bestemmer forsøksvis gruppeelementet som har 0 i alle gruppens elementer og endrer gruppeelementene på 0 til 1 basert på heltallet X.
Den andre tallplasseirngsenhet 320 gir som inngang gruppen V30 og heltallet X2 som utgang fra den første tallplasseirngsenhet 310 og gir som utganger den n-dimensjonale gruppe V40 som har ni bit(er) på 1, n2 bit(er) på -1 og andre n(n-nl-n2) bit(er) på 0. Den andre tallplasseirngsenhet 320 forandrer her det gruppeelement som er 0 i gruppeutgangen fra den første tallplasseirngsenhet 310 til -1.
Virkemåten for den første tallplasseirngsenhet 310 blir nå forklart.
Fig. 12 er et flytskjema som viser prosessen i den første tallplasseirngsenhet 310. Den første tallplasseirngsenhet 310 utfører de følgende trinn. I den følgende beskrivelse antas det i te element (fra venstre) i gruppen V30 å være V30[i]. Telleren cl' i telleverdien cl og telleren c2' er telleverdien c2. C (s, t) viser antallet av kombinasjoner når t bit(er) blir valgt som et av s bitter). For å være mer bestemt, C (s, t) = s!/((s-t)! x «)•
Først vil den første tallplasseirngsenhet 310 sette heltallet X som argumentet Zl og far gruppen V30 til å bli den n-dimensjonale gruppe som har alle elementer med 0 (trinn S401). Den opprinnelige gruppe blir her bestemt.
Deretter stiller den første tallplasseirngsenhet 310 telleverdien cl for telleren cl' til ni og telleverdien c2 for telleren c2' til 1 (trinn S402).
Deretter bestemmer den første tallplasseirngsenhet 310 om argumentet Zl ^ C (n - c2, cl) er gyldig eller ikke (trinn S403). Når den første tallplasseringsenhet 310 finner at argumentet Zl = C (n - c2, cl) (ja i trinn S403) blir Zl-C (n - c2, cl) satt som argumentet Zl, telleverdien cl for telleren cl' blir dekrementert (cl«—cl-1) og det (n-c2+l)te element i gruppen V30 blir stilt på 1 (V30[n-c2+l]<-l) (trinn S404). Deretter inkrementer er den første tallplasseringsenhet 310 telleverdien c2 for telleren c2' (trinn 5406) .
På den annen side når den første tallplasseringsenhet 310 finner at argumentet Zl ikke er _C (n-c2, cl) (nei i trinn S403) blir det (n-c2+l)te element i gruppen V30 stilt på 0 (V30[n-c2+l]<—0) (trinn S405). Deretter inkrementerer den første tallplasseirngsenhet 310 telleverdien c2 for telleren c2' (trinn S406).
På denne måte blir, alt etter størrelsesforholdet mellom argumentet Zl og C (n-c2, cl), det (n-c2+l)te element i gruppen V30 stilt på 0 eller 1.
Deretter, når telleverdien c2 blir inkrementert (trinn S406) bestemmer den første tallplasseirngsenhet 310 telleverdien c2>n (trinn S407).
Når den første tallplasseirngsenhet 310 finner at telleverdien c2 ikke er >n (nei i trinn 5407) utføres en vurderingsprosess på nytt for å finne argumentet Zl ^ C (n-c2, cl)
(trinn S403) og gjentar fra vurderingsprosessen (trinn S403) prosessen med å bestemme telleverdien c2>n (trinn S407) inntil telleverdien c2 blir >n.
På den annen side når den første tallplasseirngsenhet 310 finner at telleverdien c2 >n (ja i trinn S407) gir den som utgang gruppen V30 og heltallet X2 (heltallet X2=heltallet X/C (n, ni)) til den andre tallplasseirngsenhet 320.
Prosessen i denne første tallplasseirngsenhet 310 blir forklart med et bestemt eksempel. Forklaringen inneholder et eksempel som har heltallet X som virkelig inngang =50 og gruppe V30 utgangen fra den første tallplasseirngsenhet 310. For eksempel har den 8-dimensjonale gruppe (n=8) 4 (ni =4) bit(er) på 1 og andre 4 biter på 0.
Fig. 14(A) viser en gruppestatus for hver fase i gruppen V30.
Først setter den første tallplasseringsenhet 310 50 som argumentet Zl (trinn S401).
Deretter lar den første tallplasseringsenhet 310 telleverdien cl for telleren cl' bli 4 og telleverdien c2 for telleren c2' bli 1 (trinn S402).
Siden argumentet Zl (=50) i dette tilfellet er = C (7,4) (=35) (ja i trinn S403) gjør den første tallplasseringsenhet 310 argumentet Zl<—50-35=15, telleverdien cl=3, det åttende element fra venstre i gruppen V30, V30[8]=l (trinn S404). Gruppestatusen for gruppen V30 på dette punkt er gruppen V31 som er vist på Fig. 14.
Deretter inkrementerer den første tallplasseringsenhet 310 telleverdien c2 til 2 (trinn S406).
Fordi telleverdien c2 her ikke er >8 (nei i trinn S407) gir den første tallplasseringsenhet 310 ikke gruppen V30 som utgang og vurderer størrelsesforholdet mellom argumentet Zl og C(n-c2, cl) en gang til (trinn S403).
I dette tilfellet, fordi argumentet Zl (=15) er <C (6,3) (=20) (nei i trinn S403) sørger den første tallplasseringsenhet 310 for at det syvende element fra venstre i gruppen V30, V30[7] blir =0 (trinn S405). Gruppestatusen for gruppen V30 på dette punkt er den gruppe V32 som er angitt på Fig. 14.
På denne måte i følge størrelsesforholdet mellom argumentet Zl og C(n-c2, cl), 1 eller 0 blir stilt sekvensielt for hvert element i gruppen V30. Når alle elementer er stilt gu-den første tallplasseirngsenhet 310 som utgang gruppen V30 til den andre tallplasseirngsenhet 320.
Den ovenstående prosess er kalt Schalkvijk algoritmen. Denne Schalkvijk algoritme er beskrevet i detalj hos Schalkvijk, "An Algorithm for Source Coding", IT72-18,1972 (i det følgende blir dette dokument betegnet som "Litteratur 4").
1 det følgende blir prosessene for den andre tallplasseirngsenhet 320 beskrevet.
Fig. 13 er et flytskjema for å vise prosessen i den andre tallplasseirngsenhet 320. Den andre tallplasseirngsenhet 320 utfører de følgende trinn.
I det følgende forutsettes det at det i te element (fra venstre) i gruppen V40 er V40[i]. Dessuten er verdien på telleren cl' telleverdien cl og verdien for telleren c2' er telleverdien c2.
Først vil den andre tallplasseirngsenhet 320 sette heltallet X2 som er utgang fra den første tallplasseringsenhet 310 som argumentet Z2, sette gruppen V30 som gruppen
V40 og får gruppen W til å bli den (n-nl )te gruppe som har alle elementer med 0 (trinn S501).
Deretter får den andre tallplasseringsenhet 320 telleverdien cl for telleren cl' til å bli n2 og får telleverdien c2 for telleren c2' til å bli 1 (trinn S502).
Deretter avgjør den andre tallplasseringsenhet 320 om argumentet Z2 ^ C (n-nl-c2, cl)
(trinn S503). Når den finner at Z2 ^ C (n-nl-c2, cl), Ga i trinn S503) blir Z2-C (n-nl-c2, cl) satt som argumentet Z2, telleverdien cl blir dekrementert (cl<—cl-1), det (n-nl-c2+l)te element i gruppen W blir stilt på -1 (trinn S504). Deretter vil den andre tallplasseringsenhet 320 inkrementere telleverdien c2 (trinn S506).
På den annen side, når den andre tallplasseringsenhet 320 finner at Z2 ikke er ^ C (n-nl-c2, cl) (nei i trinn S503) far den det (n-nl-c2+l)te element i gruppen W til å være 0 (trinn S505). Deretter vil den andre tallplasseringsenhet 320 inkrementere telleverdien c2 (trinn S506).
På denne måte, i overensstemmelse med størrelsesforholdet mellom argumentet Z2 og C (n-nl-c2, cl) blir det (n-nl-c2+l)te element i gruppen W stilt på 0 eller -1.
Når den andre tallplasseirngsenhet 320 inkrementerer telleverdien c2 (trinn S506) vurderer den om telleverdien c2 er c2>n-nl (trinn S507). Når den andre tallplasseringsenhet 320 finner at c2 ikke er >n-nl (nei i trinn S507) utføres vurderingen på nytt for å finne ut om argumentet Z2 er ^ C (n-nl-c2, cl) (trinn S503) og gjentar fra den ovenstående prosess (trinn S503) til prosessen for c2>n-nl (trinn S507) inntil c2 blir >n-nl.
I korthet stiller den andre tallplasseringsenhet 320 det (n-nl-c2+l)te element i gruppen W på 0 eller -1 alt etter størrelsesforholdet mellom argumentet Z2 og C (n-nl-c2, cl) hver gang telleverdien c2 er fra 1 til (n-nl).
På den annen side når den andre tallplasseirngsenhet 320 finner ut om c2 er >n-nl (ja i trinn S507) går den til prosessen for å gjøre telleverdien cl til 1 og telleverdien c2 til 1 (trinn S508).
Deretter vil den andre tallplasseirngsenhet 320 finne ut om det cl te element i gruppen V40, V40[cl] er 1 (trinn S509). Hvis den finner ut at V40[cl] er =1 (ja i trinn S509) inkrementerer den telleverdien cl (cl<—cl+1) (trinn S512) og utfører den ovenstående vurderingsprosess (trinn S509).
På den annen side når den andre tallplasseirngsenhet 320 finner ut at V40[cl] ikke er =1 (nei i trinn S509) settes c2 te element i gruppen W, W[c2] som det cl te element i gruppen V40, V40[cl] og inkrementerer telleverdien c2 (c2<—c2+l) (trinn S510).
Deretter vurderer den andre tallplasseirngsenhet 320 om telleverdien c2 er c2>n-nl (trinn S511). Når telleverdien c2 ikke finnes å være c2>n-nl (nei i trinn S511) går den til prosessen med å inkrementere telleverdien cl (cl<—cl+1) (trinn S512).
På den annen side når telleverdien c2 finnes å være c2>n-nl gir den andre tallplasseirngsenhet 320 som utgang gruppen V40 eksternt og avslutter prosessen.
Her, fra den ovenstående prosess for å få telleverdien cl til å bli 1 og telleverdien c2 til å bli 1 (trinn S508) til prosessen for å gi som utgang gruppen V40 (inntil trinn S512) blir elementene for W[c2] sekvensielt byttet med 0 elementet for V[cl].
Disse prosesser i den andre tallplasseirngsenhet 320 blir forklart med et spesifikt eksempel. Forklaringen forutsetter som eksempel at heltallet X2 som virkelig kommer som inngang =20 og at gruppen V40 som er utgang fra den første tallplasseirngsenhet 320 for eksempel er den 8-dimensjonale gruppe (n=8) som har 4 biter (ni =4) på 1,2 biter (n2=2) på -1 og andre 2 biter på 0.
Fig. 14(B) viser gruppestatusen for hver fase for gruppen V40 og Fig. 14(C) viser gruppestatusen for hver fase av gruppen W.
Først sørger den andre tallplasseirngsenhet 320 for å gjøre argumentet Z2 =20, bytter for eksempel den gruppestatus som er vist i gruppen V41 på Fig. 14(B) som er utgang fra den første tallplasseirngsenhet 310 med gruppen V40 og får gruppen W til å bli den (n-nl) dimensjonale (4-dimensjonale) gruppe med alle elementer lik 0 (trinn S501).
Deretter stiller den andre tallplasseirngsenhet 320 telleverdien cl for telleren cl' på 2 og stiller telleverdien c2 på 1 (trinn S502).
Deretter avgjør den andre tallplasseirngsenhet 320 størrelsesforholdet mellom argumentet Z2 og C (n-nl-c2, cl) (trinn S503). Fordi argumentet Z2 (=20) er ^ C (3,2)
(=3) (ja i trinn S503) får den andre tallplasseringsenhet 320 argumentet Z2 til å bli =20-3=17, telleverdien cl til å bli 1 og det fjerde element fra venstre i gruppen W, det vil si W[n-nl-c2+l] til å bli -1 (trinn S504). Denne gruppestatus er som vist med gruppen Wl på Fig. 14(C).
På denne måte blir hver element i gruppen W stilt til å være 0 eller -1. Gruppen W2 på
Fig. 14(C) er et eksempel på hvorledes gruppestatusen for alle elementer blir stilt.
Deretter, når alle elementer i gruppen W er stilt (ja i trinn S507) far den andre tallplasseirngsenhet 320 telleverdien cl for telleren cl' til å bli 1 og telleverdien c2 for telleren c2' til å bli 1 (trinn S508). I en påfølgende prosess blir hvert element i gruppen W byttet med 0 elementet i gruppen V41.
Anta på dette punkt at gruppestatusen for gruppen V40 er gruppen V41 og gruppestatus for gruppen W er gruppen W2. Først, siden det cl te element i gruppen V41, det vil si V41 [1] er =0 (nei i trinn S509) blir det c2 te element i gruppen W, det vil si 0 som er W[l] byttet med V41[l]. Gruppen V42 på Fig. 14(B) er i en slik status.
På denne måte vil den andre tallplasseirngsenhet 320 bytte alle elementer i gruppen W2 med 0 elementet i gruppen V41 (prosessen fra trinn S509 til trinn S512) og gi som utgang gruppen 41. Gruppen V43 på Fig. 14(B) er gruppestatusen når elementet for gruppe 2 er byttet med 0 elementet i gruppen V41.
Hele prosesser i gruppeinnføirngsenheten 300 blir her forklart. Til å begynne med vil den første tallplasseirngsenhet 310 føre heltallet X som inngang og gi som utgang den n-dimensjonale gruppe V30 som har ni bit(er) på 1 og andre elementer på 0 og heltallet X2 (heltallet X2=heltallet X/C (n, ni)) til den andre tallplasseringsenhet 320.
Deretter fører den andre tallplasseirngsenhet 320 som inngang gruppen V30 som er utgang fra den første tallplasseirngsenhet 310 og heltallet X2 og gir som utgang den n-dimensjonale gruppe V40 som har ni bit(er) på 1, n2 bit(er) på -1 og andre elementer på 0.
Den foreliggende utførelse gjør bruk av Schalkvijk algoritmen. For å være mer bestemt blir Schalkvijk algoritmen benyttet når plasseringsstedet blir bestemt for elementet på 1 i gruppen V30 av den første tallplasseirngsenhet 310 og når plasseringsstedet blir bestemt for elementet på -1 i gruppen V40 av den andre tallplasseirngsenhet 320. Denne gruppeutgivelsesenhet 300 omformer heltallet X som tilfredsstiller 0 ^ X <_>X (n, ni) x C (n-nl, n2)(=n!/((nl)! x (n2)! x (n-nl-n2)!) til L(n, ni, n2) i et 1 til 1 forhold.
Det følgende forklarer omformingen av 1 til 1 forholdet som begrenser eksemplet til det heltall X som tilfredsstiller 0 = X = C (n, ni) x C (n-nl, n2).
I den første tallplasseringsenhet 310 og i den andre tallplasseirngsenhet 320 blir plasseringsstedet bestemt for 1 og -1 ved bruk av Schalkvijk algoritmen. Hvis objektet er begrenset til typene på utgang for inngang eller mindre er det kjent at Schalkvijk algoritmen kan omforme objektet i 1 til 1 forholdet. Dette er beskrevet i detalj i den nevnte Litteratur 4. Dermed kan gruppeutgivelsesenheten 300 i den tredje utførelse gis som utgang gruppen V40 som er i 1 til 1 forholdet med heltallet X. Som følge av dette antas gruppeutgivelsesenheten 300 å gi som jevn utgang den gruppe som er basert på inngangsheltallet X.
Her er en forskjell i virkningene mellom den tredje utførelse og de første og andre utførelser.
I den første utførelse er det for verdien av heltallet X for en utgangsverdi (ni)! x (n2)! x (n-nl-n2)! typer som dets inngangsverdi. I den andre utførelse er det (ni)! x (n2)! typer. Sammenlignet med disse blir det omformet til 1 til 1 forholdet i den tredje utførelse. På grunn av dette holdes den billengde som er nødvendig for inngangen på et minimum for å opprettholde det enhetlige for inngangen.
Eksempel på bruk av en virkelig parameter blir forklart. Når n=263, nl=16, n2=16 vil den gruppe som tilhører ø (n, ni, n2) er n!/((nl)! x (n2)! x (n-nl-n2)!) = 2 A 163. Derfor behøver utgangslengden for spredefunksjonen så vidt være 163 biter eller mer noe som er 92 biter mindre enn det som er krevd for den andre utførelse.
Imidlertid, C (n-nl, c2) og C (n-nl-n2, c2) må beregnes i den første tallplasseirngsenhet og den andre tallplasseirngsenhet for gruppeutgivelsesanordningen 300 i den tredje utførelse. Siden dette innebærer fakultetberegning blir beregningsvolumet større. På den annen side i den første og andre utførelse er beregningsvolumet fremdeles lite. Årsaken er at de ikke inkluderer den fakultetberegning.
På denne måte, i følge den foreliggende utførelse kan gruppeutgivelsesenheten 300 på en jevn måte gi som utgang den n-dimensjonale gruppe basert på heltallet X. Basert på dette blir FOSRT benyttet til NTRU kryptering og gruppeutgivelsesenheten 300 benyttes i stedet for gruppeutgivelsesenheten 100 for krypteringsanordningen 10 på Fig. 2(A). Derfor blir det mulig å opprettholde den velbalanserte fordeling av spredefunksjonen ved å få gruppeutgivelsesenheten 300 til å gi som jevn utgang den n-dimensjonale gruppe basert på spredefunksjonsverdien H(m) som er utgang fra spredefunksjonsenheten 40. På denne måte kan sikkerhetsnivået for krypteringsteksten som frembringes av krypteringsanordningen 10 forbedres.
Dessuten, fordi gruppeutgivelsesenheten 300 stiller gruppen V40 bare fra heltallet X kreves det ikke bruk av en minnetabell og bare lite minnekapasitet.
Dessuten kan den krypterte tekst dekrypteres ved bruk av gruppeutgivelsesenheten 300 i stedet for av gruppeutgivelsesenheten 105 i dekrypteringsanordningen 15 på Fig. 2(B).
Videre, selv om den har struktur til å gi som utgang gruppen basert på spredefunksjonsverdien ved bruk av gruppeutgivelsesenheten 300 i krypteringsanordningen 10 er den ikke begrenset til dette.
(Fjerde utførelse)
Krypteringsanordningen som gjelder den fjerde utførelse av foreliggende oppfinnelse blir forklart. Krypteringsanordningen i den foreliggende utførelse er dannet av gruppeutgivelsesenheten 400 som har en annen struktur enn gruppeutgivelsesenheten 100 sammenlignet med krypteringsanordningen 10 på Fig. 2. Siden annen struktur er felles er forklaring av denne utelatt.
Gruppeutgivelsesenheten 400 i foreliggende utførelse blir forklart på grunnlag av diagrammer.
Fig. 15 er en skjematisk gjengivelse av strukturen for gruppeutgivelsesenheten 400 i denne utførelse.
Denne gruppeutgivelsesenhet 400 får som inngangsheltallet X og gir som utgang gruppen V50 som tilhører L (n, ni, n2). L (n, ni, n2) som her er hele den n-dimensjonale gruppe som har ni bit(er) på 1, n2 bit(er) på -1 og andre (n-nl-n2) bit(er) på 0, og n, ni, n2 er forhåndsinnstilt i gruppeutgivelsesenheten 400. Denne gruppeutgivelsesenhet 400 finner ut forsøksvis det gruppeelement der alle gruppeelementer er 0 og endrer gruppeelementene som er 0 til 1 og -1 basert på heltallet
X.
Gruppeutgivelsesenheten 400 utfører prosessen ved hjelp av programvare i mikrodatamaskinen eller i maskinvare som for eksempel en elektrisk krets på samme måte som gruppeutgivelsesenheten 100.
I det følgende forklares prosessene for gruppeutgivelsesenheten 400.
Først sørger gruppeutgivelsesenheten 400 for at gruppen V50 er i den gruppestatus som har 0 i alle elementer.
Deretter vil gruppeutgivelsesenheten 400 dividere hele tallet X med hver 8 biter. Heltallet X er angitt med et sett med bit informasjon uttrykt i 2 verdier på 0 og 1. Som vist på Fig. 17 blir heltallet X delt opp i (nl+n2) bit(er) for hver 8 biter.
Fig. 17 er et skjema for å vise den status at heltallet X er delt opp i hver delt informasjon [0], delt informasjon D[l] ~delt informasjon [nl+n2-l]. Hver delt informasjon D[0], delt informasjon D[l] ~delt informasjon D[nl+n2-l] viser et helt tall på 8 biter informasjon.
Her, hvis de 8 biter delt informasjon D[0] viser heltallet Q, stiller gruppeutgivelsesenheten 400 1 hvis det Q+l te (i det følgende betegnet som det p0 te) element er 0. Deretter stiller gruppeutgivelsesenheten 400 1 hvis det pl te element som er vist med pl= (p0+D[l]) mod n er 0.
På denne måte stiller gruppeutgivelsesenheten 400 sekvensielt 1 hvis det pi te element som er vist med pi= (P(i-1)+D[i]) mod n (her, i=l~ nl+ n2-l) i gruppen V50 basert på den delte informasjon D[i] er 0. Dessuten viser det pi te element i gruppen V50 til det pi te element fra venstre i gruppen V50.
På dette punkt vil gruppeutgivelsesenheten 400 ikke stille 1 hvis det pi te element i gruppen V50 ikke er 0, altså pi<—(pi+1) mod n, og stiller 1 til elementet på 0 som befinner seg på høyre side av det pi te element.
Som nevnt ovenfor utfører gruppeutgivelsesenheten 400 prosessen med å stille elementet i gruppen V50 på 1. Når det finnes ni bit(er) på 1 utfører gruppeutgivelsesenheten 400 prosessen med å stille det -1 element basert på den delte informasjon D[i] inntil antallet av -1 elementet i gruppen V50 har blitt n2 bit(er).
Her beskrives prosessen i gruppeutgivelsesenheten 400 i detalj.
Fig. 16 er et flytskjema for å vise den prosess som utføres av gruppeutgivelsesenhet 400. Gruppeutgivelsesenheten 400 arbeider gjennom de følgende trinn. Verdien for telleren cl' skal stilles på telleverdien cl og verdien for telleren c2' skal stilles på telleverdien c2.
Først vil gruppeutgivelsesenheten 400 bytte heltallet X med argumentet Y10 (trinn S601).
Deretter sørger gruppeutgivelsesenheten 400 for at gruppen V50 kommer i den gruppetilstand som har alle elementer 0 (trinn S602).
Deretter begrenser gruppeutgivelsesenheten 400 heltallet X for hver 8 biter og deler dette i del informasjonen D[0], del informasjonen D[l] -delt informasjon D[nl+n2-l](trinn S603).
Deretter stiller gruppeutgivelsesenheten 400 telleverdien cl for telleren cl' på 0 (trinn S604).
Deretter stiller gruppeutgivelsesenheten 400 telleverdien c2 for telleren c2' på D[0]+1 (trinn S605). Som følge av dette blir telleverdien c2 verdien for heltallet Q+l som er vist med den 8 bit del informasjon D[0].
Deretter vurderer gruppeutgivelsesenheten 400 om det c2 te element V50[c2] i gruppen V50 er 0 (trinn S606). Hvis det ikke er 0 (nei i trinn S606) blir telleverdien c2 stilt for å være c2<—(c2+l) mod n (trinn S607) og gruppeutgivelsesenheten 400 vurderer igjen om elementet V50[c2] er 0 eller ikke (trinn S606). På den annen side, når gruppeutgivelsesenheten 400 finner at V50[c2] er 0 (ja i trinn S606) blir elementet V50[c2] stilt å være 1 (trinn S608).
I følge disse prosesser, det vil si vurderingsprosessen hvis elementet V50[c2] er 0 (trinn S606), prosessen for c2<—(c2+l) mod n (trinn S607), og prosessen for V50[c2]<— 1 hvis elementet for V50[c2] ikke er 0, blir 0 elementet på høyre side av V50[c2] sekvensielt avsøkt rundt og stilt på 1.
Deretter vurderer gruppeutgivelsesenheten 400 om telleverdien cl for telleren cl' er cKnl-1 (trinn S609).
Når gruppeutgivelsesenheten 400 finner at telleverdien cl for telleren cl' er cKnl-1 (ja i trinn S609) inkrementerer den telleverdien cl (cl<—cl+1) så vel som gjør telleverdien c2 til c2<-(c2+D[cl]) mod n (trinn S610) og vurderer igjen om V50[c2] er 0 (trinn S606).
Prosessen blir således utført for å stille elementet til å bli 1 inntil antallet av 1 elementet i gruppen V50 blir ni bit(er).
På den annen side når gruppeutgivelsesenheten 400 finner at telleverdien cl ikke er cKnl-1 (nei i trinn S609) blir antallet av 1 elementet i gruppen V50 ansett for å være ni bit(er). Derfor, for å gå til prosessen med å stille elementet til -1 i gruppen V50 sørger den for å gjøre telleverdien cl til 0 (trinn S611) og gjør telleverdien c2 til c2<-(c2+D[nl]) mod n (trinn S612).
Deretter vurderer gruppeutgivelsesenheten 400 om elementet V50[c2] i gruppen V50 er 0 (trinn S614). Hvis det ikke er 0 (nei i trinn S614) gjøres telleverdien c2 til c2<—(c2+l)mod n (trinn S613) og vurderer en gang til om elementet V50[c2] er 0 (trinn S614). På den annen side, når gruppeutgivelsesenheten 400 finner at V50[c2] er 0 (ja i trinn S614) stilles elementet V50[c2] på -1 (trinn S615). 1 følge disse prosesser, det vil si prosessen med å vurdere om elementet V50[c2] er 0 (trinn S614), prosessen for c2<—(c2+l) mod n (trinn S613), og prosessen for V50[c2]<— -1 (trinn S615) hvis V50[c2] elementet ikke er 0, blir elementet på høyre side av V50[c2] som er 0 sekvensielt søkt rundt og stilt på -1.
Deretter vurderer gruppeutgivelsesenheten 400 om telleverdien cl for telleren cl' er cl<n2-l (trinn S616).
Når gruppeutgivelsesenheten 400 finner at det er cl<n2-l (ja i trinn 616) vil den inkrementere telleverdien cl(cl<—cl+1) så vel som gjøre telleverdien c2 til c2<—(c2+D[cl+nl])mod n (trinn S617) og vurderer en gang til om V50[c2] er 0 (trinn S614).
På den annen side, når gruppeutgivelsesenheten 400 finner at det ikke er cl<n2-l (nei i trinn S616) utgir den gruppen V50 når antallet av det -1 element i gruppen V50 blir n2 bit(er).
I det følgende beskrives et konkret eksempel sammen med flytskjemaet på Fig. 16.
Fig. 18 viser gruppestatusen for gruppen V50 ved hver fase i gruppeutgivelsesenheten 400.
Gruppen V50 er den 251-dimensjonale gruppe (n=251) og nl=50, n2=50. Dessuten blir den delte informasjonen når heltallet X deles med hver 8 biter for eksempel stilt til å være den delte informasjonen D[0]=139 og den delte informasjonen D[l]=130.
I dette konkrete eksempel er telleverdien c2 =D[0]+1=140 i flyten i flytskjemaet på Fig.
16 (trinn S605).
Deretter, fordi alle elementer i gruppen V50 er 0 blir det 140 te element V50[140] fra venstre i gruppen V50 stilt på 1 (trinn S608). Siden denne gruppestatus er i overensstemmelse med gruppen V51 som er vist på Fig. 18, er det 140 te element 1 og andre elementer er 0.
Deretter, fordi antallet av 1 elementet i gruppen V50 ikke er 50 biter (nei i trinn S609) blir telleverdien c2 stilt til å være c2<—(c2+D[l]) mod n (trinn S610) for å utføre prosessen med å stille gruppe V50 elementet på 1. Telleverdien c2 blir =(140+130) mod 251= 19 mod 251, det 19 element V51[19] fra venstre i gruppen V51 blir stilt til å være 1. Denne gruppestatus er som vist for gruppen V52 på Fig. 18 og angir at det 19 de element og det 140 de element fra venstre er 1 og andre elementer er 0.
På denne måte, når hvert element i gruppen V50 blir stilt på 1, hvis elementet i den posisjon som skal stilles inn, for eksempel V50[120], allerede er blitt 1, blir elementet på dets høyre side søkt rundt for å finne 0 elementet og det første 0 element som finnes blir stilt på 1. Deretter, hvis alle elementene opp til V50[251] er 0, går det rundt og går tilbake til det venstre V50[l] og stiller 0 elementet på 1.
På samme måte blir -1 elementet for gruppen V50 stilt sekvensielt.
Som nevnt ovenfor beslutter gruppeutgivelsesenheten 400 fortløpende det første 1 element i gruppen V50 basert på den delte informasjon D[0] som er funnet med heltallet X. Deretter, basert på delt informasjon D[i] som er funnet med heltallet X fra det første 1 element som er bestemt, blir plasseringen for å stille det neste element besluttet i rekkefølge da gruppen V50 blir jevnt fordelt fra heltallet X for å stille 1 eller -1.
På dette punkt krever heltallet X som skal være inngang (nl+n2) stykke(r) av 8 bit delt informasjon for at gruppeutgivelsesenheten 400 skal beslutte ni stykke(r) på 1 og n2 stykke(r) på -1 i gruppen V50. På grunn av dette kan det velges en stor verdi for heltallet X ved en formgivningsfase som gjør det mulig å stille hvert enkelt element i gruppen V50 tilstrekkelig.
På denne måte, i følge den foreliggende utførelse kan gruppeutgivelsesenheten 400 regelmessig gi som utgang den n-dimensjonale gruppe basert på heltallet X. Derfor, når det gjelder FOSRT anvendt på NTRU kryptering kan denne gruppeutgivelsesenhet 400 benyttes i stedet for gruppeutgivelsesenheten 100 i krypteringsanordningen 10 på Fig. 2(A) og gruppeutgivelsesenheten 400 vil regelmessig gi som utgang den n-dimensjonale gruppe basert på spredefunksjonsverdien H(m) som er utgang fra spredefunksjonsenheten 40. Derfor blir det mulig å bibeholde den velbalanserte fordeling av spredefunksjonen og forbedre sikkerhetsnivået for den krypteringstekst som frembringes med krypteringsanordningen 10.
Siden gruppeutgivelsesenheten 400 stiller gruppen V50 bare fra heltallet X krever dette videre ikke bruk av en minnetabell og krever bare lite minnekapasitet.
Dessuten ved bruk av denne gruppeutgivelsesenhet 200 i stedet for gruppeutgivelsesenheten 105 i dekrypteringsanordningen 15 på Fig. 2(B) kan den krypterte tekst bli dekryptert.
Dessuten har den en oppbygging slik at gruppeutgivelsesenheten 100 kan benyttes for krypteringsanordningen 10 til å gi som utgang gruppen basert på spredefunksjonsverdien men er ikke begrenset til dette.
Videre kan krypteringsanordningen 10 som er forklart i hver utførelse installeres og benyttes i en bærbar telefonanordning 500 som vist på Fig. 19 eller benyttes for et elektrisk oppgjør eller en elektrisk handel over internett.
I tillegg, i hver utførelse 1,2,3 og 4 vil hver gruppeutgivelsesenhet gi som utgang gruppen som har ni bit(er) på 1, n2 bit(er) på -1 og andre elementer på 0, men 1 og -1 kan være andre tall. Dessuten, i hver utførelse 1,2, 3 og 4, selv om hver gruppeutgivelsesenhet som utganger gir 3 verdier på 1, -1 og 0 kan det gi som utgang 2 verdier, 4 verdier eller mer.
Dessuten kan oppfinnelsen være en krypteringsmetode som benytter en av utførelsene 1,2,3 og 4.
Fordi den numeriske gruppeutgivelsesanordning, som gir som utgang forskjellige n-dimensjonale grupper bestående av n K-verdiheltall der hver av disse er et av K typeheltall avhengig av et inngangsheltall, omfatter: en første gruppebeslutningsenhet som kan virke ved forsøksvis å beslutte en første gruppe; og en endringsenhet som kan endre et gruppeelement i den første gruppen som er besluttet av den første gruppebeslutningsenhet til n-dimensjonale grupper basert på inngangsheltallet, er det mulig å hente ut den n-dimensjonale gruppe basert på det hele tall som for eksempel en utgangsverdi for spredefunksjonen uten å benytte stor minnekapasitet. Derfor kan det skapes den n-dimensjonale gruppe som bibeholder en balanse basert på heltallsverdiene som er jevnt fordelt med spredefunksjonen.
Dessuten, ved hjelp av den numeriske gruppeutgivelsesanordning i følge oppfinnelsen der endringsenheten omfatter en divisjonsenhet som kan dividere inngangsheltallet med et bestemt helt tall og frembringe en rest og en utbyttingsenhet som er i stand til å bytte gruppeelementet fra den første gruppe basert på den rest som fremkommer fra divisjonsenheten kan den velbalanserte n-dimensjonale gruppe frembringes basert på heltallsverdiene som er jevnt fordelt med spredefunksjonene etc. uten bruk av for meget minnekapasitet.
Dessuten, med den numeriske gruppeutgivelsesanordning der endringsenheten innbefatter en divisjonsenhet som kan dividere inngangsheltallet med et bestemt heltall og frembringe en rest og en tallplasseirngsenhet som kan bytte gruppeelementet som er plassert i en posisjon basert på den rest som frembringes med divisjonsenheten blant gruppeelementene for heltallet P3 i den første gruppe med heltallet Pl, er det mulig å frembringe den n-dimensjonale gruppe som videre bibeholder balansen basert på heltallsverdiene som er jevnt fordelt med spredefunksjonen uten for meget minnekapasitet.
Med krypteringsanordningene i følge oppfinnelsen som krypterer en melding: omfattende en funksjonsverdi utgangsenhet som kan foreta beregning av meldingen med en enveis omformingsfunksjon og gi sitt resultat som utgang i form av en funksjonsverdi; en numerisk gruppeutgivelsesenhet innbefattende en første gruppebeslutningsenhet som forsøksvis beslutter en første gruppe og en endringsenhet som endrer et element i den første gruppe besluttet av en første gruppebeslutningsenhet til en n-dimensjonal gruppe basert på funksjons verdien som er utgang fra funksjonsverdi utgangsenheten og som kan gi som utgang forskjellige n-dimensjonale grupper bestående av n K-verdiheltall der hvert av disse er et av K typer av hele tall avhengig av funksjonsverdien; og en krypteringstekstgenererende enhet som kan generere en krypteringstekst basert på gruppeutgangen fra den numeriske gruppeutgivelsesenhet, er det mulig å skape en velbalansert n-dimensjonal gruppe basert på de hele tall som er jevnt fordelt med enveisfunksjonen som for eksempel spredefunksjonsverdien for en melding slik at sikkerhetsnivået for krypteringsteksten kan forbedres.

Claims (11)

1. Krypteringsanordning (10) for å kryptere en melding, hvilken krypteringsanordning (10) innbefatter en funksjonsverdiutgangsenhet (40) klargjort til å beregne en funksjonsverdi for meldingen ved bruk av en enveisomforaungsfunksjon, karakterisert ved at krypteringsanordningen (10) innbefatter: en numerisk gruppeutgangsinnretning (100) klargjort til å utgi en n-elementers vektor avhengig av den funksjonsverdien som blir anvendt som et inngangsheltall større eller lik 0, hvor hvert av de n elementene er valgt blant K forutbestemte, distinkte heltallsverdier, hvilken numeriske gruppeutgangsinnretning (100) innbefatter: en første gruppebeslutningsenhet (110) klargjort til å bestemme en n-elementers vektor som en førstevektor, og en erstatningsenhet (120) anordnet til å motta funksjonsverdien som en inngang og klargjort til å endre et vektorelement i førstevektoren bestemt av den første gruppebeslutningsenheten, hvilken erstatningsenhet inkluderer en divisjonsenhet klargjort til først å dele funksjonsverdien med et spesielt positivt heltall C mindre eller lik n, og å fremstille en rest, så repeterende å dele kvotienten oppnådd ved delingen med det spesielle heltallet C, mens det spesielle heltallet C dekrementeres med en for hver divisjon begynnende fra n til og med 2, og å fremstille rester, og hvilken erstatningsenhet (120) er anordnet til repeterende å erstatte førstevektorens Cte element med et vektorelement i førstevektoren som er lokalisert ved en posisjon som svarer til hver av restene repeterende fremstilt av delingsenheten, og en krypteringstekstgenereringsenhet (50) klargjort til å generere en krypteringstekst for meldingen ved bruk av det polynom som svarer til den n-elementers vektoren som blir utgitt fra den numeriske gruppeutgangsinnretningen (100).
2. Krypteringsanordning ifølge krav 1, hvor de forutbestemte K distinkte heltallsverdiene erPi,P2, ...,ogPic den numeriske gruppeutgangsinnretningen utgir en n-elementers vektor i hvilken hvert av ni elementer er et heltall Pi, hvert av n2 elementer er et heltall P2,..., og hvert av nie elementer er et heltall Pk, hvor n = ni+n2+...+nic, den første gruppebeslutningsenheten (110) bestemmer, som førstevektoren, en forutbestemt vektor i hvilken hvert av ni elementer er et heltall Pi, hvert av n2 elementer er et heltall P2,..., og hvert av n& elementer er et heltall Pk, og erstatningsenheten (120) erstatter vektorelementet til førstevektoren med et vektorelement til førstevektoren som er lokalisert i en posisjon som svarer til resten.
3. Krypteringsanordning ifølge krav 2, hvor divisjonsenheten utfører divisjonen ved å subtrahere, fra det inngitte spesielle heltallet, en verdi som bestemmes avhengig av et antall ganger divisjonen repeteres, og repeterer divisjonen, og erstatningsenheten (120) utfører erstatningen for hver av restene repeterende fremstilt av divisjonsenheten på følgende vis, kun i det tilfellet hvor hver av restene er lik eller større enn den verdien som bestemmes av det antall ganger divisjonen repeteres: erstatter vektorelementet Pi til førstegangsvektoren med heltallet P2 for n2 antall ganger,..., og erstatter vektelementet Pi til førstevektoren med heltallet Pk for nK antall ganger, hvor vektorelementet Pi er lokalisert i en posisjon som bestemmes avhengig av resten.
4. Krypteringsanordning (10) for å kryptere en melding, hvilken krypteringsanordning (10) innbefatter: en funksjonsverdiutgangsenhet (40) klargjort for å beregne en funksjonsverdi for meldingen ved bruk av en enveisomformingsfunksjon, karakterisert ved at krypteringsanordning (10) innbefatter: en numerisk gruppeutgangsinnretning (100) klargjort for å utgi en n-elementers vektor avhengig av den funksjonsverdien som blir anvendt som et inngangsheltall større eller lik 0, hvor hver av de n-elementene er valgt blant K forutbestemte, distinkte heltallsverdier, hvilke numeriske gruppeutgangsinnretning (100) innbefatter: en første gruppebeslutningsenhet (110) klargjort til å bestemme en n-elementers vektor som en førstevektor, og en erstatningsenhet (120) anordnet til å motta funksjonsverdien som en inngang og klargjort til å endre et vektorelement i førstevektoren bestemt av den første gruppebeslutningsenheten, hvilken erstatningsenhet (120) inkluderer en splittenhet klargjort til å splitte inngangsheltallet til splittede heltall, hver av hvilke er dannet av et spesielt antall biter, og en divisjonsenhet klargjort til først å dividere funksjonsverdien med et spesielt positivt heltall mindre eller lik n, og å fremstille en rest, så repeterende å bestemme rester ved å inkrementere, med en, hver av de splittede heltallene skaffet av splittenheten og så ved å dividere hver av de resulterende splittede heltallene med det spesielle heltallet, hvilken erstatningsenhet (120) er anordnet for å erstatte minst ett vektorelement i førstevektoren med en av de forutbestemte K distinkte heltallsverdiene, hvilket vektorelement er lokalisert ved en posisjon bestemt avhengig av minst ett av de splittede heltallene skaffet av splitteenheten og restene skaffet av divisjonsenheten, og en krypteringstekstgenereringsenhet (50) klargjort til å generere en krypteringstekst for meldingen ved bruk av et polynom som svarer til n-elementers vektoren utgitt fra den numeriske gruppeutgangsinnetningen (100).
5. Krypteringsanordning ifølge krav 4, hvor de forutbestemte K distinkte heltallsverdiene er Pi, P2,..., og Pk, den numeriske gruppeutgangsinnretningen utgir en n-elementers vektor i hvilken hvert av ni elementer er et heltall Pi, hvert av n2 elementer er et heltall P2,..., og hvert av nit elementer er et heltall Pk, hvor n = ni+n2+...+nK, den første gruppebeslutningsenheten (110) bestemmer, som førstevektoren, en vektor i hvilken hvert av de ni elementene er et heltall Pi, og erstatningsenheten (120) erstatter vektorelementet Pl til førstevektoren med ett av heltallene Pi,..., og Pk , hvilket vektorelement Pi er lokalisert i en posisjon som svarer til resten.
6. Krypteringsanordning ifølge krav 5, hvor divisjonsenheten repeterende dividerer en kvotient med det spesielle heltallet antall n ganger og fremstiller rester, hvilken kvotient blir skaffet med divisjonen, og erstatningsenheten (120) utfører erstatningen for hver av restene repeterende fremstilt av divisjonsenheten på følgende vis: erstatter antall n2 ganger vektorelementet Pi i førstevektoren med heltallet P2,..., og erstatter antall nK ganger vektorelementet Pi til førstevektoren med heltallet Pk, hvor vektorelementet Pi er lokalisert ved en posisjon som bestemmes avhengig av resten.
7. Krypteringsanordning ifølge krav 4, hvor erstatningsenheten genererer en akkumulativ verdi ved repeterende å addere, ett for ett, de splittede heltallene skaffet av splitteenheten, hvor divisjonsenheten bestemmer restene ved repeterende å inkrementere den akkumulative verdien med en, og så ved å dividere den resulterende akkumulative verdien med det spesielle heltallet, og hvor erstatningsenheten utfører erstatningen for hver av en ny akkumulativ verdi på det følgende vis: erstatter antall n2 ganger førstevektorens vektorelement Pi med heltallet P2,..., og erstatter antall njc ganger førstevektorens vektorelement Pi med heltallet Pk, hvilket vektorelement Pi er lokalisert ved en posisjon bestemt avhengig av en av den nye akkumulative verdien og hver av restene skaffet av divisjonsenheten.
8. Krypteringsanordning ifølge krav 1 eller 4, hvor K er 3, og de forutbestemte K distinkte heltallsverdier er 1, -1 og 0.
9. Datamaskinprogramprodukt for en krypteringsanordning som krypterer en melding, hvilket datamaskinprogramprodukt bevirker en datamaskin til å utføre funksjonene til enhetene til krypteringsanordningen (10) ifølge krav 1 eller 4 når datamaskinprogramproduktet kjøres på datamaskinen.
10. Dekrypteringsanordning (15) anordnet til å dekryptere en tekst kryptert som angitt i krav 1 og til å utgi en originalmelding, karakterisert ved at den innbefatter: en dekrypteirngsenhet (25) klargjort til å dekryptere krypterte teksten og utgi en dekryptert verdi som tilsvarer originalmeldingen, en funksjonsverdiutgangsenhet (45) klargjort til å beregne en funksjonsverdi for den dekrypterte verdien utgitt av dekrypteringsenheten (25) ved bruk av en enveisomformingsfunksjon, en numerisk gruppeutgangsinnretning (105) klargjort til å utgi en n-elementers vektor avhengig av den funksjonsverdi som blir anvendt som et inngangsheltall større eller lik 0, hvor hvert av de n elementene blir valgt blant K forutbestemte, distinkte heltallsverdier, hvilken numeriske gruppeutgangsinnretning (105) innbefatter: en første gruppebeslutningsenhet (110) klargjort til å bestemme en n-elementers vektor som en førstevektor, og en erstatningsenhet (120) anordnet til å motta funksjonsverdien som en inngang og klargjort til å endre et vektorelement i førstevektoren bestemt av den første gruppebeslutningsenheten, hvilken erstatningsenhet (120) inkluderer en divisjonsenhet klargjort til først å dividere funksjonsverdien med et spesielt positivt heltall C mindre eller lik n, og å fremstille en rest, så repeterende å dividere kvotienten skaffet med delingen med det spesielle heltallet C, mens det spesielle heltallet C dekrementeres med en for hver divisjon som starter fra n til og med 2, og fremstiller rester, hvilken erstatningsenhet (120) er anordnet til repeterende å erstatte førstevektorens Cte element med et vektorelement i førstevektoren lokalisert ved en posisjon som svarer til hver av restene repeterende fremstilt av divisjonsenheten, en kontrollspesifikk tekstgenereringsenhet (55) klargjort for å generere en kryptert kontrollspesifikk tekst ved bruk av det polynom som svarer til n-elementers vektoren utgitt fra den numeriske gruppeutgangsinnretningen (105), og en utgangsenhet (65) klargjort for å avgjøre om den krypterte teksten er konsistent med den kontrollspesifikke teksten, og utgi originalmeldingen etter å utføre en spesifikk prosess på den dekrypterte verdien utgitt av dekrypteringsenheten (25), i det tilfellet hvor den krypterte teksten er konsistent med den kontrollspesifikke teksten.
11. Dekrypteringsanordning (15) anordnet til å dekryptere en tekst kryptert som angitt i krav 4 og utgi en originalmelding, karakterisert ved at den innbefatter: en dekrypteringsenhet (25) klargjort til å dekryptere den krypterte teksten og utgi en dekryptert verdi som tilsvarer originalmeldingen, en funksjonsverdiutgangsenhet (45) klargjort til å beregne en funksjonsverdi for den dekrypterte verdien utgitt av dekrypteringsenheten (25) ved bruk av en enveisomformingsfunksjon, en numerisk gruppeutgangsinnretning (105) klargjort til å utgi en n-elementers vektor avhengig av den funksjonsverdi som blir brukt som et inngangsheltall større eller lik 0, hvor hver av de n elementene blir valgt blant K forutbestemte distinkte heltallsverdier, hvilken numeriske gruppeutgangsinnretning (105) innbefatter: en første gruppebeslutningsenhet (110) klargjort til å bestemme en n-elementers vektor som en førstevektor, og en erstatningsenhet (120) anordnet til å motta funksjonsverdien som en inngang og klargjort til å endre et vektorelement i førstevektoren bestemt av den første gruppebeslutningsenheten, hvilken erstatningsenhet (120) innbefatter en splittenhet klargjort til å splitte inngangsheltallet i splittede heltall som hvert er dannet av et spesielt antall biter, en divisjonsenhet klargjort til først å dividere funksjonsverdien med et spesielt positivt heltall mindre eller lik enn, og å fremstillen rest, så repeterende å bestemme rester ved å inkrementere, med en, hver av de splittede heltallene skaffet av splitteenheten og så ved å dividere hvert av de resulterende splittede heltallene med det spesielle heltallet, hvilken erstatningsenhet (120) erstatter minst ett vektorelement i førstevektoren med en av de forutbestemte K distinkte heltallsverdiene, hvilket vektorelement er lokalisert ved en posisjon bestemt avhengig av minst ett av de splittede heltallene skaffet av splitteenheten og restene skaffet av divisjonsenheten, en kontrollspesifikk tekstgenereringsenhet (55) klargjort til å generere en kryptert kontrollspesifikk tekst ved bruk av det polynom som tilsvarer n-elementers vektoren utgitt fra den numeriske gruppeutgangsinnretningen (105), og en utgangsenhet (65) klargjort til å avgjøre om den krypter teksten er konsistent med den kontrollspesifikke teksten, og utgi originalmeldingen etter å utføre en spesifikk prosess på den dekrypterte verdien utgitt av dekrypteringsenheten (25), i det tilfellet hvor den krypterte teksten er konsistent med den kontrollspesifikke teksten.
NO20025013A 2001-10-19 2002-10-18 Innretning og fremgangsmate for numerisk gruppeutgivelse, krypteringsinnretning og dekrypteringsinnretning NO326812B1 (no)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001321651 2001-10-19

Publications (3)

Publication Number Publication Date
NO20025013D0 NO20025013D0 (no) 2002-10-18
NO20025013L NO20025013L (no) 2003-04-22
NO326812B1 true NO326812B1 (no) 2009-02-23

Family

ID=19138836

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20025013A NO326812B1 (no) 2001-10-19 2002-10-18 Innretning og fremgangsmate for numerisk gruppeutgivelse, krypteringsinnretning og dekrypteringsinnretning

Country Status (5)

Country Link
US (1) US7233662B2 (no)
EP (3) EP2148463A3 (no)
DE (1) DE60223888T2 (no)
ES (1) ES2296862T3 (no)
NO (1) NO326812B1 (no)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7190791B2 (en) * 2002-11-20 2007-03-13 Stephen Laurence Boren Method of encryption using multi-key process to create a variable-length key
EP1616405A1 (en) * 2003-04-24 2006-01-18 Matsushita Electric Industrial Co., Ltd. Apparatus to generate parameter for ntru, ntru decryption and encryption system, apparatus, method and program implementing said parameter generating unit
FR2861235B1 (fr) * 2003-10-17 2005-12-16 Sagem Procede de protection d'un algorithme cryptographique
WO2005098796A1 (ja) 2004-03-31 2005-10-20 Nec Corporation 暗号方式の安全性を保証するパディング適用方法
US7835978B2 (en) * 2005-12-23 2010-11-16 International Business Machines Corporation Method and system for linking an anonymous electronic trade order to an identity of a trader
US7668852B2 (en) * 2006-10-31 2010-02-23 Hewlett-Packard Development Company, L.P. Method for creating sketches of sets to permit comparison
EP3602383A4 (en) * 2017-03-21 2021-05-19 Tora Holdings, Inc. SECURE ORDER AGREEMENT THROUGH DISTRIBUTION OF DATA AND PROCESSING OVER SEVERAL SEGREGATED CALCULATION NODES
US10404458B1 (en) 2017-11-17 2019-09-03 ISARA Corporation Multi-round key encapsulation process
US10061636B1 (en) * 2017-12-22 2018-08-28 ISARA Corporation Conversion schemes for public key cryptosystems
US10031795B1 (en) * 2017-12-22 2018-07-24 ISARA Corporation Using conversion schemes in public key cryptosystems

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142579A (en) * 1991-01-29 1992-08-25 Anderson Walter M Public key cryptographic system and method
CA2263588C (en) * 1996-08-19 2005-01-18 Ntru Cryptosystems, Inc. Public key cryptosystem method and apparatus
KR20010002708A (ko) * 1999-06-17 2001-01-15 김동균 이진 정보 보호 전송방법
GB0013399D0 (en) * 2000-06-01 2000-07-26 Tao Group Ltd Decryption of cipher polynomials

Also Published As

Publication number Publication date
US20030081770A1 (en) 2003-05-01
DE60223888T2 (de) 2008-11-13
EP1304829A3 (en) 2004-06-09
EP1304829B1 (en) 2007-12-05
NO20025013L (no) 2003-04-22
ES2296862T3 (es) 2008-05-01
DE60223888D1 (de) 2008-01-17
NO20025013D0 (no) 2002-10-18
EP1304829A2 (en) 2003-04-23
EP1841123A1 (en) 2007-10-03
US7233662B2 (en) 2007-06-19
EP2148463A2 (en) 2010-01-27
EP2148463A3 (en) 2015-04-22

Similar Documents

Publication Publication Date Title
Mouha et al. Chaskey: an efficient MAC algorithm for 32-bit microcontrollers
JP5572610B2 (ja) セキュリティ強化のための転置データ変換
EP3770751B1 (en) High speed encryption key generating engine
JP5000365B2 (ja) ハッシュ値生成装置、プログラム及びハッシュ値生成方法
US9432181B2 (en) Device, method, and program for format-preserving encryption, and device, method, and program for decryption
US20170257212A1 (en) Cryptographic Apparatuses And Methods For Encrypting And Decrypting Data Using Automata
KR20150003932A (ko) 의사 랜덤 시퀀스 생성 방법 및 데이터 스트림의 코딩 또는 디코딩 방법
JP3180836B2 (ja) 暗号通信装置
Andreevich et al. Pseudo-probabilistic block ciphers and their randomization
NO326812B1 (no) Innretning og fremgangsmate for numerisk gruppeutgivelse, krypteringsinnretning og dekrypteringsinnretning
JPWO2006019152A1 (ja) メッセージ認証子生成装置、メッセージ認証子検証装置、およびメッセージ認証子生成方法
RU2411666C1 (ru) Способ шифрования
Minier et al. Solving a symmetric key cryptographic problem with constraint programming
Biyashev et al. Modification of the cryptographic algorithms, developed on the basis of nonpositional polynomial notations
RU2417410C2 (ru) Способ хранения и использования криптографического ключа
JP4208230B2 (ja) 配列出力装置、配列出力方法、暗号化装置、および復号化装置
JP3473171B2 (ja) 逐次暗号方式
JP5929757B2 (ja) 暗号処理装置および暗号処理方法
Nikolay Andreevich et al. Method for pseudo-probabilistic block encryption
Bogdanov et al. Key Recovery Attacks on Recent Authenticated Ciphers
Venkata et al. Application of Huffman data compression algorithm in hashing computation
Tegta et al. Cloud Computing Security
Andreeva et al. AES-COBRA v1
Yan et al. Applied Number Theory
Kavut Boolean functions with excellent cryptographic properties in autocorrelation and walsh spectra

Legal Events

Date Code Title Description
MK1K Patent expired