Archief - [CODING][JAVA] uittesten encryptie

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

MilM

Legacy Member
etl_mx zei:
Maar ik heb in de laatste dagen nog wat bezig geweest om de woordlengte aan te passen voor dat ik begin te encrypte. Is me ook gelukt, en volgens mij zal je zonder programma dit niet kunnen oplossen.

Het maken van een encryptie waar je zeer lang zou aanzitten om met het blote oog te ontcijferen is dan ook poepsimpel ...
Zeker indien je zelf een programma gebruikt.

Een simpel voorbeeld dat mij nu binnenschiet.

Je maakt alle mogelijke woorden van lengte 5.
Je slaat dat op en via een random generator wijs je aan elke letter (26^5/26) combinaties toe.

Wanneer je dan een zin encrypteert, dan ga je via een random generator er één van deze 26^5/26 mogelijkheden uitpikken en vervang je de letter door deze combinatie.

Begin dat maar eens met het blote oog te decrypteren ;)

Uwe werkt nu wel met sleutel (alhoewel je het bestand met de toewijzingen bij mij als sleutel kunt beschouwen), maar mijn punt is dat zoiets schrijven geen uitdaging is.

EDIT:
Let op, ik zeg niet dat er weinig doordachte zaken in uw algoritme zitten hé, maar ik ben te tam om te zoeken ernaar. Ik bedoel enkel dat de uitspraak dat je 'een computer zal nodig hebben' weinig betekent over 'hoe slim' het algoritme is.

Vaak is het intressanter om te discussieren over het algoritme zelf dan de zoektocht om het te kraken.

dJeez

Legacy Member
Het valt wel heel hard op dat je de positie van het karakter mee betrekt in je encryptie. Ik denk - nu ja, het kan gewoon niet anders als ik mij baseer op de herhalingen - dat de keylengte in post 17 niet 5 maar 4 is.

De 11e en de 13e letter uit je originele bericht zijn een a, da's ook al duidelijk.

En daarop voortbouwend is de cleartext uit uw eerste bericht :
he is in the house

Het enige wat ik heb gebruikt is uw cleartext + cipher uit post 14 om post 1 te ontcijferen (adhv een ASCII tabel). Niet echt rocket science, en bij deze weet je ook dat je algoritme zo onveilig is als de pest, ik heb je key niet nodig gehad - en dat heeft dus hoop en al een 20 minuten tijd gekost (kon sneller als ik niet zo vermoeid was na een lange werkweek :p).

Voor de liefhebbers, de simpele lookup tabel (spaties toegevoegd voor de leesbaarheid) :
Code:
TTWXXX^[} TTWXXX^\< TTWXXX^\J TTWXXX^\H TTWXXX^\? TTWXXX^\I TTWXXX^[Y TTWXXX^\0 TTWXXX^\A TTWXXX^\G TTWXXX^\A TTWXXX^\C TTWXXX^\C TTWXXX^\O TTWXXX^\P TTWXXX^\N TTWXXX^\K TTWXXX^[d TTWXXX^\Q TTWXXX^\\ TTWXXX^[g TTWXXX^\T TTWXXX^\Z TTWXXX^[j TTWXXX^\b TTWXXX^\W TTWXXX^\U TTWXXX^[n TTWXXX^\Z TTWXXX^\b TTWXXX^\i TTWXXX^\h TTWXXX^\[
TTWXXX^\7 TTWXXX^\8 TTWXXX^\9 TTWXXX^\: TTWXXX^\; TTWXXX^\< TTWXXX^\= TTWXXX^\> TTWXXX^\? TTWXXX^\@ TTWXXX^\A TTWXXX^\B TTWXXX^\C TTWXXX^\D TTWXXX^\E TTWXXX^\F TTWXXX^\G TTWXXX^\H TTWXXX^\I TTWXXX^\J TTWXXX^\K TTWXXX^\L TTWXXX^\M TTWXXX^\N TTWXXX^\O TTWXXX^\P TTWXXX^\Q TTWXXX^\R TTWXXX^\S TTWXXX^\T TTWXXX^\U TTWXXX^\V TTWXXX^\W
J         e         r         o         e         n                   S         c         h         a         b         a         l         l         i         e                   i         s                   i         n                   t         h         e                   h         o         u         s         e

*edit* Wat heb ik nu gewonnen? :woohoo:

[BAT] Hydra

Legacy Member
Mooi gevonden, jouw oplossing heeft me aangezet om er zelf eens over te denken. Ik kom hetzelfde uit, maar ik heb het probleem precies anders benaderd.

Waarom heb je trouwens een lookup table gemaakt? Aangezien een ciphertextsubstring die meerdere keren voorkomt in de ciphertext telkens een ander karakter voorstelt lijkt me dat nogal nutteloos?

Code:
 a   a   a  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
-42 -41 -40 ...
\7  \8  \9  :;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh

Hieruit haal je dus ascii verschil tussen de ciphertext en de plaintext. Dit ascii verschil ga je terug gebruiken: (Als er ] staat moet je nog eens -35 doen)

Zie ook http://www.asciitable.com/

Code:
 J       e   r   o   e   n
-42-35  -41 -40 -39 -38 -37
[}      \<  \J  \H  \?  \I

 
-36-35
[Y

 S   c   h   a   b   a   l   l   i   e
-35 -34 -33 -32 -31 -30 -29 -28 -27 -26 
\0  \A  \G  \A  \C  \C  \O  \P  \N  \K              

-25-35
[d

 i   s
-24 -23
\Q  \\

-22-35 
[g

 i   n
-21 -20
\T  \Z

-19-35
[j 

 t   h   e
-18 -17 -16
\b  \W  \U 

-15-35
[n

 h   o   u   s   e
-14 -13 -12 -11 -10
\Z  \b  \i  \h  \[

dJeez

Legacy Member
Da's eigenlijk exact wat ik ook heb gedaan hoor - lookup tabel was wat verkeerd uitgedrukt (het was dan ook al laat hé :p).

etl_mx

Legacy Member
Dikke proficiat!
Ben blij dat het iemand heeft gekraakt.

maar ondertussen heb ik nog wat verder gedaan.
heb zitten zoeken om de woordlengte aan te passen en meerdere encrypties door elkaar.

Zal zeker nog eens grondig bekijken hoe jullie dit hebben kunnen klaren en zo kan ik mijn methode dan nog verbeteren.

killgore

Legacy Member
ik denk datjij serieus je tijd aan het verspillen bent, ma soit.

etl_mx

Legacy Member
We zullen het nu zien killgore. Als ze het nu oplossen, zal ik het lam leggen :)

Een normale zin zit hierin verborgen:
I6T V]mXY aBp5\ ZYlZX 45b[Y ]Zf[= 5[-TZ Z^K.5 Z[ X\ _7f5Z YWuZ` *5eZW \Yu[N 5ZnVZ _`px5 ZU \W ]zq5Z UUfWW N5pZT YYuXl 5Y ]^ [Wfz5 Y]fZZ Y[j5Y ]Vj_[ /5fY\ ]_sXA 5Y"\[ X] P5 Y\ X_ Ya 5Y \V ^[ {5 Y[ ^_ `/ 5Y [] YX *5 Y[ [^ W! 5Y [Z ZY d5 Y[ YW ^. 5Y [X VX r5 Y[ V_ ]) 5Y [U __ ,5 Y[ UV ^S

Werkwijze is zelfde als in eerste post (ASCII), alleen bepaal ik niet het teken op de positie.
Feistel cypher zit er ook in.
Het is een andere key, dus met je -42(-35) zal je er niet geraken.
Het decrypteerd perfect.

bonne chance!

wil ook nog eens iedereen bedanken om me wat wijzer te maken over encryptie.

killgore

Legacy Member
tis niet van oplossen, ma geloof me vrij dat ge meer zijt met een uur een (wiskundige) inleiding over encryptie te lezen als u gepruts.

[BAT] Hydra

Legacy Member
killgore zei:
tis niet van oplossen, ma geloof me vrij dat ge meer zijt met een uur een (wiskundige) inleiding over encryptie te lezen als u gepruts.

Voor een goed symmetrisch encryptiealgoritme te designen moet je eigenlijk niet zoveel wiskunde kennen hoor.

Het is enkel bij assymetrische encryptiealgoritmen dat er veel mooie wiskunde (number theory) komt kijken.

[BAT] Hydra

Legacy Member
etl_mx zei:
We zullen het nu zien killgore. Als ze het nu oplossen, zal ik het lam leggen :)

Een normale zin zit hierin verborgen:
I6T V]mXY aBp5\ ZYlZX 45b[Y ]Zf[= 5[-TZ Z^K.5 Z[ X\ _7f5Z YWuZ` *5eZW \Yu[N 5ZnVZ _`px5 ZU \W ]zq5Z UUfWW N5pZT YYuXl 5Y ]^ [Wfz5 Y]fZZ Y[j5Y ]Vj_[ /5fY\ ]_sXA 5Y"\[ X] P5 Y\ X_ Ya 5Y \V ^[ {5 Y[ ^_ `/ 5Y [] YX *5 Y[ [^ W! 5Y [Z ZY d5 Y[ YW ^. 5Y [X VX r5 Y[ V_ ]) 5Y [U __ ,5 Y[ UV ^S

Werkwijze is zelfde als in eerste post (ASCII), alleen bepaal ik niet het teken op de positie.
Feistel cypher zit er ook in.
Het is een andere key, dus met je -42(-35) zal je er niet geraken.
Het decrypteerd perfect.

bonne chance!

wil ook nog eens iedereen bedanken om me wat wijzer te maken over encryptie.

Opnieuw: geef je algoritme!! (Kerchhoffs principle)

A basic rule of cryptography is to use published, public, algorithms and protocols. This principle was first stated in 1883 by Auguste Kerckhoffs: in a well-designed cryptographic system, only the key needs to be secret; there should be no secrecy in the algorithm. Modern cryptographers have embraced this principle, calling anything else "security by obscurity." Any system that tries to keep its algorithms secret for security reasons is quickly dismissed by the community, and referred to as "snake oil" or even worse.

killgore

Legacy Member
[BAT] Hydra;10429148 zei:
Voor een goed symmetrisch encryptiealgoritme te designen moet je eigenlijk niet zoveel wiskunde kennen hoor.

Het is enkel bij assymetrische encryptiealgoritmen dat er veel mooie wiskunde (number theory) komt kijken.

tis niet omdat het geen mooie wiskunde is dat het geen wiskunde is he. Bij de meeste goede encryptiealgoritmen (symmetrisch is) komt meestal nogal wat deftige algebra en polynomiaalrekening kijken (neem een vb. aan AES). Het is niet omdat het verdoken zit in bitshifts ofzo dat het geen wiskunde is.

Krueger

Legacy Member
etl_mx zei:
We zullen het nu zien killgore. Als ze het nu oplossen, zal ik het lam leggen :)

Een normale zin zit hierin verborgen:
I6T V]mXY aBp5\ ZYlZX 45b[Y ]Zf[= 5[-TZ Z^K.5 Z[ X\ _7f5Z YWuZ` *5eZW \Yu[N 5ZnVZ _`px5 ZU \W ]zq5Z UUfWW N5pZT YYuXl 5Y ]^ [Wfz5 Y]fZZ Y[j5Y ]Vj_[ /5fY\ ]_sXA 5Y"\[ X] P5 Y\ X_ Ya 5Y \V ^[ {5 Y[ ^_ `/ 5Y [] YX *5 Y[ [^ W! 5Y [Z ZY d5 Y[ YW ^. 5Y [X VX r5 Y[ V_ ]) 5Y [U __ ,5 Y[ UV ^S

Werkwijze is zelfde als in eerste post (ASCII), alleen bepaal ik niet het teken op de positie.
Feistel cypher zit er ook in.
Het is een andere key, dus met je -42(-35) zal je er niet geraken.
Het decrypteerd perfect.

bonne chance!

wil ook nog eens iedereen bedanken om me wat wijzer te maken over encryptie.

Ik denk wel dat je iets van de essentie mist. Het is echt niet moeilijk om een text met een eenvoudige "encryptie" om te zetten naar iets onleesbaar. Ik heb het gevoel dat het dat is dat jij aan het doen bent. Daar is geen kunst aan. Het is pas echt een goed encryptie algoritme als wij het algoritme mogen zien, en er dan nog niet in slagen de tekst te ontcijferen.

[BAT] Hydra

Legacy Member
killgore zei:
tis niet omdat het geen mooie wiskunde is dat het geen wiskunde is he. Bij de meeste goede encryptiealgoritmen (symmetrisch is) komt meestal nogal wat deftige algebra en polynomiaalrekening kijken (neem een vb. aan AES). Het is niet omdat het verdoken zit in bitshifts ofzo dat het geen wiskunde is.

De kracht van symmetrische algoritmes zit voornamelijk in het zo complex mogelijk permuteren en substitueren dat niemand nog de bomen door het bos ziet. Iets bvb 20 keer na elkaar op telkens 5 verschillende manieren beginnen substitueren en permuteren noem ik geen mooie wiskunde.

3-DES krijg je uitgelegd aan iemand die over niet al te veel wiskundige voorkennis bezit, een groot deel van AES trouwens ook. (het deel waarin er gepermutatieerd en gesubstitueerd wordt)

Mooie wiskunde vind ik een simpel doch zéér krachtig algoritme zoals bvb diffie hellman. Beautiful by its simplicity :).

etl_mx

Legacy Member
Zal geven hoe ik aan een keywaarde kom en zal ook geven hoe ik aan een nieuw character kom. Als je nog iets wil weten, moet je maar vragen.

1) key maken
---------------------------------------------------------
Eenheden uit de ascii cijfers halen.

vb.
key: vbd

v => ascii = 118 >> 8
b => ascii = 98 >> 8
d => ascii = 100 > 0

key waarde = 880

2) Nieuw character bepalen
---------------------------------------------------------
=> een totale waarde maken van:
ascii waarde character
+ sleutelwaarde
+ sleutelwaarde / positie
+ de lengte van de sleutel in 9 'en ( in dit voorbeeld, sleutel is 3 lang, dus 999 )

=> die waarde deel je door 94 ( alle characters tussen ascii waarde 32 en 126 )
de rest word je nieuw character.

[BAT] Hydra

Legacy Member
etl_mx zei:
Zal geven hoe ik aan een keywaarde kom en zal ook geven hoe ik aan een nieuw character kom. Als je nog iets wil weten, moet je maar vragen.

1) key maken
---------------------------------------------------------
Eenheden uit de ascii cijfers halen.

vb.
key: vbd

v => ascii = 118 >> 8
b => ascii = 98 >> 8
d => ascii = 100 > 0

key waarde = 880

2) Nieuw character bepalen
---------------------------------------------------------
=> een totale waarde maken van:
ascii waarde character
+ sleutelwaarde
+ sleutelwaarde / positie
+ de lengte van de sleutel in 9 'en ( in dit voorbeeld, sleutel is 3 lang, dus 999 )

=> die waarde deel je door 94 ( alle characters tussen ascii waarde 32 en 126 )
de rest word je nieuw character.

Hoeveel cijfers heb je in je sleutel gebruikt? Of "hoeveel bit is de encryptie?"

etl_mx

Legacy Member
Mijn definitieve versie is klaar. Er zat nog 1 zwakheid die ik vandaag snel opgelost op.
Heb mijn methode anders gemaakt dus moet ik een andere zin geven:

>UY TSXNX W]^IQ PS`NY XZbWK JQ GZ QM PR O] I^ ^U \^ NO ZO PN QJ WM P\ NJ8^W8 L8$]8 R8YV8 T8d\8 I8_]8 [8 Q8 U8 X8 O8 U8 U8 O8 V8 W8 X8 W8 Q8 S8 QWQaPT TW;QQ JSbET RO QK D]fIP GJ JQ OT F\ EQ FK RS D^ NQ HS RT QQ HR HT aN[_T PS_LK T^YN[ ^T`QN ZWWM[ [Q TP WY \P QR [P U_ SS O` R[ LQ NV VL ONV =NU^S HVVjV ITRbR IG GK ^H$>F [S NS }J 7R HS _D rJ {I 4R kG -I qJ RI H

Ik zal je ook mijn encryptie klasse geven:
Encrypt.java

Je zal nog iets nodig hebben. De volgorde van de methoden.
System.out.println("Geef uw sleutel in: ");
String tekst = Stream.readString();

System.out.println("\nGeef uw tekst in: ");
String tekst2 = Stream.readString();

Encrypt enc = new Encrypt(tekst2, tekst);
enc.makenKey();
enc.twist();
enc.maken();
enc.retwist();
enc.feistel(9999);

bonne chance!
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan