Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  11 1232
Har et spørsmål relatert til kryptologi?

Om jeg skal ha skriftlig kommunikasjon mellom to parter å ønsker å kryptere informasjonen; hvordan gjør jeg dette ved hjelp av såkalte one time-pads?

- Finnes det et program som kan generere random nøkler som vil gjelde for beskjed en, to, tre osv, eller hvordan fungerer dette i praksis?

- Vil dette programmet gjøre det mulig å skrive ut to eksemplarer av nøklene som begge parter kan oppbevare?

Jeg er fullstendig grønn på programmering, så jeg må på forhånd beklage. Men det kreves vel strengt tatt ikke mer enn sunn logisk sans for å benytte seg av de ferdige nøklene for å dekryptere meldingene?

Takker på forhånd for all hjelp!
Sist endret av Jelass; 13. april 2010 kl. 22:27.
Er det noen spesiell grunn til at du skal bruke akkurat OTP? Det upraktiske med slike pads er at du må overføre dem på et eller annet vis, og da må du plutselig i gang med en annen type kryptering for å kunne overføre denne over nettet - evt. møte personen du skal snakke med og overrekke et lagringsmedium med pads på.

One Time Pads kan du enkelt løse med papir, men det er en ganske kjedsommelig og repetitiv prosess. Å løse den i programmeringssammenheng er ei heller noen stor utfordring, da du bare liner opp meldingen din med posisjonen du har kommet til i paden og utfører et shift modulo 26 i motsatt retning enn den andre parten.

Hvis dette ikke er en spesifikk oppgave eller din største drøm så ville jeg nok heller gått for kommersielle løsninger som Off-the-Record Messaging som tilbyr integrering mot MSN og utveksler keys automatisk eller manuelt (om ønsket).
Trådstarter
Takk for svar!

Jeg har ikke noe problem med å måtte møte den andre parten fysisk for så å overlevere OTP'ene i papirform. Meldingene kommer til å bli dekryptert i papirform, ettersom jeg ikke ønsker å etterlate meg noe "digitalt" spor på noe vis.

Valget av OTP er grunnet i mitt behov for tilnærmet uknekkbar kryptering. Du kan si det slik at jeg er en smule paranoid av meg

Fikk forøvrig ideen fra boken "Cryptonomicon" av Neal Stephenson. Boken er en fornøyelse for meg som ikkeprogrammerer, og må for dere som sysler med informatikk og kryptografi oppfattes som en ren orgasme

Så: Hvilket program ville du anbefalt for å generere slike OTP'er?
For at OTP skal være uknekkelig må pad'en være helt tilfeldig, minst like lang som teksten (ettersom man ikke får gjenbruke noen deler - derav "one time") og holdes hemmelig. De to siste delene er ikke veldig utfordrende, men delen med total tilfeldighet kan gjerne diskuteres. Alle generatorer du finner på internett vil sannsynligvis bruke en eller annen form for seeding (gjerne tid), dvs. at om noen vet ca. når du genererte paden din kan de bare bruke samme seedingfunksjon på alle mulige klokkeslett rundt den genererte tiden (ikke så mange per dag hvis du tenker over det) og så teste om det kommer noen vettuge plaintexts ut av det.

All den tid vi kan diskutere hva som virkelig er random kontra pseudo-random så vil du nok komme deg langt nok med en slik generator og egenvalgt seed. Da bør du likevel være obs på at koden de bruker godt kan være hentet ut fra en database for senere å bruke mot dine pads. Noe å ha i bakhodet om du er paranoid. Jeg kan dessverre ikke skryte av noen erfaring med slike programmer som genererer OTP'er, men du kommer sikkert langt ved å søke etter "One time pad generator" o.l. og unngå de som ser alt for mistenkelige ut. Helst bør du nok finne en som tilbyr kildekoden sin for nedlasting.
Trenger du ekte random er http://www.random.org/ er kjekk tjeneste..
Trigonoceps occipita
vidarlo's Avatar
Donor
Sitat av tormaroe Vis innlegg
Trenger du ekte random er http://www.random.org/ er kjekk tjeneste..
Vis hele sitatet...
Å anbefale tjenester utenfor din kontroll til kryptobruk er tåpelig. OTP er perfekt, gitt at:
  • Nøkkelmaterialet er ekte tilfeldighet
  • Nøkkelen er trygt oppbevart
  • Nøkkelen er like lang som meldinga
  • Nøkkelen kun blir brukt en gang
Bryt ett av dei punkta, og OTP er brått verdilaus kryptering. Sjølv store organisasjoner som statlige etteretningstjenester har gått på fuckup etter fuckup med OTP. Så OTP er ca. ei oppskrift på at ting går solid skeis, med mindre du holder tunga ekstremt beint i munnen.
Sitat av slashdot Vis innlegg
Å anbefale tjenester utenfor din kontroll til kryptobruk er tåpelig.
Vis hele sitatet...
Mener du at jeg var tåpelig? Anbefalte jo bare en anerkjent kilde til ditt første kriterie - ekte tilfeldighet.
Det som er problemet med en slik tjeneste, som slashdot prøver å si til deg, er at du ikke har kontroll på at det virkelig er random, og når dette i tillegg er noe du laster ned over nettet, så er det en kjempesvakhet i seg selv, som i praksis gjør det meningsløst å bruke som nøkkelmateriale for OTP.

OTP har vel tre hovedsvakheter:
1: Nøklene MÅ være virkelig tilfeldige. I følge det jeg har hørt, så pleide f.ex. KGB å lage sine nøkler ved at de hadde en serie telex-maskiner koblet til en antenne på taket som stod og tok inn bakgrunnsstøy fra universet, som så ble tolket som tekst av telexene. Dette ble naturligvis totalt kaos, som ihvertfall for den tidens krav var tilfeldig nok. Om man i dag kunne ha sett noe system i det aner jeg egentlig ikke. Så, selve prinsippet for random.org (atmosfærisk støy) er nok ikke så dumt, men det at det er en annen tjeneste som gjør det for deg er en svakhet.

