Mikä olisi yleinen ja helppo ympäristö toteuttaa digitaalinen allekirjoitus ECDSA eli DSA-algoritimin elliptinen versio?
En haluaisi mitään eksoottisia lisäkilkkeitä vaan pitäisi onnistua ihan peruskokoonpanolla. Kenttäaritmetiikka olisi joko alkulukukentässä tai polynomikentässä. Hyvin tärkeänä pitäisin sitä että "pisteen kertominen" (Point Multiplication) saataisiin toteutettua tehokkasti koska se on elliptisen käyrän raskaimpia operaatioita.
- SHA1 -tiivistefunktio mielellään valmiina
- Joko valmiina tai helposti tehtävissä : tehokas isojen kokonaislukujen aritmetiikka (alkulukukenttä) / tehokas polynomiaritmetiikka (polynomikenttä)
- hyvät isot näennäissatunnaisluvut
Ehdokkaita:
- C tai C ; voisi olla sinänsä tehokkain, mutta löytyykö ympäristöistä valmiita toimintoja joita voisi hyödyntää, vai pitäisikö kaikki tehdä itse? Valmista C-koodia tosin löytyy lähteistä.
- C# ; miten hankala tämä olisi?
- Java ; suurten lukujen aritmetiikka luokassa java.math.BigInteger ja myös SHA1 luokassa java.security.MessageDigest ja isot satunnaisluvutkin ovat luokkakirjastossa tarjolla
- PHP ; ei ehkä kovin tehokas, mutta peruskokoonpanosta löytyy sha1 ja isojen lukujen aritmetiikan tarjoavat BcMath-funktiot. BcMath taitaa kuitenkin olla melko tehoton ; esim. jos jakolaskussa tarvitaan sekä osamäärä että jakojäännös niin jako on tehtävä tuplana, 2 funktiokutsua.
Digitaalinen allekirjoitus
1
309
Vastaukset
- miniänäsaa:-)
Kiitän jo etukäteen mahdollisista kommenteista edelliseen, mutta itse asiassa - kun nyt olen asiaa paremmin miettinyt - luulen että olen sittenkin jo polkuni valinnut.
Toteutus tulee perustumaan C-koodiin, ainakin aluksi lähinnä Michael Rosing:in kirjan "Implementing Elliptic Curve Cryptography" mukaan: http://www.manning.com/rosing/
Ikäähän tuolla kirjalla on jo toistakymmentä vuotta eikä matemaatikot sitä kauheasti alunperinkään ole kehuneet, mutta se on vain lähtökohta josta koodia kehitellään eteenpäin. Luulenpa että polynomikenttä on ensisijainen valinta kenttäaritmetiikaksi.
Lopullisessa ratkaisussa luultavasti käytän valmiita NIST-käyriä enkä Rosing:in käyttämiä satunnaisia käyriä.
http://en.wikipedia.org/wiki/Elliptic_curve_cryptography
Ohjelmointiympäristönä tulee luultavasti toimimaan Qt 4.5 eli Nokian älykännyköillekin sopiva ympäristö koska haaveena on että softa vielä joskus pyörisi myös Symbian- tai Maemo-älykännykässä.
http://qt.nokia.com/products/developer-tools
Qt ei juurikaan sisällä valmiina edellä hahmoteltuja ECC-valmiuksia mutta Rosing:in kirja tarjoaa riittävät eväät mm. sha1:lle ja polynomiaritmetiikalle.
Näin sen täytyy tässä vaiheessa olla. Toivotan onnea itselleni valitsemallani tiellä :-)
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Haluan sinut, kuuletko minua.
Haluan sinut. Toivon, että voisimme olla yhdessä. Mietin pystynkö täyttämään toiveesi, olemaan arvoisesi. Voisitko saad921489- 541033
Alastomat miehet seksikeinussa lasten nähden PRIDEssä!
https://www.iltalehti.fi/kotimaa/a/adf62289-a0b6-4b4c-9672-9e19c01beb51 Eikö nyt muka mene jo aivan liian pitkälle että391885- 160870
- 56733
Anteeksipyynnöstä
Uskotko anteeksipyynnön voimaan? Mikä tekee anteeksipyynnöstä vaikeaa? Onko se mielestäsi joskus turhaa, joko pyytäjän124727- 51678
Naiselle Kuuleppa Tämä
Tämä ei ole mikään vitsi. Minulla on ikävä sinua nainen! Naiselle mieheltä38645- 57641
- 76632