Friday, November 03, 2006

at last

nu blev det her til en rigtig blog.
flytning en realitet og det må igen være tid til at fokusere HER

Sunday, July 30, 2006

crash couse

Har de sidste dage været i kbh og fået et lyncrashcourse i C. Der er for meget der er hemmeligt i den nye bog hvis man ikke kan læse/skrive C. Det er IKKE ret tæt på hverken Java og C#. Men jeg VIL. Jeg vil kunne læse denne bog og lære noget deraf. Mere C bliver det måske til idag. Men børnene kommer hjem efter 14 dages ferie – så måske bliver det kun til en smule.
Pangel: installerede kubuntu på bærbar. Bærbar har iøvrigt fået ondt i skærmen og flipper engang imellem. Problemer md rettigheder på kubuntuinstallation. Ikke adgang til gcc compiler og det er meget bøvlet. Men heldigvis er .NET på XP ok at skrive og compilere C i.

Thursday, July 27, 2006

YES!!

så er bogen her. Så er der dømt fordybelse.

Ingen bog idag.

Dagens gøremål var at modtage denne mail:
Hi List,

I just wanted to confirm that there will be a P1363 Working Group meeting in the Flying A Studio Room, University Center, University of California at Santa Barbara, on Thursday August 24th from 2-5 pm and on Friday August 25th from 9-5.
Full agenda will follow later. Hope to see you there!

Cheers,

William

================================

William Whyte,
Chair, IEEE P1363
NTRU Cryptosystems,

Jeg følger mig dog ikke overbevist om det er lige mig han gerne ser..

Wednesday, July 26, 2006

Pollards rho metode

Kurve haves over E(Fq) To punkter haves. Find et k så kP=Q
Random funktion anvendes. Visuelt Rho dannes og sammenfald nøjagtig der hvor cyklus begynder. Samme tidskomplexitet som Babiystep giant step- men fordel: very smal storage.


Update: english TRANSLATION:
Pollards rho method -this is how I understand it. I assume you have already been reading about it in general - this is an extract:

You have a curve E over a finie field Fq, E(Fq)
You have to points
Find a k so that kP=Q
Use random function.
Visualize a Rho ( the Greek letter) and you have a crosspoint exactly where the cycle begin.
Same complexity in time as Baby Step Giant Step - but advantage: very small storage

links:
Image:
http://commons.wikimedia.org/wiki/File:Rho-pollard.png
the math:
http://mathworld.wolfram.com/PollardRhoFactorizationMethod.html

SUPERsingulær

Udtryk: Hvis vi ser på E[3] så finder vi 9 punkter af ”orden 3”. Jf nedest s 74 Washington.
Hvis vi har med kurver at gøre E(Fq) når karakteristikken ikke ikke deler n eller er 0,
så gælder : E[n] isomorf med Zn X Zn
. Hvis karakteristikken p>0 deler n så er det en anelse anderledes. S 75 W.
En kurve kaldes ordinær hvis E[p] isomorf med Zp
Den er supersingulær hvis E[p] isomorf med 0. Altså en lidt anden vinkel end den i 2. Anførte forklaring.
Supersingulær her INTET med singulære punkter på kurver at gøre.

Tuesday, July 25, 2006

af orden 2

E[2]: torsionspunkter af orden 2.
Er vi i tilfældet F(Fq) kan E skrives som y^2 = (x-r1)(x-r2)(x-r3)
E[2] er altså de punkter P hvor der gælder at 2P=O. Lodret hældning. Det sker i rødderne og i punktet uendelig
E[2]={uendelig,(r1,0),(r2,0),(r3,0)}. Isomorft med Z2 X Z2
For E (F2^m) altså karakteristik 2 gælder at den elliptske kurve ser lidt anderledes ud og man får derfor to forskellige situationer.
E[2]={uendelig, (0,sqrt(a6))} isomorft med Z2 og E[2]={uendelig} isomorft med 0

I vote for Tanja

Den bliver altså sat på standby ind til jeg finder ud af om det er vigtigt. Tanja Lange kan ikke engang li dem. Hun er til Tate pairing i stedet.
Allan Bohnstedt Hansen har skrevet speciale (Generering af Frey-Rück Resistente Elliptiske kurver med Primtalsorden over Fp^2^c) hvor der er et helt kapitel om Weil pairing. En masse matematik, men den overordnede forståelse for det fik jeg vist ikke.

blob blob

Weil pairing er altså ikke helt trivielt..

Anormale kurver

s. 147 Washington. MOV attack virker fordi man kan bruge Weil pairing – for at undgå dette har man foreslået at man kunne anvende Anormalous Curves. Men ECDL problemet kan løses hurtigt på sådanne kurver. Men anvendes de over udvidelser af Fq kan de være brugbare da visse beregninger er hurtigere på anormale kurver.
Udvidelser af Fq – er det mon det samme som Fq^m ? Ja det er nok sådan udtrykket ”udvidelsesgraden” skal forståes.
Her har vi så årsagen til at man er interesseret i koblitskurver. Som netop er kurver på F2^m. Antså en bekræftelse på 4 og 8. Her må man så tro at MOV attacket så IKKE virker.
Hvad er det nu lige Weil pairing er?
MOV attack: weil pairing kan bruges til at konvertere DL i E(Fq) til et problem i Fq^m(*) – og DL på endelige legemer kan løses hurtigere end ECDL . hvis ikke Fq^m >> Fq . Indexmetoden kan anvendes.
Weil pairing er HELT central. Med venlig hilsen Washington s 82.

så pænt!

>restart: with(numtheory): with(plots): readlib(ilog):
>implicitplot(y^2=x^5-15*x^4+85*x^3-225*x^2+274*x-120,x=-1..10,y=-7..7,grid=[100,100]);
Så pænt kan det gøres I Maple

Certicom

Tada! Så har jeg fået adgang til Security Builder Crypto C v5.0 C# .NET WinCE X86 Emulator hos Certicom. Hvorfor er jeg en lille bitte smule skuffet? Jeg har fået præcist hvad jeg bad om. Der er en central dll fil der tjener som bibliotek og nogle c# eksempler på anvendelse. Herunder noget præliminært EC digital signatur. Hmm. Måske fordi det er bare SÅ applied! Hit med en opsprættet dll.
Men hey – måske kan jeg bruge det til mit projekt – en sammenligningsting. En testting. Måske kan jeg endda vise et par angreb på den?

*suk*

Suk. Det var jo første semester stof. Heldigvis har jeg ”Niels’ bog” ( sagt med HAS stemme). Og det er ikke første gang jeg har glemt det her. På sekundet da jeg fandt polynomiumsdivision eksemplet på s 150 i Concrete Abstract Algebra kunne jeg huske at jeg har været igennem det eksempel flere gange og endda lavet en række eksempler selv. Long time ago. Men den gang aaaanede jeg jeg ikke sammenhængen.
Anyway. At last.
(x^6 + x^5 + x^2+1) mod (x^4+x+1) = x^3+x^2+x+1 fordi (x^6 + x^5 + x^2+1): (x^4+x+1)=x^2+x med rest –x^3-x^2-x+1 ( fortegnspangel?) Men det er jo i F2^4 så minus dør..
Såre simpelt og alligevel panglet i detaljen.

Monday, July 24, 2006

Menezes er GULD

Den artikel er simpelthen et gennembrud. Det er en guldgrube. -Og hvor ER det dog dejligt pædagogisk forklaret altsammen. Hurra for Don Johnson, Alfred Menezes og Scott Vanstone.
Jeg har nu forstået principperne polynomial basis repræsentation og normal basis repræsentation. Det er iøvrigt slet ikke nyt – men har bare slet ikke set sammenhængen før. Der er ingen tvivl om at jeg synes polynominal basis virker mest tilgængeligt . Men jeg mangler at huske hvordan man regner modulus med polynomier. Det er helt sikkert at finde i HAS noterne.
Hvordan er det fx nu lige man får det her: (x^6 + x^5 + x^2+1) mod (x^4+x+1) = x^3+x^2+x+1 ?
Domæne parametre:
Der er foklaringer på HVORFOR forskellige domæneparametre er krævet.
1. For ikke at være svag over for Pollards rho metode, et Pohlig-Hellman attack på ECDL skal antallet af Fq rationelle punkter på E være divisibel med et tilstrækkeligt stort primtal n. ANSI X.).62: n larger than 2^160. Så stort som muligt, tæt på q. Så antallet af punkter på kurven er /næsten/ et primtal
2. Desuden skal man for at undgå reduktionsalgoritmer af Menezes – og Frey og Rück skal kurven være non-supersingulær. DVS p må IKKE dele (q+1-#E(Fq)) ..og mere generelt
3. Verificer at n ikke deler q^k-1 for alle 1 less than k less than C . Desuden er det vigtig at virven virkelig bliver valgt efter et random princip.. Her bruges SHA-1. Det er der så en opskrift på. Henholdsvis for E(Fp) og E(F2^m)
6. Så skal domæne parametrene genereres. Det er der så en lille fix algoritme til. Da en del jo afhænger af #E(Fq) er det vigtigt at kunne tælle punkter på kurven. Her fåer vi så en reminder om Schoofs algoritme til netop punktælling. Husk Hasse.
7. Så ridses der kort en anden metode op kaldt Complex multiplikation (DER var endelig det med det komplexe)
8. Så er der lidt om at Koblitz kurver åbenbart er meget attraktive da der er ret effektive måder at beregne kP på. Koblitz kurver er det samme som anormale binære kurver.
(jamen skulle vi ikke netop undgå anormale kurver? Men ok det gælder måske kun på Fq og ikke F2^m)
9. Herefter går artiklen over til validering af det alt sammen og bagefter anvendelsorienteret nogle generering m.v. Det bliver ikke lige nu for mig. For at konkludere på ovenstående er der følgende at forholde sig til:

· Pollards rho – genopfriskes
· Pohlig-Hellman attack på ECDL – kigges på
· non-supersingulær – tjek begrebet efter.
· anormale kurver – tjek begrebet efter
· SHA-1 – kig på det og implementer en lille hashing fx i C#
· Schoofs algoritme – genopfrisk
· Complex multiplication – læs kig se opdag prøv. Se i IEEE 1363 og i gudebogen.
Det kan jo godt tage et par dage det her.....

simplicity

Endelig nogen der kan sige det klart og enkelt. (s. 38 ’særlig interessant artikel’) Alle andre forklaringer på karakteristikken jeg har læst har været meget hemmelige.
Endeligt legeme Fq
Hvis q=p^m - p et primtal og m et positivt heltal så er
p karakteristikken af Fq og
m er udvidelses graden af Fq
Så enkelt og og så lækkert.

Hvad lavede jeg egentlig i det halve år der gik?

..Ud over at gå til et par weekendseminarer og læse op til dem og bagefter op på dem?
(og arbejde fulltime og passe to børn solo?!?)?
Jeg fandt en trillion interessante artikler. Oversigt følger senere. Artikler fundet via statsbibliotektet – så er alle artikler gratis. Åh nej – hvad gør jeg når ”studielicensen” udløber. Statsbiblioteksadgangen er essentiel!
Jeg bestilte en gudebog hjem: ”Handbook of Elliptic and Hyperelliptic curve cryptography”. Den kan det hele og er SÅ lækker. Har orienteret mig i den hist og pist. Og det ser alt samen meget interessant ud. Er vild med det ekstra ”dryp” længst til venstre på forside illustrationen (en HYPEC – 5gr.). Jeg har såmænd brugt tid på at finde en pæn kurve der kunne det.
Og så har jeg for at være sikker på jeg kunne kaste med kurver i komplexe rum lige genopfrisket hvad komplexe tal og al deres væsen går ud på via ”A first course on complex function” Jameson.
Desuden har jeg lavet en række tidsplaner og en række dispositioner for opgaven. Alle tidsplaner har forlængst mistet deres aktualitet.
Dispositionen så således ud:
Disposition
· Undersøge hvad suite B går ud på i relation til NSA... og NIST? IEEE? FIPS? ANSI?
· Artikeludvælgelse (AT begrænse sig!)
· Koblitz kurver
· Kurver på legemer over komplexe tal?
· Krav til kurvevalg til suite B
· Specifikation af suite B krav.
· Gisninger om hvorfor disse kurver er velegnede ??
· Implementere en Nøgle udveksling ( kryptering/dekryptering) med suiteB krav.
· Om hyper elliptiske kurver
· Implementere et forsøg på nøgleudveksling med HYPEC
· Diskussion af sikkerhed og formål med HYPEC
· perspektiv

Jeg har desuden brugt noget tid på at genopfriske Java. Åbenbart ikke med stort held for jeg bliver ved med at vende tilbage til visual studio C#.

The Core

Faktisk står der i FIPS PUB 186-2 app 6 : recommended elliptic curves for federal government use..
Netop DETTE ENE var min motivation oprindeligt. Hvorfor er nogen kurver bedre end andre? Og i dette tilfælde hvorfor lige de anbefalede kurver og ikke nogen lige ”ved siden af” ? Har jeg en kinamands chance for at finde ud af det? Eller er det way over mit hovede? Det er det formentlig. Er der noget dette studie har bidraget til så er det ydmyghed. Men jeg ville altså gerne vide det. Kan jeg bare vise at jeg kan ’anvende’ en smule kurve kan jeg vel skralle an.

Sindsyg Notation

Der er altså virkelig nogle sindsyge notationer i IEEE P1363 A.
F.esk s 129; {ε (tuborgstart epsilon – klasket helt sammen). Jamen det betyder da forskellig fra....går jeg ud fra ud fra i sammenhængen.
Noget er måske gået galt i tegnmapningen. For der er også andre underlighder. B ζ 0. (b zeta nul) Hvad betyder det f.eks? At b ikke må være nul? Eller at den skal være det? Der står også fx ’udsagn’ { 0. Betyder det så ’er lig med’ eller ’indeholder’ eller?
Måske skulle jeg se om en evt anden kopi indeholder samme underlige notation.

ECM

Midt på side 336 står iøvrigt ret præcist hvad jeg blev spurgt om til 3.sem. eksamen som jeg havde forstået men som jeg åbenbart ikke formåede at forklare ordentligt. . Altså ”er det en gruppe eller er det ikke en gruppe, og vi laver gruppeoperationer men må vi det? ” Kernen i Lenstras metode.

Sunday, July 23, 2006

Trial error

Naturligvis. Punkt 1. Man prøver sig frem. Algoritme 7.2.1 Prime Numbers. Hvordan fik jeg dog rodet rødder ind i det. Husk Jacobi symbol modellen hvis y ikke er nødvendig i en beregning. S 324.
(jf øverst side 1 i denne logfil)
-og i ECM er det jo netop smart at finde pseudorandom kurve i samme hug som punket. Det begynder at dæmre. Også hvorfor montgommery var smart. Algoritmer uden inversberegninger.

MIN OPGAVES VINKEL – udkast:

Nøgleudveksling med EC. Eller skal det være Digital signatur med EC? - om nøgleudveksling generelt (måske også en smule protokol), om EC generelt , om asymetrisk contra symmetrisk kryptering. Altsammen snak og tal. Så om standarder – herunder suite B. Om Suite Bs anbefalinger. Eksempel på implementationer, simplere og med suite b *. Matematikken bag * Sikkerhedsovervejelser. Så noget perspektiv og noget om hyperEC. Matematikken bag. Eksempel på simpel implementation med Hyper EC.
· Det er her der er kalorier i opgaven. Det er her opgaven fylder noget og er svær.

Overvejelse:
Skal jeg begynde at skrive al fyldet allerede nu bare for at komme igang? Eller er det vigtigste ikke at FORSTÅ mit projekt på det rigtige niveau? Altså at forstå hvad der står i de suite B artikler?

TODO:

Læse ’særlig interessant artikel’
(TheElliptic Curve Digital SignatureAlgorithm (ECDSA)
Don Johnson1, Alfred Menezes1,2, Scott Vanstone1,2)

Hvad vil det sige at en kurve er over et legeme GF(2^p) givet ved en polynomial basis med et specifikt legeme polynomium?
Implementere et par operationer mere på EC over et endeligt legeme Fp. Hvad er det nu forskellen er på GFp og Fp?
Tjekke engelske/eu standarder.

Huskeliste til mig selv:

Man bliver ikke klogere at at købe bøger. Man skal læse dem.
Man kan ikke spoole tilbage til Adam og Eva hver gang

Hvad har jeg så foretaget mig indtil nu den sidste uges tid?

1. Jeg har fundet et hav af interessante og relevante videnskabelige artikler om elliptiske kurver, og kryptering md samme på nettet. Jeg har dog ikke læst disse artikler endnu. Kun skimmet nogle stykker. Deter artikler om EC digital signatur og om nøgleudveksling. Der er især en artikel som er særlig interessant som handler om EC med suite B.
2. Så har jeg forsøgt at finde noget om at kode elliptiske kurver. Især med C#. Det ser ud til at være en helt død rute. Kedeligt jeg er ellers så glad for C#. Men det ser ud til at være JAVA vejen. Alle kloge bøger der er skrevet om kryptering refererer til C, C++ eller Java.
3. Har bestilt beginning cryptography with Java, Wrox, og Implementing EC med C. Jeg ER NØDT TIL at se nogle eksempler på på det her. Om det så er skrevet på ægyptisk eller mandarinkinesisk.
4. Har tæsket igennem nogle dele af Data Security med C#. Det var ok, det er jo ikke mange krypto-applikationer det er blevet til og tænkte at lidt applied .NET ikke var af vejen. Det var dog ret frustrerende at algoritmerne blot var nogle man hentede i et bibliotek – en linie. Punktum. Resten noget læse/skrive streams pangel. Altså det er fint nok at kunne bruge et bibliotek. Det kan endda være at jeg engang pludselig sidder og skal gøre det. Men det er slet ikke tæt nok på matematikken det her og derfor næsten at betragte som overspringshandling.
5. Har kigget koden fra sidste semester igennem. ECM. Er nødt til at kigge på noget af det igen. Hvorfor kommenterede jeg dog ikke koden lidt bedre.
Problem: Jeg KAN ikke bare acceptere at en bestemt måde at gøre tingene på er nemmere eller bedre end andre hvis det ikke er oplagt. Jeg er nødt til at gå den lange trange vej og opdage det selv. Har derfor nu implementeret nogle regneoperationer på EC som jeg synes de skal være – lige ud af landevejen - og så må ulemperne dukke op hen af vejen. Så kan det være jeg bliver overbevist om projektive koordinater - montgommery og hvad har vi.
6. Har bestilt en pakke C# elliptisk kurve tam tam suite B suitable hos Certicom. Academic free licence one year. Har lørdag morgen fået mail tilbage, hvor de gerne vil vide hvad jeg skal bruge det til. Gav dem en sang fra de varme lande og håber på svar mandag. Jeg vil jo bare frygtelig gerne se noget real life software der kan det her. Formoder det er en bibliotekspakke.

klar strategi og politik på krypteringområdet??

Mens jeg husker det:
Hvorfor har Danmark ikke en mere klar strategi og politik på krypteringområdet?

Den anden morgen stod jeg op kl 5 og undersøgte sagen. Skrev torsdag 20-07-2006 12:24 således til Henrik:
”Til gengæld vågnde jeg kl 5 i morges og var så frisk at jeg gav mig til at undersøge om Danmark har nogle standarder, anbefalinger, love om krypteringsstandard for kommunikation med det offentlige, - og kommunikation med staten af sikkerhedsmæssig art.
Det er jo præcis det mit speciale handler om – det er bare den amerikanske standard. Suite B. Til level: secret og topsecret. Suite A frigives desværre ikke.
Men DK har INTET. Der er lidt fnidder i persondataloven. ”Der skal anvendes stærk kryptering” og datatilsynet svarer på på spørgsmålet om hvad det er: symmetrisk 128 bit. Kendte algoritmer, DES, Tripple DES osv. Det er endda et svar fra 2002. Det er skandaløst.
Vi har haft flere forskellige råd: Rådet for it-sikkerhed og it-sikkerhedsrådet. Begge dele er nu nedlagt. Førstnævnte afløste sidstnævnte i 2002 og blev nedlagt jan 2006. Nu har vi teknologirådet og videnskabsministeriet der skal tage sig af relevante spørgsmål. Og begge dele har kun gammelt skrammel fra fx 1995 liggende om Danmarks overvejelser om kryptering.
På et tidspunkt bliver der bare henvist til at vi nok skal skele lidt til eu og engelsk standard.
Men kan det virkelig passe? Bruger fx FE og PET ikke kryptering til deres kommunikation med omverden? Og indbyrdes? Selvfølgelig må de gøre det. Men hvilken standard?”

punkt 1

Hvordan finder man overhovedet ”det første” punkt på kurven?. Har lige tjekket s 123 i IEEE P1363.
Når det er modulus 13 er er jo et stærkt begrænset antal punkter. Forsøgte med y = 0, men det giver ingen punkter på kurven , ligningen kan ikke give nul når x skal være mellem 0 og 12. Det var ellers hvad jeg synes at huske at man da bare kunne starte med at finde rødderne ( altså y =0) og så havde man et punkt og så var man i gang. Resten bare fordoble punktet og lægge sammen som det nu passer sig – resten af punkterne ligger jo så pr definition på ”kurven”. Anyway det må jo stå på side 1 i sidste semester eller i et af mine utallige ”børnebøger”. Hvor er det irriterende at jeg bare glemmer sådan noget. Det er helt grundlæggende og noget jeg allerede har fundet ud af flere gange det her!
Derfor denne log. Jeg VIL ikke blive ved med at glemme alting.