Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   CäsarChiffre 1.2 (https://www.delphipraxis.net/54263-caesarchiffre-1-2-a.html)

sECuRE 30. Sep 2005 19:55


CäsarChiffre 1.2
 
Hi,

ich möchte mein neustes Programm vorstellen, welches Text mittels der Cäsar-Methode (auch bekannt als Verschiebemethode, die bekannteste Variante davon ist wohl ROT13) verschlüsselt.

Um das Thema möglichst komplett abzudecken und mich von der breiten Masse zu unterscheiden habe ich zahlreiche Optionen eingebaut: So kann man zum Beispiel den Bereich der ASCII-Zeichen wählen, die verwendet werden, um das Alphabet zu bilden, mithilfe dessen (de)chiffriert wird (Groß-/Kleinbuchstaben, Zahlen, Sonderzeichen). Außerdem kann man den "Schlüssel" entweder durch pure Verschiebung oder durch ein Codewort bilden lassen.

Bei jeder Methode kann man die Verschlüsselung durch die Häufigkeitsanalyse knacken, daher habe ich mir eine neue Variante (denke ich zumindest ;)) namens "Starke Verschlüsselung" einfallen lassen: Beim Verschlüsseln wird, anstelle einfach das chiffrierte Alphabet 1:1 zu übertragen, dieses um 1 Zeichen verschoben. So erhält ein Buchstabe mehrere Bedeutungen und bei ausreichend langem Schlüssel ist man um einiges sicherer unterwegs... (falls einer der Profis hier einen Denkfehler darin findet, bitte korrigieren).

Screenshot ansehen (JPG-Datei, ~ 70 KB)
Programm herunterladen (ZIP-Datei, 175 KB)

Dem ZIP-Archiv liegt selbstverständlich der Quelltext bei, auch eine HTML-Version davon (zum schnellen Drucken) ist enthalten.

Ich freue mich über eure Meinung, Kritiken und Vorschläge.

cu

Edit: Changelog für v1.2:
  • Neu: Die Option "Groß-/Kleinschreibung vermischen" wurde eingebaut
  • Neu: Die Option "Leerzeichen entfernen" wurde eingebaut
  • Behoben: Die Alphabeterweiterungen wurden nicht übernommen, wenn ein Codewort gewählt wurde und die Option "Schlüssel während dem Chiffrieren verschieben" aktiviert war
  • Behoben: Der verschlüsselte Text wird nun korrekt aktualisiert
  • Behoben: Der Mindest- und Maximalwert für die Alphabetverschiebung wird nun korrekt angepasst

ripper8472 30. Sep 2005 20:22

Re: CäsarChiffre 1.0
 
deine "starke verschluesselung" ist nichts anderes als polyalphabetische verschluesselung mit einem schluesselwort von [alphabetlaenge] zeichen.
bei entsprechend grossen texten (etwa [alphabetlaenge] mal groesser als bei monoalphabetischer) laesst sich das auch wieder knacken.
dann koennte einer unter umstaenden dahintersteigen, dass du das alphabet fuer jeden buchstaben wieder um eins verschiebst und dann ist die "starke verschluesselung" futsch.

"security through obscurity" funktioniert eben nie.

sECuRE 30. Sep 2005 20:35

Re: CäsarChiffre 1.0
 
Hi,

Das ist richtig. Nur funktioniert hier eben die Häufigkeitsanalyse nicht auf Anhieb, wodurch schon mal ein Angriffspunkt weg ist. Außerdem müsste die Nachricht ja erheblich länger sein, als das Alphabet (ich gehe von dem "kompletten" Bereich aus: Groß- und Kleinbuchstaben, Sonderzeichen und Zahlen), damit man wieder Anhaltspunkte findet - für kleine Notizen/Verschlüsselung in einem Chat (wenn man den Gegenüber ärgern will) meiner Meinung nach ausreichend. Ich gebe zu, dass der Name "Starke Verschlüsselung" hier nicht passend ist, mir ist aber auf die schnelle nichts besseres eingefallen ;).

