IVXV võtmerakendus Spetsifikatsioon Versioon jaan lk Dok IVXV-SVR-1.4.0

Seotud dokumendid
vv05lah.dvi

Polünoomi juured Juure definitsioon ja Bézout teoreem Vaadelgem polünoomi kus K on mingi korpus. f = a 0 x n + a 1 x n a n 1 x

lvk04lah.dvi

Andmed arvuti mälus Bitid ja baidid

IMO 2000 Eesti võistkonna valikvõistlus Tartus, aprillil a. Ülesannete lahendused Esimene päev 1. Olgu vaadeldavad arvud a 1, a 2, a 3,

Pangalingi spetsifikatsioon Pocopay pangalingilt makse algatamiseks tuleb kasutada teenust Kaupmees teeb päringu Pocopayle aadressile

DIGITAALTEHNIKA DIGITAALTEHNIKA Arvusüsteemid Kümnendsüsteem Kahendsüsteem Kaheksandsüsteem Kuueteistkü

PowerPoint Presentation

Microsoft Word - essee_CVE ___KASVANDIK_MARKKO.docx

Matemaatiline analüüs III 1 4. Diferentseeruvad funktsioonid 1. Diferentseeruvus antud punktis. Olgu funktsiooni f : D R määramispiirkond D R selles p

Digiallkirjastamine. Nõudmised digiallkirjale, standardid

Andmeturve

Matemaatiline analüüs IV 1 3. Mitme muutuja funktsioonide diferentseerimine 1. Mitme muutuja funktsiooni osatuletised Üleminekul ühe muutuja funktsioo

I Generaatori mõiste (Java) 1. Variantide läbivaatamine Generaator (ehk generaator-klass) on klass, milles leidub (vähemalt) isendimeetod next(). Kons

Microsoft PowerPoint - K ja Kr L 16a.pptx

raamat5_2013.pdf

Word Pro - diskmatTUND.lwp

Microsoft PowerPoint - IRZ0020_praktikum4.pptx

Riigi Valimisteenistus IVXV: E-hääletamise käsiraamat Versioon 0.6 Dokument: Kuupäev: IVXV-KR a. 1

Microsoft Word - ref - Romet Piho - Tutorial D.doc

8.klass 4 tundi nädalas, kokku 140 tundi Hulkliikmed ( 45 tundi) Õppesisu Hulkliige. Hulkliikmete liitmine ja lahutamine ning korrutamine ja jagamine

Paroolide murdmine vastavate tabelitega (rainbow table). „Sool“ paroolide krüpteerimisel. Protokoll IPSec, võtmevahetus IKE protokolliga.

6. KLASSI MATEMAATIKA E-TASEMETÖÖ ERISTUSKIRI Alus: haridus- ja teadusministri määrus nr 54, vastu võetud 15. detsembril E-TASEMETÖÖ EESMÄRK Tas

Operatsioonisüsteemide ehitus

(Estonian) DM-RBCS Edasimüüja juhend MAANTEE MTB Rändamine City Touring/ Comfort Bike URBAN SPORT E-BIKE Kasseti ketiratas CS-HG400-9 CS-HG50-8

Sügis 2018 Kõrgema matemaatika 2. kontrolltöö tagasiside Üle 20 punkti kogus tervelt viis üliõpilast: Robert Johannes Sarap, Enely Ernits, August Luur

IVXV protokollide kirjeldus Spetsifikatsioon Versioon jaan lk Dok IVXV-PR-1.4.1

PRESENTATION HEADER IN GREY CAPITALS Subheader in orange Presented by Date Columbus is a part of the registered trademark Columbus IT

EID TARKVARA (v.1812 baasil)

Failiotsing: find paljude võimalustega otsingukäsk find kataloog tingimused kataloog - otsitakse sellest kataloogist ja tema alamkataloogidest tingimu

Side loeng 21

Treeningvõistlus Balti tee 2014 võistkonnale Tartus, 4. novembril 2014 Vastused ja lahendused 1. Vastus: 15, 18, 45 ja kõik 0-ga lõppevad arvud. Olgu

3D mänguarenduse kursus (MTAT ) Loeng 3 Jaanus Uri 2013

