AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte CäsarChiffre 1.2
Thema durchsuchen
Ansicht
Themen-Optionen

CäsarChiffre 1.2

Ein Thema von sECuRE · begonnen am 30. Sep 2005 · letzter Beitrag vom 3. Okt 2005
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von sECuRE
sECuRE
Registriert seit: 10. Apr 2003
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
 
Benutzerbild von sECuRE
sECuRE

 
Delphi 7 Professional
 
#11
  Alt 1. Okt 2005, 01:20
Hi,

zuallererst: "Kannst'e" kannste bitte auch schnell wieder vergessen. Bitte kein Apostroph hier.

Dann: Ja, wenn man die Kleinbuchstaben, Sonderzeichen und Zahlen nicht mit einbezieht und als Nachricht einen sich ständig wiederholenden Buchstaben verwendet kann selbst die beste Verschlüsselung basierend auf Cäsar nichts mehr retten . Das hat ripper8472 auch schon geschrieben.

Die "Starke Verschlüsselung" werde ich wohl umbenennen in "Schlüssel während dem Verschlüsseln verschieben" - es sollte nur signalisieren, dass es etwas mehr Sicherheit bietet, als das standardmäßige Verfahren, in dem man auch ohne technische Hilfsmittel mit einer Häufigkeitsanalyse schnell zum Ziel kommt.

Die Anregung mit dem Startbutton ist gut. Ich denke, ich werde eine Option einbauen, die "On-the-fly" Ver-/entschlüsselt. Das Programm soll allerdings eventuell auch auf alten (sehr alten) PCs laufen (an der Schule), wodurch es eventuell gut wäre, wirklich nur bei Bedarf zu verschlüsseln - man weiß ja nie, was sonst noch im Hintergrund läuft und/oder RAM frisst .

Zitat:
versucht's doch mal mit 'ner dynamischen Verschlüsselung, wo sich also der Schlüssel bei mindestens jedem Schritt verändert.
Und wie soll das Ganze wieder rückgängig gemacht werden auf Seiten des Empfängers? Prinzipiell ändert sich der Schlüssel ja bei jedem Schritt - er verschiebt sich (basierend auf dem vorhergehenden Schlüssel, am besten also einen ganzen Satz nehmen und alle möglichen Zeichen aktivieren).

Zitat:
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
Richtig, danke, da muss ich noch einen Hinweis einbauen.

Sind ja doch einige Sachen zusammengekommen, die eine neue Version rechtfertigen .

cu
  Mit Zitat antworten Zitat
ripper8472
 
#12
  Alt 1. Okt 2005, 01:44
mit caesar bekommst du keinen preis mehr. nicht mal mehr mit polyalphabetischer.
die verschluesselung durch willkuerliche festlegungen zu verschleiern (passwort, reihenfolge des alphabets) hilft auch nichts.

wenn du einfach nur texte verschluesseln willst, dann reicht caesar gerade mal gegen fluechtiges drueberfliegen aber auch nicht mehr.

guck dir mal an, wie man sowas mit xor machen wuerde. das ist dann eine polyalphabetische verschluesselund und nahezu genauso einfach zu knacken.
Christoph
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

 
Delphi 12 Athens
 
#13
  Alt 1. Okt 2005, 02:11
Zitat von sECuRE:
Und wie soll das Ganze wieder rückgängig gemacht werden auf Seiten des Empfängers? Prinzipiell ändert sich der Schlüssel ja bei jedem Schritt - er verschiebt sich (basierend auf dem vorhergehenden Schlüssel, am besten also einen ganzen Satz nehmen und alle möglichen Zeichen aktivieren).
Du mußt natürlich den Schlüssel beim Sender und Empfänger in der gleichen Weise verändern

Und ja, bei jedem Zeichen verändert sich zwar das Schlüssel-Zeichen, aber der gesamte Schlüssel wiederholt sich eben nach 'ner Weile wieder. (z.B. nach 26 Zeichen)

Das siehst du ha an dem Beispiel mit den vielen a's ... ich hab dir ja den Verschlüsselten Text nach 26 Zeichen umgebrochen und wie du berstimmt bemerken wirst, beginnt die nächste Sequenz genaus, wie die Erste.