Edit: Übrigens: Es wird nicht einfach das Alphabet verschoben, sondern das bereits generierte chiffrierte Alphabet, was also aus dem Codewort besteht! So wie du es darstellst, wäre es ja eine Cäsarverschlüsselung mit fortlaufend aufsteigendem Schlüssel...

cu

ripper8472 30. Sep 2005 20:59

Re: CäsarChiffre 1.0
 
Liste der Anhänge anzeigen (Anzahl: 1)
ist es aber doch.

im uebrigen holen sofort alle in einem chat ihre rot13 decoder raus, wenn sie was komisches lesen.


/edit:
hab mal nen screenshot angehaengt.
da siehst du genau, dass ich recht hab.

ausserdem find ich die "schluesselwort" variante laecherlich. du benutzt nur den ersten buchstaben und wenn der kein grossbuchstabe ist oder das feld leer ist, bekomm ich ne fehlermeldung!

sECuRE 30. Sep 2005 21:12

Re: CäsarChiffre 1.0
 
Hi,

Stimmt, für die normale Verschiebung trifft das zu. Aber probier das Ganze mal mit einem Codewort aus. Da wird es schwieriger, weil man ja das Codewort nicht kennt. Kriegste es da auch so einfach raus?
Wir können das gerne mal testen:

Verschlüsselt: <8CEEKJKBN KR IKZ OdQqcScZUbYv 6!z!*$z,h Dp+" ri Q-xh(aDu do;?tPu.t@2?@> H&;2702Od /CK5L 3EAK JVX JZ( NTZR @Ywd"!"gzz&$!d+,y)D) $üh &(h Y,,*sapoe=<>-0@sm A8<6.><5 P@9H064G VR R9H9HIIT' LSO jWRX TXz$cvkcq %kv+ +i&PzP e,s V,PthP e-rp=>s; I=ü45/2 5<>B KB9A4G jAqq" .Q ZTZLbNX ;jRXZ" kf$ übg' 432;456 L%*arä,+r e-tlh; <nro oü1 .o68 0==?E nHE1C6H 9GMC <öXbUN+

Klartext: Willkommen in der freundlichen Community rund um Borlands Entwicklertool "Delphi". Unser Ziel ist es, eine Diskussionsplattform für den Gedankenaustausch zwischen Menschen zu schaffen, die sich beruflich oder privat mit Delphi befassen (müssen oder wollen *g*). In unserem Archiv mit über 420.000 Beiträgen findet sich für fast jedes Problem eine Lösung.

Wie lautet der Schlüssel? ;)

@dein Edit:
Aktivier mal die Checkbox "Kleinbuchstaben verwenden". Ansonsten schreib eben alles groß, damit es effektiv ist (siehste ja auch am Hinweis, wieviel Buchstaben dein Codewort nun ändert). Das mit der Fehlermeldung muss ich noch beheben, danke...

cu

ripper8472 30. Sep 2005 21:26

Re: CäsarChiffre 1.0
 
ah sorry, das mit dem passwort funktioniert.
sollte sich dennoch mit etwas probieren rauskriegen lassen.

die "starke verschluesselung" ist aber nur ein hindernis, wenn man nicht weiss, dass sie verwendet wird.

sECuRE 30. Sep 2005 21:29

Re: CäsarChiffre 1.0
 
Hi,

mag schon sein, wie gesagt, die ganze CäsarVerschlüsselung ist knackbar, nur unterscheidet sich jede Methode von der anderen im Aufwand, der wird eben von Schritt zu Schritt gesteigert. Die Sache mit dem Schlüssel lass' ich trotzdem mal so im Raum stehen - ich bin gespannt, ob das jemand schafft :).

cu

ripper8472 30. Sep 2005 21:33

Re: CäsarChiffre 1.0
 
