Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ganz einfache Verschlüsselung von einem Memo Text (https://www.delphipraxis.net/57324-ganz-einfache-verschluesselung-von-einem-memo-text.html)

St.Pauli 20. Nov 2005 19:02

Re: ganz einfache Verschlüsselung von einem Memo Text
 
Zitat:

Zitat von marabu
das ist nicht nach Caesar. Ich bin sicher, dass ein nicht-wissenschaftlicher Umgang mit diesem Thema hier angebracht ist, aber auch da liebe ich Genauigkeit. Die Substitution von z mit A hat nicht viel mit der Verschlüsselung nach Caesar gemein. Das damalige Standardalphabet umfasste 20 Lettern, Groß oder Kleinschrift und auch white space waren kein Thema und Ziffern waren im Zeichenvorrat bereits eingeschlossen. Jede moderne Adaption des historisch belegten Verfahrens verdient eigentlich den Namen nicht mehr. Die im Zitat geforderte Verschlüsselung ist trivial polyzyklisch (3 Ringe), arbeitet aber mit der Potenz 1, die von Augustus, dem Erben des Gaius Julius verwendet wurde. Prof. Bauer mutmaßte, dass jener nicht bis 3 zählen konnte - 3 war die von Gaius Julius bevorzugte Potenz

Ok, dass sehe ich nach dieser Erklärung ein!!! :mrgreen:

Zitat:

Zitat von marabu
Nur Interesse halber - steht sowas bei Wikipedia

:roll:

Zitat:

Zitat von marabu
Homophonie ist zwar ein anerkanntes Verfahren zur Behinderung der stochastischen Analyse, beisst sich aber regelmäßig mit der rein funktionalen und damit deterministischen Implementierung des Verfahrens.

Welche Probleme wären das - aus reinem Interesse^^

marabu 21. Nov 2005 08:51

Re: ganz einfache Verschlüsselung von einem Memo Text
 
Hallo St.Pauli,

Zitat:

Zitat von St.Pauli
Welche Probleme wären das

ganz einfach: Sobald du Homophone einführst und diese dann auch gleich noch maskierst, brauchst du einen nondeterministischen Operator zur Auswahl deiner Homophone - und hast dadurch keine rein funktionale Abbildung mehr. Nehmen wir den Pseudozufall zu Hilfe, dann könnte das für englische Texte und ohne Maskierungszeichen so aussehen:

Delphi-Quellcode:
function Encode(s: string): string;
var
  i, index: integer;
begin
  Result := '';
  // Schreibweise wird normiert
  s := AnsiLowercase(s);
  Randomize();
  for i := 1 to Length(s) do
  begin
    index := Pos(s[i], 'etaonirsh');
    if index > 0 then
    begin
      Result := Result + Chr(Ord('0') + index) + Chr(Ord('0') + 4 + Random(6));
      Continue;
    end;
    index := Pos(s[i], 'bcdfgjklm');
    if index > 0 then
    begin
      Result := Result + Chr(Ord('0') + index) + Chr(Ord('0') + 2 + Random(2));
      Continue;
    end;
    index := Pos(s[i], 'pquvwxyz');
    if index > 0 then
    begin
      Result := Result + Chr(Ord('0') + index) + '1';
      Continue;
    end;
    // Alle anderen Zeichen werden unterdrückt
    // Zahlen müssen also durch Zahlwörter dargestellt werden
  end;
end;
Übrigens: Die von mir gezeigte Funktion zur einfachen Substitution ist streng genommen schon polyzyklisch, da ich die ASCII Steuerzeichen und das Leerzeichen vom Gesamtalphabet ausnehme und standardmäßig mit der Potenz 0 verschlüssele - also gar nicht (Identität). Nichtsdestotrotz ist es eine funktionale und deterministische Abbildung. Deterministisch, weil für jedes Klartextzeichen das Schlüsselzeichen vorhergesagt werden kann. Zufall spielt keine Rolle.

Zitat:

Zitat von St.Pauli
aus reinem Interesse^^

Die beiden Schlusszeichen - haben die eine bestimmte Bedeutung? Ich kenne mich da nicht so aus.

@Penelopee: Ich fürchte dein thread hat sich in eine für dich ungewollte Richtung entwickelt und ich bin mit Schuld daran - bitte entschuldige, ich höre jetzt auf. Vielleicht war ja auch für dich etwas dabei.

Grüße vom marabu

3_of_8 21. Nov 2005 13:08

Re: ganz einfache Verschlüsselung von einem Memo Text
 
Ich glaube sowas wie :wink: oder auch :mrgreen: .

Cicaro 14. Dez 2005 11:36

Re: ganz einfache Verschlüsselung von einem Memo Text
 
Also ersteinmal - weil es doch mit Leer- und Sonderzeichen gemacht werden soll - würde ich eine Extra-Funktion für die Caesar-Verschlüsselung definieren und mit einer case-Anweisung arbeiten.

Delphi-Quellcode:
function ZeichenCaesarVerschluesselt(Ch:Char):Char;
begin
  case Ch of
    'A'..'Z','a'..'z':; // hier die Verschlüsselung
    ' '{,andere Sonderzeichen}:; // hier die Ersetzung
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:05 Uhr.
Seite 3 von 3     123   

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