Matemaatilised meetodid loodusteadustes. I Kontrolltöö I järeltöö I variant 1. On antud neli vektorit: a = (2; 1; 0), b = ( 2; 1; 2), c = (1; 0; 2), d

1. AKE Ajalise keerukuse empiiriline hindamine

MINISTRI KÄSKKIRI Tallinn nr Ministri käskkirja nr 164 Autokaubaveo komisjoni moodustamine ja töökorra kinnitamine muutmin

Relatsiooniline andmebaaside teooria II. 6. Loeng

Infix Operaatorid I Infix operaatorid (näiteks +) ja tüübid (näiteks ->) kirjutatakse argumentide vahele, mitte argumentide ette. Näiteks: 5 + 2, 2*pi

Word Pro - digiTUNDkaug.lwp

ma1p1.dvi

loeng2

Microsoft Word - Lisa 3 PK matemaatika.docx

Esitlusslaidide kujundusest

12. Marek Kolk, Kõrgem matemaatika, Tartu Ülikool, Algfunktsioon ja määramata integraal Sisukord 12 Algfunktsioon ja määramata integraal 1

prakt8.dvi

Neurovõrgud. Praktikum aprill a. 1 Stohhastilised võrgud Selles praktikumis vaatleme põhilisi stohhastilisi võrke ning nende rakendust k

Praks 1

Mida räägivad logid programmeerimisülesande lahendamise kohta? Heidi Meier

Image segmentation

Microsoft Word - requirements.doc

Voodiagrammid.dft

7 KODEERIMISTEOORIA 7.1 Sissejuhatus Me vaatleme teadete edastamist läbi kanali, mis sisaldab müra ja võib seetõttu moonutada lähteteadet. Lähteteade

P2P süsteemid

Microsoft Word - Errata_Andmebaaside_projekteerimine_2013_06

G aiasoft Programmi VERP ja Omniva Arvekeskuse liidese häälestamine ja arvete saatmine-lugemine VERP 6.3 ja VERP 6.3E Versioon ja hilisemad K

Pythoni Turtle moodul ja Scratchi värvilisem pool Plaan Isikukoodi kontrollnumbri leidmine vaatame üle lahenduse kontrollnumbri leimiseks. Pythoni joo

ITI Loogika arvutiteaduses

Word Pro - digiTUNDkaug.lwp

Diskreetne matemaatika I Kevad 2019 Loengukonspekt Lektor: Valdis Laan 20. juuni a.

efo03v2pkl.dvi

Microsoft Word - 56ylesanded1415_lõppvoor

PowerPoint Presentation

Digitaalallkirjade jätkusuutlikkuse analüüs