stell die frage mal in einem matheboard und biete dazu dein programm mit code an. die knacken das sofort.

sECuRE 30. Sep 2005 21:35

Re: CäsarChiffre 1.0
 
Hi,

kennst du ein solches Board?

Das wird aber langsam recht Offtopic...

cu

himitsu 1. Okt 2005 01:08

Re: CäsarChiffre 1.0
 
Ich bin ja kein Verschlüsselungsexperte ... hab ja eigentlich nichtmal 'ne Ahnung davon,


Aber deine "Starke Verschlüsselung" kannst'e vergessen.

Im Grunde genommen verändert diese ja nur den zur Verschlüsselung verwendeten Zeichensatz durch 'ne aufsteigene Addition.
Man kann dieses also auch mit einen "anderem" Passwort und ohne "Starke Verschlüsselung" gleichsetzen.

Eine wirkliche Auswirkungen auf die Verschlüsselung ergibt sich demnach nicht daraus.

Codewort: BfrCEE
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
BCEFGHIJKLMNOPQRSTUVWXYZADBCEFGHIJKLMNOPQRSTU

wenn man nach den 26 Zeichen (beim Standardalphabet und -schlüssel) umbricht fällt das leicht auf.
BCEFGHIJKLMNOPQRSTUVWXYZAD
BCEFGHIJKLMNOPQRSTU



Deine Methode mit einem Passwort den Schlüssel zu veränder, ist ebenfalls verbesserungswürdig.
Mal so als Tipp lass mal alle Häkchen deaktiviert (also nur Großbuchstaben) und gib mal irgendein Passwort ein, was nur aus A und meinetwegen auch noch ein paar kleinbuchstaben/Sonderzeichen besteht.
Du wirst entdecken, daß überhaupt nicht verschlüsselt wird :zwinker:

Codewort: Afdsfvbcvx
Dies ist ein Beispieltext, um ROT13 zu demonstrieren.
DIES IST EIN BEISPIELTEXT, UM ROT13 ZU DEMONSTRIEREN.



Dazu gibt es auch noch 'ne "nette" Fehlermeldung, wenn in dem angegebenem Passwort kein Zeichen vorkommt, welches auch im verwendetem Zeichensatz enthalten ist.
> gib z.B. mal irgendwas keingeschriebenes ein ("Keinebuchstaben behandeln" nicht aktiviert)


Und wozu ist eigentlich dieser "Start"-Button ... die nötigen Berechnungen sollten ja schließlich nichts langandauerndes sein, so das man eigentlich 'ne LiveDecodierung verwenden könnte (also immer dann, wenn etwas verstellt, oder eingegeben wird)




Und da du ja letztendlich 'nen statischen Schlüssel von fester Länge (standardmäßig 26 Zeichen) verwendest, wiederholt sich natürlich auch die Verschlüsselung in diesem Rüthmus, was bei längerwerdenten Texten bekannter Weise schnell auffällig wird ... versucht's doch mal mit 'ner dynamischen Verschlüsselung, wo sich also der Schlüssel bei mindestens jedem Schritt verändert.



Und nein ... ich hab nichtmal in deinen Quellcode geschaut ... aber die Art, wie das CODEWORT angewendet wird, ist mir gleich aufgefallen.

> Es werden einfach die im Zeichensatz vorkommenden Zeichen ihrer Reihenfolge eintsprechend als erstes im Zeichensatz verwendet (also nach vorn verschoben), vobei die übrigbleibenden Zeichen beginnend nach dem zu Letzt nach vorn verschobenem Zeichen weitergezählt werden.

Also ist deine Aussage, das die Verschlüsselung mit zunehmender Länge der Paswortes ebenfals zunimmt eindeutig falsch.
Praktisch ist es sogar leicht möglich, daß ich bei einem Buchstabe anfange und obwohl das Codewort stückchenweise bis ins unendliche verändert wird, sich die Verschlüsselung allerdings nicht verändert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:25 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz