Av: Sven Wickberg <1384> 1985-07-23 00.33.38 HUR MAN KRYPTERAR UTAN ATT EGENTLIGEN ANSTR[NGA SIG Sven Wickberg Intresset f|r kryptering har blossat upp igen om man f}r d|ma av programexempel och artiklar i diverse datortidskrifter. Kryptering beh|vs bl a f|r att skydda datatrafiken fr}n piratavlyssnare. Alla chiffer kan l|sas (forceras s{ger experterna), men man f|rs|ker uppfinna s} besv{rliga krypteringar att man g|r det sv}rt f|r forcerarna. I ett tidigare nummer av Bladet beskrevs en metod som bygger p} produkten av tv} stora primtal. Man beh|ver bara det ena primtalet f|r att s{nda chiffret, men man beh|ver b}da f|r att l{sa det. Allts} kan man fritt meddela s{ndningsnyckeln till allm{nheten. [ven den som vet hur systemet fungerar skulle beh|va miljontals }r p} sig med snabba datorer f|r att hitta den felande nyckeln. Man jobbar h{r med mycket stora primtal. S}dana system blir tr|ga i anv{ndning och fordrar MYCKET stor datorkapacitet - absolut ingenting f|r oss mikrohackers. D{remot kan det vara intressant att mixtra litet med kryptering till husbehov. V}ra meddelande kanske inte skulle st} emot experterna fr}n CIA... men de l{r {nd} inte vara intresserade. En vanlig nyfiken Svensson kan man h}lla p} mattan med enklare medel. Det finns i chifferhistorien m}nga intressanta s{tt att blanda om bokst{verna. Det simplaste {r kanske ett vanligt f|rskjutningssystem: L}t A betyda B, ochB betyda C osv. N{r man jobbar f|r hand vill man inte ha f|r kraftfulla f|rskjutningar, det kr}nglar till jobbet. Med datorn kan man f|rskjuta hur mycket som helst, det g}r lika bra. L}t datorn analysera texten, ta ASCII-v{rdet f|r varje tecken och l{gga till en valfri siffra, som d} blir nyckeln till chiffret. N}, s}dana texter l{r vara j{tteenkla att kn{cka. Genom att titta p} teckenfrekvensen kan man snabbt k{nna igen de vanligaste orden och {ndelserna. Vi kan g|ra det v{rre f|r spanarna genom s k scramble, dvs genom att slumpvis l{gga till ytterligare ett tal. ABC-datorernas slumpgenerator duger bra till det. Om man inte har skrivit RANDOMIZE f}r man ju alltid upp slumptalen i samma ordning. Den andra nyckeln till chiffret blir d} tydligen den dator som chiffret skrivits p}. Mottagaren m}ste ha en likadan. Den tredje nyckeln kan ange vilket slumptal man b|rjar p} (bara f|r att g|ra det sv}rare f|r de bovar som vet att vi har ABC-maskin...) En fj{rde kan vara vilket tal man multiplicerar slumptalet med f|r att f} en hanterbar siffra. (H i programmet.) Slutligen kan vi komplicera saken f|r bovarna genom att d|lja mellanslagen och ordna de krypterade tecknen i grupper om fem. D} visar man inte var orden b|rjar och slutar, vilket g|r det litet sv}rare f|r bovarna - och litet l{ttare att skriva r{tt n{r man sj{lv skall l{sa in ett chiffrerat meddelande f|r avkodning. H{ngde du med? Titta d} litet p} programmet KRYPTOSW. Rad 50 inneb{r val av scramble. Om man vill ha med slumptal s{tts H=10 ({ven den siffran kan varieras) och datorn fr}gar efter "scramble-nyckel" dvs vilket slumptal vi skall b|rja med, T. Rad 75 exekverar d} omg}ende de icke anv{nda slumptalen s} att vi hamnar r{tt. Rad 80 fr}gar efter f|rskjutningsnyckeln F. Sedan du skrivit ditt meddelande (som i detta exempel inte b|r vara f|r l}ngt - h|gst en rad) med STORA bokst{ver (det kan man l{tt {ndra p} sedan), analyseras texten i A$ fr o m rad 300. Mellanslag (32) byts ut mot @ (64) f|r att vi skall f} ett obrutet ascii-intervall att jobba med (64-93). Krypteringsrutinen finns i 890-,avkryptering i 790-, och d{r h{nder samma saker fast tv{rtom. Om scramble {r beg{rd blir G% ett heltal mellan 0 och 10 (eftersom H {r 10) och ascii-v{rdet X |kas med G% och F. Observera att G% m}ste vara heltal. RND-funktionen ger decimaler, som visserligen trunkeras automatiskt n{r man g}r fr}n ascii till tecken (500), men som kan v}lla trassel vid avkrypteringen. X m}ste vara exakt 64 i rad 815 f|r att vi skall f} tillbaka mellanslagen. (Man kunde lika g{rna skrivit G=INT(RND osv ), men jag gillar % b{ttre. En smaksak f|rmodligen.) Slutligen m}ste vi stanna inom v}r ascii-tabell, s} om vi hamnar utanf|r intervallet 64-93 f}r vi hoppa till andra {ndan igen (810, 910). Det h{r programmet {r knappast mer {n en skiss. Det saknar rimlighetskontroller av inmatningen (tar allts} emot icke till}tna tecken). Det fungerar bara p} stora bokst{ver och kan bara behandla en str{ng. Punkt, komma, siffror f}r heller inte plats. Det {r begr{nsningar som skall utmana l{saren. Det skall v{l finnas n}got roligt kvar f|r en intresserad hackare att {ndra p}! ------------------------- 85 07 22 >lib kry Antal filer: 0 >lib kry* Antal filer: 3 KRYPTO .BAS KRYPTOSW.TXT KRYPTOSW.BAS >