|
| 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 |
| | |
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.
| |
|
|