AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Entschlüsseln eines überlagerten Strings (Arrays)
Thema durchsuchen
Ansicht
Themen-Optionen

Entschlüsseln eines überlagerten Strings (Arrays)

Ein Thema von Caps · begonnen am 12. Nov 2010 · letzter Beitrag vom 12. Nov 2010
Antwort Antwort
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
299 Beiträge
 
#1

Entschlüsseln eines überlagerten Strings (Arrays)

  Alt 12. Nov 2010, 13:47
Einen schönen Tag,

ein Kumpel hat mir folgende Aufgabe gestellt, und ich habe noch keine Lösung dafür. Es handelt sich um sportliche Kryptographie (), vielleicht hat eine(r) von Euch eine Inspiration für mich...

Er hat sich folgendes ausgedacht:

1. Zunächst bilden wir Buchstaben auf Zahlen ab, z.B. mithilfe der alten ASCII-Tabelle (Buchstaben, Zahlen und ein paar Sonderzeichen reichen aus). Wir erhalten also Zahlen zwischen 0 und 127 pro Zeichen.

2. Dann bauen wir die Nachricht zusammen. ABBA würde also zu einem Array derart werden: (65, 66, 66, 65).

3. Wir erzeugen ein Nullen-Array beliebiger Länge R = (0, 0, 0, 0, 0, 0, 0, 0, 0).
3.1 Wir wählen eine beliebige Position innerhalb des Arrays und addieren den ASCII-Wert der Buchstaben unserer Nachricht auf die Werte der korrespondierenden Stellen in R.

Beispiel:
Wir wählen die Stelle 1 und addieren ABBA auf R:
Code:
(0, 0, 0, 0, 0, 0, 0, 0, 0) +       // Leeres Array
(65,66,66,65) =                     // Stelle 1
(65,66,66,65, 0, 0, 0, 0, 0)        // Zwischenergebnis
3.2 Wir machen das ein paar mal.... (wie oft genau ist beliebig)

Beispiel (wir wählen die Stelle 3 und dann noch die Stelle 6 und addieren jeweils ABBA drauf (auch gern mehrmals auf die selbe Position)):
Code:
(65,66,66, 65, 0, 0, 0, 0, 0) +     // Zwischenergebnis von eben
(0, 0, 65, 66, 66,65) +             // Stelle 3
(0, 0, 0, 0, 0, 65,66,66,65) =      // Stelle 6
(65,66,131,131,66,130,66,66,65)     // Endergebnis

Das Endergebnis (65,66,131,131,66,130,66,66,65) wird dann übermittelt.
Die Aufgabe besteht darin, den Klartext ABBA wiederherzustellen.

Der Klartext braucht nicht natürlichsprachig zu sein, sondern z.B. eine Base64-Kodierung einer Datendatei.

Die Länge des Klartextes sei bekannt (öffentlich, kein Geheimnis). (In diesem Beispiel ('ABBA') ist sie gleich 4)
Dennoch finde ich keine Herangehensweise an die Lösung. Insbesondere Durchprobieren erscheint sehr komplex, wenn die Klartextlänge groß wird (--> 500 Zeichen o.ä.)

Hat jemand ne Idee?
Es gibt auch ein Eis als Belohnung (... für einen zuverlässigen Algorithmus)

Schöne Grüße
Caps
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Entschlüsseln eines überlagerten Strings (Arrays)

  Alt 12. Nov 2010, 14:03
Hallo,

Kann es da überhaupt eine eindeutige Entschlüsselung geben?

A = (2,2,2)
B = (3,3,3)

0 = (0,0,0)

0 + 3*A = (6,6,6)
0 + 2*B = (6,6,6)

Also was ist (6,6,6) jetzt? Ist es entschlüsselt (2,2,2) oder (3,3,3)?

Also ich behaupte einfach mal (ganz ohne mich großartig mit der Sache auszukennen) dass der Algorithmus SO nicht funktioniert.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
299 Beiträge
 
#3

AW: Entschlüsseln eines überlagerten Strings (Arrays)

  Alt 12. Nov 2010, 14:07
Ja, unter Kenntnis des "Passwortes" gibt es eine eindeutige Entschlüsslung. In meinem Beispiel ist das Passwort "101001" (also einmal an Stelle 1, einmal an Stelle 3 und einmal an Stelle 6 das Wort ABBA addieren)

[Edit]Entschuldigung, ich habe das Passwort einfach so unterschlagen...*zwinker*, aber klar, das ist natürlich ein sehr wichtiger Bestandteil.[/Edit]
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."

Geändert von Caps (12. Nov 2010 um 14:08 Uhr) Grund: Entschuldigung
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Entschlüsseln eines überlagerten Strings (Arrays)

  Alt 12. Nov 2010, 14:10
OK, mit Passwort klappts natürlich^^ Algorithmus.. Mal überlegen.. mhhh

Edit: Nein so kanns auch nicht gehen. Man weiß ja nicht was man jeweils abziehen muss. Und wenn mans weiß, dann hat man auch direkt den Klartext, also warum noch addieren?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."

Geändert von Neutral General (12. Nov 2010 um 14:13 Uhr)
  Mit Zitat antworten Zitat
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
299 Beiträge
 
#5

AW: Entschlüsseln eines überlagerten Strings (Arrays)

  Alt 12. Nov 2010, 14:32
Ja, das stimmt leider. Die Kenntnis des Passwortes verringert eigentlich nur die Anzahl der Möglichkeiten, die man mit Brute Force durchprobieren muss. Also hier muss man einen vierstelligen Klartext finden, der an drei Stellen genau einmal vorkommt. Eine gewisse Erleichterung aber keine Lösung, ich sollte nochmal rückfragen .
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:25 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