Wie gesagt, eigentlich hab ich von sowas null Ahnung, aber dennoch hatte ich mir mal 'ne persönlicher Verschlüsselung ausgedacht.
Und anstatt immer wieder mit dem selben "winzigen" Schlüssel durch die Daten zu marschieren wird bei mir ausgehend von einem Passwort eine längere Sequenz erzeugt, welche sich dann fortlaufend ändert (ähnlich Delphi's Zufallsgenerator, dort wird ja auch ausgehend von einem bestimmten Wert eine fortlaufene Reihe erzeugt).
Und da ich mir natürlich sicher war, daß selbst dieses nicht unknackbar ist, wird dieser dann noch mit mindestens einem weiteren "verschlüsselnd wirkenden" Prozess kombiniert.
  Mit Zitat antworten Zitat
Benutzerbild von sECuRE
sECuRE

 
Delphi 7 Professional
 
#14
  Alt 1. Okt 2005, 08:27
Hi,

Zitat von ripper8472:
mit caesar bekommst du keinen preis mehr. nicht mal mehr mit polyalphabetischer.
Den Nobelpreis habe ich auch nicht im Sinn.
Zitat von ripper8472:
die verschluesselung durch willkuerliche festlegungen zu verschleiern (passwort, reihenfolge des alphabets) hilft auch nichts.
Aber den Schlüssel hast du trotzdem nicht herausgefunden, da kannst du mir noch 100 mal sagen, dass die Verschlüsselung nichts taugt und ich wäre trotzdem noch genau so skeptisch .

Zitat von ripper8472:
wenn du einfach nur texte verschluesseln willst, dann reicht caesar gerade mal gegen fluechtiges drueberfliegen aber auch nicht mehr.
Eigentlich habe ich überhaupt keinen Anwendungszweck für das Programm. Wir machen sowas gerade in Informatik und beschäftigen uns mit Kryptographie (war die erste Stunde).

Zitat von ripper8472:
guck dir mal an, wie man sowas mit xor machen wuerde. das ist dann eine polyalphabetische verschluesselund und nahezu genauso einfach zu knacken.
Das halte ich für sinnlos, wenn ich 'ne gute Verschlüsselung will nehm' ich Blowfish und fertig. Mir ging's um Cäsar diesmal und wie man es verbessern kann .

Zitat von himitsu:
Du mußt natürlich den Schlüssel beim Sender und Empfänger in der gleichen Weise verändern
Was haltet ihr denn davon, den Hash des Codeworts zu verwenden, anstelle das Codewort selbst?

Edit: Ich habe die Vorschläge in der neuen Version (1.1) umgesetzt, einfach noch mal auf den Downloadlink klicken...

cu
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

 
Delphi 12 Athens
 
#15
  Alt 1. Okt 2005, 12:07
bleib lieber beim Codewort ... denn es ist ja durchaus möglich, daß mehrere Cordeworte den "selben" Hash besitzen.
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

 
Delphi 2005 Personal
 
#16
  Alt 1. Okt 2005, 12:35
Such mal nach der Vegenere-Chiffre, die in etwa deinem Polyalphabetischen Ansatz entspricht. Diese Chiffre galt ein paar hundert Jahre als 'Chiffre indechifrable'. Wenn du dieses Verfahren bei kürzeren Texten und größeren Schlüsseln benutzt, wird es recht schwierig, den Klartext zu finden.
  Mit Zitat antworten Zitat
Benutzerbild von sECuRE
sECuRE

 
Delphi 7 Professional
 
#17
  Alt 1. Okt 2005, 13:10
Hi,

Zitat von Toxman:
Such mal nach der Vegenere-Chiffre, die in etwa deinem Polyalphabetischen Ansatz entspricht. Diese Chiffre galt ein paar hundert Jahre als 'Chiffre indechifrable'. Wenn du dieses Verfahren bei kürzeren Texten und größeren Schlüsseln benutzt, wird es recht schwierig, den Klartext zu finden.
Davon habe ich gelesen. Mittlerweile zeigt mein Programm auch eine Warnung an, wenn die Nachricht größer als der Schlüssel ist.

cu
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

 
Delphi 2005 Personal
 
#18
  Alt 1. Okt 2005, 15:23
Wenn die Schlüssel- mit der Nachhrichtenlänge übereinstimmt und du den Schlüssel nur einmal benutzt ist der Code ja nicht zu knacken.

Wie willst du denn diese Schlüssel denn dann übertragen?
  Mit Zitat antworten Zitat
Benutzerbild von sECuRE
sECuRE

 
Delphi 7 Professional
 
#19
  Alt 1. Okt 2005, 15:32
Hi,

die sollten am besten persönlich ausgetauscht werden, wenn man dazu keine Möglichkeit hat, kann man ja auch auf das Diffie-Hellmann-Verfahren zurückgreifen. Eine Implementation davon plane ich allerdings nicht, dieses Programm dient nur der Anwendung des Cäsarverfahrens .

cu
  Mit Zitat antworten Zitat
Daniel G
 
#20
  Alt 1. Okt 2005, 19:52
Und dennoch ist es interessant, dass die Caesar - Verschlüsselung sogar bei BND - Aufgaben auftaucht...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:08 Uhr.
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