2: Overføring av nøkler. Å sende disse via nett, enten du sender som en kryptert mail, eller laster ned fra random.org er en KJEMPESVAKHET. Hvis noen virkelig vil, så har du her avslørt nøkkelmaterialet ditt, og da er alt du sender kompromittert. KGB, CIA & liknende pleide å sende nøkkelmateriale med kurer til ambassadene.

3: Menneskelig svikt. Bruker man f.ex. samme nøkkel (eller samme del av nøkkelmaterialet) to ganger, så skaper man et mønster, og det man har sendt med dette materialet som nøkkel kan relativt lett knekkes.

Som du ser, så bryter du to av dem ved å bruke random.org som kilde: både at du ikke kan vite 100% sikkert at det virkelig er random (hva om f.ex. noen med uærlige hensikter opprettet en slik tjeneste, der de tok vare på alt av nøkkelmaterialet? hvordan kan du vite 100% sikkert at dette ikke er tilfellet med random.org, eller for den saks skyld at de ikke har en svakhet i systemet sitt?), OG overføringen...
Sitat av atomet Vis innlegg
Som du ser, så bryter du to av dem ved å bruke random.org som kilde: både at du ikke kan vite 100% sikkert at det virkelig er random (hva om f.ex. noen med uærlige hensikter opprettet en slik tjeneste, der de tok vare på alt av nøkkelmaterialet? hvordan kan du vite 100% sikkert at dette ikke er tilfellet med random.org, eller for den saks skyld at de ikke har en svakhet i systemet sitt?), OG overføringen...
Vis hele sitatet...
Ikke enig. Random.org - driftet av School of Computer Science and Statistics i Dublin siden 1998 - er en anerkjent og autorativ kilde, garantert ikke en kilde med uærlige hensikter.

Og når det gjelder overføring - random.org er ikke en kilde til NØKLER. Snakker om random-kilde som sekundært kan brukes til generering av nøkler.

Hvis jeg gjør en request til random.org og henter en million ekte random tall, for så å bruke ett av dem (random basert på tid) til å generere en nøkkel som jeg så kan bruke til kryptering, så gjør ikke min bruk av random.org krypteringen usikker på noen som helst måte. Random er ikke nøkkelen, random er ett av input til generering av nøkkelen.
Sist endret av tormaroe; 21. april 2010 kl. 15:55.
Trigonoceps occipita
vidarlo's Avatar
Donor
Sitat av tormaroe Vis innlegg
Ikke enig. Random.org - driftet av School of Computer Science and Statistics i Dublin siden 1998 - er en anerkjent og autorativ kilde, garantert ikke en kilde med uærlige hensikter.
Vis hele sitatet...
Men du har fortsatt ingen garanti for at dei ikkje lagrer alt dei generer. Dei hevder dei ikkje gjer det, og sannsynligvis gjer dei ikkje det. Men du aner det ikkje. Og skal du bruke talla til sikkerhet er det absolutt ei ulempe. Gjelder det mindre viktige ting er det sikkert itl å leve med, men det må vurderast i kvart tilfelle.
Sitat av tormaroe Vis innlegg
Og når det gjelder overføring - random.org er ikke en kilde til NØKLER. Snakker om random-kilde som sekundært kan brukes til generering av nøkler.
Vis hele sitatet...
Nøkkelen er et tilfeldig tall. Det er ikkje snakk om å bruke det til generering i otp - det _ER_ nøkkelen.
Sitat av tormaroe Vis innlegg
Hvis jeg gjør en request til random.org og henter en million ekte random tall, for så å bruke ett av dem (random basert på tid) til å generere en nøkkel som jeg så kan bruke til kryptering, så gjør ikke min bruk av random.org krypteringen usikker på noen som helst måte. Random er ikke nøkkelen, random er ett av input til generering av nøkkelen.
Vis hele sitatet...
I otp er en tilfeldig tallstring nøkkelen. Ei svakhet i tilfeldigheta vil gjere otp knekkbart, i motsetning til perfekt tilfeldig materiale som fører til at otp er umulig å knekke.

Viare så er det problematisk å bruke eksterne tilfeldighetsgeneratorer du ikkje har kontroll over om sikkerheta er ekstremt viktig for deg - du har enkelt og greit ikkje forutsetninger for å finne ut om talla blir brukt av andre, om dei blir lagra, eller kven som har innsyn. I ei lotteritrekning er det som regel heilt ok, men kjem det til bruk i krypto så er min påstand at det er et vesentlig minus. Om det er stort nok minus til å ikkje bruke dei må vurderast ut fra sikkerhetsnivået.

I tillegg er det for OTP til håndbruk rimelig enkelt å generere tilfeldighet sjøl, siden du ikkje treng ekstreme mengder tilfeldighet. Treng du større mengder tilfeldighet, med strenge sikkerhetskrav, så har svært mange pcer innebygd tilfeldighetsgenerator, eller du kan kjøpe/bygge en sjølv for et par hundrelapper.
Ok, ok, jeg kjenner ikke detaljene i OTP, og skal rygge unna

Vil bare forklare hva jeg tenkte, om det fortsatt er uklart: Hvis nøkkelen ikke er annet enn et tall så er løsningen min at det ekte random-tallet fra random.org brukes som del av seed til lokal pseudo-random generator (andre del av seed holdes strengt hemmelig). Dermed har man introdusert ekte random uten å bruke tallet som er overført usikret direkte.