Matemaatika ainekava 8.klass 4 tundi nädalas, kokku 140 tundi Kuu Õpitulemus Õppesisu Algebra (65 t.) Geomeetria (60 t.) Ajavaru kordamiseks (15 õppet

X Window System tuntud kui: X11, X, X-Windows akendussüsteem/akendesüsteem rastergraafikat toetavatele ekraanidele UNIX-maailmas väga levinud mitmesug

pkm_2010_ptk6_ko_ja_kontravariantsus.dvi

Võistlusülesanne Vastutuulelaev Finaal

HWU_AccountingAdvanced_October2006_EST

Andmebaasid, MTAT loeng Normaalkujud

Microsoft Word - Toetuste veebikaardi juhend

Programmeerimiskeel APL Raivo Laanemets 17. mai a.

Funktsionaalne Programmeerimine

Osakogumite kitsendustega hinnang Kaja Sõstra 1 Eesti Statistikaamet Sissejuhatus Valikuuringute üheks oluliseks ülesandeks on osakogumite hindamine.

Saksa keele riigieksamit asendavate eksamite tulemuste lühianalüüs Ülevaade saksa keele riigieksamit asendavatest eksamitest Saksa keele riigi

KOTKAS AVE kasutajakeskne juhend Loomise Muutmise kuupäev: kuupäev: Versioon: 2.0 Klient: Keskkonnaministeeriumi Infotehno

Microsoft Word - RVLi juhend.doc

Microsoft Word - Vorm_TSD_Lisa_1_juhend_2015

E-arvete juhend

Tartu Ülikool Matemaatika-informaatikateaduskond Puhta Matemaatika Instituut Algebra õppetool Riivo Must Mõned katsed üldistada inversseid poolrühmi M

Praks 1

Microsoft Word - P6_metsamasinate juhtimine ja seadistamine FOP kutsekeskharidus statsionaarne

(10. kl. I kursus, Teisendamine, kiirusega, kesk.kiirusega \374lesanded)

QUANTUM SPIN-OFF - Experiment UNIVERSITEIT ANTWERPEN

Euroopa Liidu Nõukogu Brüssel, 24. september 2015 (OR. en) 12353/15 ADD 2 ENV 586 ENT 199 MI 583 SAATEMÄRKUSED Saatja: Kättesaamise kuupäev: Saaja: Eu

HAJUSSÜSTEEMID HAJUSSÜSTEEMID Kaugprotseduurid IDL kompileerimine ONCIDLnäide CORBAIDLnäide MIDLnäide DCERPCmuidomadusi XML-RPC JSON-RPC REST document

Microsoft PowerPoint - IRZ0050_13L.pptx

Pealkiri

PR_COD_2am

VL1_praks2_2009s

Programmi AnimatorDV Simple+ lühike kasutajajuhend

Praks 1

Linux süsteemi administreerimine

1 / loeng Tekstitöötlus Sisend/väljund Teksti lugemine Sõnad

Loeng05

Tehniline andmeleht Sadulventiilid (PN 16) VRG 2 2-tee ventiil, väliskeermega VRG 3 3-tee ventiil, väliskeermega Kirjeldus Ventiilid on kasutatavad ko

VL1_praks6_2010k

Kinnitatud EESTI MAAÜLIKOOLI ÜLIÕPILASESINDUSE VALIMISEESKIRI 1. ÜLDSÄTTED 1.1. Eesti Maaülikooli (edaspidi EMÜ) üliõpilasesinduse (edaspid

loeng7.key

Uudiseid k-meride abil bakterite leidmisest [Compatibility Mode]

Väljavõte:

IVXV võtmerakendus Spetsifikatsioon Versioon 1.4.0 18. jaan 2019 11 lk Dok IVXV-SVR-1.4.0

Sisukord Sisukord........................................ 2 1 Võtmerakendus.................................. 3 1.1 Sissejuhatus................................. 3 1.2 Eritüübiliste võtmeosakute protokollide liidestamine............ 3 Võtmeosakute genereerimise protokolli liides............... 3 Dekrüpteerimise protokolli liides....................... 4 Allkirjastamise protokolli liides........................ 4 Toetatud protokollid.............................. 4 Protokollide võtmerakendusega liidestamine................ 6 Toetatud protokollide kirjeldused...................... 6 1.3 Viited...................................... 10 Kirjandus........................................ 11 IVXV võtmerakendus 18. jaan 2019 1.4.0 2 / 11

PEATÜKK 1 Võtmerakendus 1.1 Sissejuhatus Võtmerakendus on Korraldaja põhitööriist, millega genereeritakse iga hääletamise jaoks häälte salastamise ja häälte avamise võti. Võtmerakenduse abil toimub ka häälte lugemine ja tulemuse väljastamine. Dokumendis spetsifitseeritakse võtmerakenduse tehnilised detailid. 1.2 Eritüübiliste võtmeosakute protokollide liidestamine Võtmeosakute genereerimise protokolli liides Klass ee.ivxv.key.protocol.generationprotocol defineerib liidese, mida ElGamali või RSA võtmeosakute genereerimise protokoll peab täitma. Liides on järgnev: public interface GenerationProtocol { byte[] generatekey() throws ProtocolException; } Eritüübiliste võtmeosakute genereerimiseks peab implementeerima generatekey() meetodi, mis tagastab kodeeritud avaliku võtme X.509 sertifikaadina DER formaadis. Protokolli klass peab olema paki ee.ivxv.key.protocol.generation alampakis. Protokolli parameetrid tuleb määrata protokolli klassiinstantsi initsialiseerimise ajal. 3

Dekrüpteerimise protokolli liides Dekrüpteerimise ja võtmeosakute genereerimise protokoll ei pea olema üksüheses seoses, st. võtmeosakute genereerimise protokollile võib vastata mitu dekrüpteerimise protokolli. Seega on dekrüpteerimise protokolli liides defineeritud sõltumatult võtmeosakute genereerimise liidesest. Protokoll peab implementeerima ee.ivxv.key.protocol.decryptionprotocol liidese: public interface DecryptionProtocol { ElGamalDecryptionProof decryptmessage(byte[] msg) throws ProtocolException; } Meetod decryptmessage() võtab sisendina krüptogrammi DER formaadis ning väljastab ElGamalDecryptionProof instantsi. Juhul kui protokoll ei toeta lugemistõendi väljastamist, siis on vastavad väljad väärtustatud tühiväärtusega (null). Analoogselt võtmeosakute genereerimise protokollile tuleb protokolli parameetrid määrata klassiinstantsi initsialiseerimise ajal. Allkirjastamise protokolli liides Lisaks dekrüpteerimise protokollile saab implementeerida ka allkirjastamise protokolli. Sarnaselt dekrüpteerimisprotokollile võib ühele võtmegenereerimise meetodile vastata mitu allkirjastamise protokolli. Protokoll peab implementeerima ee.ivxv.key.protocol.signingprotocol liidese: public interface SigningProtocol { byte[] sign(byte[] msg) throws ProtocolException; } Meetod sign() võtab sisendina sõnumi, mida soovitakse allkirjastada, ja väljastab RSA- PSS allkirja järgnevate parameetritega: sõnumi räsifunktsioon: SHA2-256 maski genereerimise funktsioon: MGF1, maski räsifunktsioon SHA2-256 ja maski pikkus 32 baiti soola pikkus: 32 baiti sababait: 0xbc Analoogselt võtmeosakute genereerimise protokollile tuleb protokolli parameetrid määrata klassiinstantsi initsialiseerimise ajal. Toetatud protokollid Hetkel on teostatud järgnevad võtmeosakute genereerimise protokollid: 4

ee.ivxv.key.protocol.generation.desmedt.desmedtgeneration: Võtmeosakud on sellised, et oleks võimalik kasutada [DF89] hajutatud dekrüpteerimisprotokolli. Võtmeosakud salvestatakse otse PKCS15 liidest toetavale pääsmikule. Klassiinstantsi initsialiseerimise ajal saab anda järgnevaid argumente: PKCS15Card[] cards: järjend objektides mis implementeerivad PKCS15Card liidest (nt. kiipkaardid või tarkvaralised pääsmikud). ElGamalParameters params: ElGamali krüptosüsteemi parameetrid. ThresholdParameters tparams: läviskeemi parameetrid. Rnd rnd: juhuslikkuse sisend võtmeosakute genereerimisel byte[] cardshareaid: võtmeosaku ligipääsuidentifikaator PKCS15 pääsmikul. Defineerib, millise ligipääsutunnusega pääseb võtmeosakule ligi. byte[] cardsharename: võtmeosaku identifikaator PKCS15 pääsmikul. ee.ivxv.key.protocol.generation.shoup.shoupgeneration: Võtmeosakud on sellised, et oleks võimalik kasutada [Shoup00] põhinevat hajutatud allkirjastamisprotokolli. Võtmeosakud salvestatakse otse PKCS15 liidest toetavale pääsmikule. Klassiinstantsi initsialiseerimise ajal saab anda järgnevaid argumente: PKCS15Card[] cards: järjend objektidest, mis implementeerivad PKCS15Card liidest (nt. kiipkaardid või tarkvaralised pääsmikud). int modlen: RSA võtme pikkus bittides ThresholdParameters tparams: läviskeemi parameetrid. Rnd rnd: juhuslikkuse sisend võtmeosakute genereerimisel byte[] cardshareaid: võtmeosaku ligipääsuidentifikaator PKCS15 pääsmikul. Defineerib, millise ligipääsutunnusega pääseb võtmeosakule ligi. byte[] cardsharename: võtmeosaku identifikaator PKCS15 pääsmikul. On teostatud järgnevad dekrüpteerimise protokollid: ee.ivxv.key.protocol.decryption.recover.recoverdecryption: Loetakse PKCS15 liidest toetavatelt pääsmikelt võtmeosakud, rekonstrueeritakse nende abil operatiivmälus salajane võti ning teostatakse dekrüpteerimine lugemistõendiga. Klassiinstantsi initsialiseerimise ajal saab anda järgnevaid argumente: PKCS15Card[] cards: järjend objektides mis implementeerivad PKCS15Card liidest (nt. kiipkaardid või tarkvaralised pääsmikud). ThresholdParameters tparams: läviskeemi parameetrid. byte[] cardshareaid: võtmeosaku ligipääsuidentifikaator PKCS15 pääsmikul. Defineerib, millise ligipääsutunnusega pääseb võtmeosakule ligi. byte[] cardsharename: võtmeosaku identifikaator PKCS15 pääsmikul. On teostatud järgnevad allkirjastamise protokollid: ee.ivxv.key.protocol.signing.shoup.shoupsigning: Loetakse PKCS15 liidest toetavatelt pääsmikelt võtmeosakud, konstrueeritakse mälus allkirjastamise osakud ilma võtit rekonstrueerimata ning kombineeritakse allkirjastamise osakud RSA- PSS allkirjaks. Klassiinstantsi initsialiseerimise ajal saab anda järgnevaid argumente: 5

PKCS15Card[] cards: järjend objektides mis implementeerivad PKCS15Card liidest (nt. kiipkaardid või tarkvaralised pääsmikud). ThresholdParameters tparams: läviskeemi parameetrid. Rnd rnd: juhuslikkuse sisend RSA-PSS allkirja soola genereerimisel. byte[] cardshareaid: võtmeosaku ligipääsuidentifikaator PKCS15 pääsmikul. Defineerib, millise ligipääsutunnusega pääseb võtmeosakule ligi. byte[] cardsharename: võtmeosaku identifikaator PKCS15 pääsmikul. Protokollide võtmerakendusega liidestamine Järgnev kirjeldus käib nii võtmeosakute genereerimise ja dekrüpteerimise protokollide kohta. Märkus: Praegune kirjeldus on üldine. Kui konfi- ja argumentide parsimine on lõplikult välja töötatud ning protokollid võtmerakendusega liidestatud, siis tuleks järgnevat lõiku täiendada. Liidestamaks uut protokolli võtmerakendusega, tuleb kõigepealt teostada vastava protokolli liidest täitev klass. Võtmerakendus peab töö alguses seadistuse töötlemise käigus aru saama kas käsureaargumentidest või seadistusfailist, millist protokolli soovitakse kasutada. Seejärel tuleb vastava klassi staatilise meetodi abil ülejäänud käsureaargumentide või seadistusfaili abil initsialiseerida uus protokolliklassi instants. Seejärel tuleb genereerida võti või dekrüpteerida sõnum. Toetatud protokollide kirjeldused Shamiri saladuse jagamise skeem Olgu meil salajane väärtus s = a 0 ja soovime seda jagada n osapoole vahel selliselt, et vähemalt t osapoolt saaksid selle saladuse rekonstrueerida. Selleks valime koefitsiendid a 1 kuni a t 1 ning vaatame polünoomi muutuja x suhtes: P (x) = a t 1 x t 1 +.. + a 1 x + a 0 Olgu x 1 kuni x n nullist erinevad unikaalsed väärtused (üldiselt 1 kuni n), sellisel juhul saame osakud s i = P (x i ) ning salajase väärtuse s = P (0). Geomeetriliselt vaadates on P (x) polünoom ning osakud punktid sellel polünoomil. Põhikoolimatemaatikast teame, et t 1 järku polünoomi joonistamiseks piisab meile t punktist (sirge jaoks kaks punkti, parabooli jaoks kolm punkti jne.). Salajane väärtus on selle polünoomi väärtus y-telje lõikepunktis. Vaadates rekonstrueerimist arvuliselt, mitte geomeetriliselt, saame kasutades Lagrange interpoleerimise meetodit. Tähist kasutame me mitme liikmega korrutise tähistamiseks ja tähist kasutame me mitme liikmega summa tähistamiseks. 6

Nüüd, tähistame lisaks t osapoolt, kes osalevad salajase väärtuse rekonstrueerimisel tähisega U. Lagrange interpoleerimise valem ütleb: P (x) = x x i s j x j x i j U Tõepoolest: fikseerime j - paneme tähele, et kui x = x j, siis murru väärtus on 1 (kuna lugejas ja nimetajas olevad kordajad taandavad üksteist) ja kui x x j, kuid x = x k, mingi muu k U korral, siis murd on 0 (kuna lugejas on x k x i = 0 mingi i U korral). Seega: P (x j ) = s j + 0 s i = s j = P (x j ) i U,i j Kuna osapooled teavad väärtuseid s i = P (x i ) (osakud), siis kombineerides ning korrutades need läbi baaspolünoomiga x x i L(U, x, j) = x j x i ja fikseerides x = 0, saame jagatud saladuse. ee.ivxv.key.protocol.generation.desmedt.desmedtgeneration Arvestades, et ElGamali võtmeparameetriks on rühm G koos generaatoriga g, siis salajaseks võtmeks valitakse x, mis on ülimalt ord(g), st. g multiplikatiivne järk rühmas G. Vastavaks avalikuks võtmeks võetakse väärtus y = g x. Salajase võtme komplektiks saab väärtus (G, g, x) ja avaliku võtme komplektiks väärtus (G, g, y). Rühm G valitakse selliselt, et tema järk on mingi algarv p selliselt, et kehtib p = 2q + 1, kus q on samuti algarv. Selliselt juhul kirjeldab G väärtust algarv p. Algebrast teame, et kui G järk on 2q + 1, siis iga selle rühma elemendi järk on kas 1, 2, q või 2q. Me oleme huvitatud selliselt generaatorist, mille järk on q ja mis on ruutjääk, kuna see genereerib piisavalt suure alamrühma, mille kõik elemendid on ruutjäägid. Vastasel juhul võib toimuda ühe biti lekkimine krüpteeritud sõnumi kohta. Sellise generaatori leidmiseks vaatame me rühma suvalisi elemente ning kontrollime tema järku ning ruutjäägilisust kuni leiame sobiva elemendi. Sellise elemendi määrame generaatoriks. Instants genereerib juhusliku 0 < x < q salajaseks võtmeks, jagab selle Shamiri ühissalastuse abil argumentidena antud osapoolte vahel. Iga salajase võtme osak kodeeritakse kui ühissalastamata salajase võtme komplekt. Seejärel arvutatakse y = g x ning tagastatakse kodeeritud avaliku võtme komplekt. ee.ivxv.key.protocol.generation.shoup.shoupgeneration RSA võtmepaar genereeritakse järgnevalt: genereeritakse kaks algarvu p ja q bitipikkusega modlen/2 ning võetakse n = pq. Avalik võti e võetakse selliselt et 7

gcd(e, φ(n)) = 1, kuid antud protokollis on e fikseeritud e = 65537. Seega tuleb valida p ja q nii pikalt kui see tingimus kehtib. Salajane võti d võetakse selliselt, et de 1 (mod φ(n)), kus φ on Euleri φ. Arv φ(n) näitab, kui paljud arvudest 1 m < n on sellised et gcd(m, n) = 1, kus gcd(a, b) on kahe arvu a ja b suurim ühistegur. On ilmne, et kui p on algarv, siis φ(p) = p 1. Lisaks on lihtne näidata, et kui p ja q on algarvud, siis φ(pq) = φ(p)φ(q). Euleri teoreem ütleb, et kui a ja n on ühistegurita, siis: a φ(n) 1 (mod n) Seega, kui sõnumi m allkirjastamiseks tehakse s m d (mod n), siis verifitseerimiseks kontrollitakse kas s e m (mod n). Tõepoolest: (m d ) e m de m kφ(n)+1 m kφ(n) m 1 k m m (mod n). Salajane võti d jagatakse Shamiri salastuse jagamisega osadeks, iga osa kodeeritakse kui jagamata salajase võtme komponent ning salvestatakse osapoolele. Avalik võtme komplekt kodeeritakse ning tagastatakse. ee.ivxv.key.protocol.decryption.recover.recoverdecryption Protokoll toimib, rekonstrueerides ElGamali võtme ning dekrüpteerides sellega krüptogramme. Täpsemalt, olgu U indeksid kaartidest, mis moodustavad argumendiks antud cards muutuja. Instants loeb salajase võtme komplektid kaartidelt, kontrollib võtmekomplektide terviklust (st. rühma G ja generaatori g kirjelduse ühesust), dekodeerib igast komplektist salajase võtme x i. Seejärel arvutatakse salajane võti x kasutades Lagrange interpoleerimist: x = P (0) = x i s j x j x i j U Krüptogrammi c = (c 1, c 2 ) = (my r, g r ) dekrüpteerimiseks arvutatakse: d = c 1 c x 2 Dekrüpteerimise lugemistõendi jaoks valitakse juhuslik r ning konstrueeritakse järgnevad pühendumused: a = c r 2 b = g r Seejärel arvutatakse Fiat-Shamiri pretensioon järgnevalt, kus H on räsifunktsioon SHA2-256 ning B2I on meetod, mis teisendab baidijada täisarvuks ühtlaselt vahemikus: 8

K = H("DECRYPTION" y c d a b) k = B2I(K, q) Nüüd arvutatakse lugemistõendi vastus: s = kx + r Kogu lugemistõend on komplekt (a, b, s). Tagastatakse (d, (a, b, s)). ee.ivxv.key.protocol.signing.shoup.shoupsigning Antud protokollis ei toimu võtme rekonstrueerimist. Olgu U indeksid kaartidest, mis moodustavad argumendiks antud cards muutuja. Klassiinstants loeb salajase võtme komplektid ja kontrollib nende terviklust (st. mooduli ja avaliku võtme ühesus). Loetakse mällu võtme moodul n ja avalik võti e. Lisaks dekodeeritakse ja loetakse mällu salajased võtmed d i. Allkirja genereerimiseks sõnumile m rakendatakse sellele EMSA-PSS kodeerimist [RFC8017], kus on kasutusel varasemalt defineeritud RSA-PSS parameetrid (lehekülg 4), saades allkirjastamiseks sõnumi M. Me tähistame tähisega n! arvu n faktoriaali, st. n! = 1 2 3... n. Meenutame, et Lagrange interpolatsiooni baaspolünoom oli: x x i L(U, x, j) = x j x i Defineerime modifitseeritud Lagrange baaspolünoomi järgnevalt: x x i L (U, x, j) = n! x j x i Kuna me teame, et punktid 1 x i, x j n, siis x j x i < n. Seega, korrutades Lagrange baaspolünoomi läbi n!, saame, et L (U, j) on alati täisarv. Allkirja konstrueerimiseks arvutame: s = j U (M x j ) L (U,0,j) x j L (U,0,j) j U = M = M n!d Kuna kasutasime modifitseeritud Lagrange interpoleerimist, siis võrreldes tavalise RSA allkirjaga on see astendatud n!-ga. Bezout lemmast teame, et x ja y korral leiduvad a ja b selliselt, et ax + by = gcd(x, y). Veel enam, selliseid a ja b väärtuseid on võimalik leida laiendatud Eukleidese algoritmiga suurima ühisteguri leidmiseks. Kasutades Eukleidese laiendatud algoritmi, leitakse a ja b, selliselt et ae + bn! = gcd(e, n!). Kuna avalik võti e on valitud algarv, siis gcd(e, n!) = 1. Arvutame: σ = M a s b 9

Arvestades, et de = 1 (mod φ(n)), on see tõesti korrektne allkiri: σ e = M ae s be = M ae M n!dbe = M ae M n!bde = M ae M n!b = M ae+bn! = M gcd(e,n!) = M Protokolli instants tagastab σ allkirjana. 1.3 Viited 10

Kirjandus [DF89] Desmedt, Y. & Frankel, Y. Brassard, G. (Ed.). Threshold Cryptosystems. Advances in Cryptology - CRYPTO 89, 9th Annual International Cryptology Conference, Santa Barbara, California, USA, August 20-24, 1989, Proceedings, Springer, 1989, 435, 307-315 [Shoup00] Shoup, V. Practical Threshold Signatures Advances in Cryptology - EU- ROCRYPT 2000, International Conference on the Theory and Application of Cryptographic Techniques, Bruges, Belgium, May 14-18, 2000, Proceeding, 2000, 207-220 [RFC8017] PKCS #1: RSA Cryptography Specifications Version 2.2. https://tools.ietf. org/html/rfc8017 11