/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
simpel krypgering
Fra : Troels Thomsen


Dato : 05-02-03 10:45

Hej

Hvordan laver man en meget simpel kryptering af nogle data. Det skal blot
være en tak bedre end at lægge fx 37 til alle bytes eller XOR'e med en fast
streng.

Strengen
0x00 , 0x03 , 0x00, 0x01, 0x00 , 0x06 , 0xA0, 0x01
bliver til
0x??, 0x??, 0x??, -- noget 'tilfældigt' -- 0x??, 0x??, 0x??,

Hvis der ændres én bit i inputstrengen vil jeg helst at hele output strengen
ændres (udelukker XOR med fast streng.)

Det er bare en pilfinger beskyttelse hvor 3. mand kan indtaste nogle
værdier, som jeg bare helst ikke vil vise ham i plaintext. (Ja, han kan
disassemble programmet og finde algoritmen.)

(eksempel source eller links modtages med kyshånd, jeg er ikke så stiv i
s-boxe og andet krypolog-fagsnak)

mvh Troels



 
 
Morten F. Hansen (05-02-2003)
Kommentar
Fra : Morten F. Hansen


Dato : 05-02-03 11:14

> Hvordan laver man en meget simpel kryptering af nogle data. Det skal blot
> være en tak bedre end at lægge fx 37 til alle bytes eller XOR'e med en fast
> streng.

Hvad med denne?

http://sourceforge.net/snippet/detail.php?type=snippet&id=100664

Fungerer som XOR, men værdien man XOR'er med er lidt mere gennemtænkt end
bare et fast password.



Morten F. Hansen (05-02-2003)
Kommentar
Fra : Morten F. Hansen


Dato : 05-02-03 11:29

> Hvad med denne?
> http://sourceforge.net/snippet/detail.php?type=snippet&id=100664

Ved nærmere eftersyn ser der ud til at være en lille bug i koden. Variablen
"i" bør (ligesom "j") sættes til 0 i prepkey()-funktionen. Variablen "data" bruges
ikke i koden og kan fjernes. Men derfor kan algoritmen jo stadig være fin til
formålet. Jeg ville dog vælge at skrive den lidt om, så man undgår globale
variabler osv.



Troels Thomsen (05-02-2003)
Kommentar
Fra : Troels Thomsen


Dato : 05-02-03 16:11


> > Hvad med denne?
> > http://sourceforge.net/snippet/detail.php?type=snippet&id=100664

Tak Morten og Bertel
De har dog begge sådan at outputtet kun ændrer sig på samme plads hvor
inputteksten ændrer sig.

Det sker ikke hvis man bruger cipher text chaining mode og første byte
ændres, idet den indgår i krypteringen af næste byte.
http://www.rsasecurity.com/rsalabs/faq/2-1-4-3.html





Morten F. Hansen (07-02-2003)
Kommentar
Fra : Morten F. Hansen


Dato : 07-02-03 01:08

> Det sker ikke hvis man bruger cipher text chaining mode og første byte
> ændres, idet den indgår i krypteringen af næste byte.
> http://www.rsasecurity.com/rsalabs/faq/2-1-4-3.html

Min hjerne er tæt på at springe i luften, når jeg læser det Tror mine
tanker er blevet krypterede (med cipher text chaining mode og det hele
slået til).. Hehe! Men det er jo også sent og jeg har kodet hele dagen på
en 6502 emulator. Håber ikke jeg drømmer for meget om 6502 addressing modes
i nat..



Bertel Lund Hansen (05-02-2003)
Kommentar
Fra : Bertel Lund Hansen


Dato : 05-02-03 11:52

Troels Thomsen skrev:

>Hvordan laver man en meget simpel kryptering af nogle data.

Man kan fodre sin randomgenerator med et starttal og så XOR'e med
de værdier der løbende kan hentes med rand(). Starttallet bliver
så adgangskoden.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

J. Martin Petersen (05-02-2003)
Kommentar
Fra : J. Martin Petersen


Dato : 05-02-03 16:32

Bertel Lund Hansen <nospamfor@lundhansen.dk> writes:

> Troels Thomsen skrev:
>
>>Hvordan laver man en meget simpel kryptering af nogle data.
>
> Man kan fodre sin randomgenerator med et starttal og så XOR'e med
> de værdier der løbende kan hentes med rand(). Starttallet bliver
> så adgangskoden.

Hvor standardiseret[1] er rand() egentlig? Jeg tænker her særligt på
om der er givet en algoritme, således at et givet seed skal give samme
"tilfældige" sekvens uafhængigt af implementationer[2].

Hvis ikke det er standardiseret, så skal man huske at bruge samme
implementation til at generere og afkode strengen.

[1] ISO/IEC 9899:1990 ("ISO C89") skulle beskrive den, men den
standard har jeg ikke lige ved hånden, og Google sendte mig på
vildspor.

[2] Ja, der var en tråd på FreeBSD -CURRENT om det, men den var ikke
lige til at finde hoved og hale i.

--
J. Martin Petersen "Atter springer gnuerne ud i vandet..."

Bertel Lund Hansen (05-02-2003)
Kommentar
Fra : Bertel Lund Hansen


Dato : 05-02-03 21:27

J. Martin Petersen skrev:

>Hvor standardiseret[1] er rand() egentlig? Jeg tænker her særligt på
>om der er givet en algoritme, således at et givet seed skal give samme
>"tilfældige" sekvens uafhængigt af implementationer[2].

Det tænkte jeg ikke på, og jeg kan ikke besvare spørgsmålet. P.t.
har jeg kun én C-compiler installeret.

>Hvis ikke det er standardiseret, så skal man huske at bruge samme
>implementation til at generere og afkode strengen.

Ja.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Morten F. Hansen (05-02-2003)
Kommentar
Fra : Morten F. Hansen


Dato : 05-02-03 23:23

>> Hvis ikke det er standardiseret, så skal man huske at bruge samme
>> implementation til at generere og afkode strengen.
> Ja.

Implementeringen af rand() kan variere meget, så man kan ikke regne
med at den giver samme resultat fra compiler til compiler. Så hvis
det skal være compiler-uafhængigt, skal man få fat i koden til en
anden rand-funktion, og bruge denne i stedet.

Ideen med rand()-kryptering er dog god, da den er nem at implementere
samtidigt med at være relativ svær (men dog langt fra umulig) at
gennemskue.



Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408518
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste