Angenommen, Sie haben Text und möchten, dass er an Ihren Freund gesendet wird, aber Sie möchten nicht, dass er von einem anderen gelesen wird. Das bedeutet wahrscheinlich, dass Sie es verschlüsseln möchten, damit nur Sie und Ihr Freund es lesen können. Es gibt jedoch ein Problem: Sie und Ihr Freund haben vergessen, sich auf eine Verschlüsselungsmethode zu einigen. Wenn Sie ihnen eine Nachricht senden, können sie diese nicht entschlüsseln.
Nachdem Sie eine Weile darüber nachgedacht haben, senden Sie Ihrem Freund einfach den Code, um Ihre Nachricht zusammen mit der Nachricht zu verschlüsseln. Ihr Freund ist sehr klug und kann daher wahrscheinlich anhand der Verschlüsselungsmethode herausfinden, wie die Nachricht entschlüsselt werden kann.
Natürlich möchten Sie ein Verschlüsselungsschema auswählen, das es so schwer wie möglich macht, die Nachricht zu knacken, da möglicherweise andere Personen die Nachricht lesen (Entschlüsselungsschema herausfinden).
Aufgabe der Polizei
In dieser Herausforderung übernimmt Cops die Rolle des Autors: Sie entwerfen ein Verschlüsselungsschema, das Zeichenfolgen in Zeichenfolgen konvertiert. Dieses Verschlüsselungsschema muss jedoch bijektiv sein . Das bedeutet, dass keine zwei Zeichenfolgen einer anderen Zeichenfolge zugeordnet werden müssen und jede Zeichenfolge von einer Eingabe zugeordnet werden kann. Es darf nur eine Eingabe erforderlich sein - die zu codierende Zeichenfolge.
Anschließend veröffentlichen Sie einen Code, der die Verschlüsselung ausführt, sowie eine einzelne Nachricht, die mit dem von Ihrem Code angegebenen Schema verschlüsselt wurde.
Da Sie für das Senden von Nachrichten byteweise zahlen, entspricht Ihre Punktzahl der Länge Ihres Codes plus der Länge des Chiffretexts . Wenn Ihre Antwort geknackt ist, haben Sie eine Punktzahl von unendlich.
Nach einer Woche können Sie den Text anzeigen und Ihre Antwort als sicher markieren . Sichere Antworten sind solche, die nicht geknackt werden können.
Aufgabe der Räuber
Räuber spielen entweder als Freund des Schriftstellers oder als böswilliger Mittelsmann (es gibt keinen materiellen Unterschied, aber Sie können Rollenspiele spielen, als ob es mehr Spaß macht, dies zu tun). Sie nehmen die Verschlüsselungsschemata und den Chiffretext und versuchen, die verschlüsselte Nachricht herauszufinden. Sobald sie die verschlüsselte Nachricht herausgefunden haben, veröffentlichen sie sie in einem Kommentar. (Für diese Frage wird es keinen separaten Räuber-Thread geben.)
Gewinner ist der Räuber mit den meisten Rissen.
Hier ist ein Beispiel, wie eine geknackte Lösung aussehen könnte:
quelle
Antworten:
Jelly , 57 + 32 = 89 Bytes ( geknackt )
Verschlüsselte Nachricht:
Als Hex-Zeichenfolge:
Erläuterung:
Wo
N
wird durch die Zeichenfolge codiert“¡ḟċ⁷Ḣṡ⁵ĊnɠñḂƇLƒg⁺QfȥẒṾ⁹+=?JṚWġ%Aȧ’
, die die Nummer ist105587021056759938494595233483151378724567978408381355454441180598980268016731
.Dies ist auch die RSA-Methode mit
N
oben angegebenem und öffentlichem Schlüssel21
. Dies zu knacken ist gleichbedeutend mit dem Finden der beiden Primfaktoren vonN
.quelle
_ìNb
( Online ausprobieren! ).Jelly , 88 + 64 = 152 Bytes
Verschlüsselungsfunktion:
Verschlüsselte Nachricht:
Als Hex-Zeichenfolge:
Erläuterung:
Wo
N
ist die Zeichenfolge codiert:Welches ist die Nummer
Dies ist auch die RSA-Methode mit
N
oben angegebenem und öffentlichem Schlüssel13
. Dies zu knacken ist gleichbedeutend mit dem Finden der beiden Primfaktoren vonN
, die 512 Bits haben.quelle
JavaScript (ES6), 43 + 33 = 76 Bytes von Leaky Nun geknackt
Verschlüsselungsfunktion, 43 Bytes:
Verschlüsselte Nachricht, 33 Bytes:
Hinweis: Diese Verschlüsselungsmethode ist browserabhängig.
quelle
T! a)o khas eotrto-c; o sa cwsaoy
That was soooo easy to crack! -;)
(Ich habe Firefox verwendet, um es zu knacken)Braingolf, Gebrochen
Probieren Sie es online!
Verschlüsselte Nachricht, 45 Bytes (UTF-8)
Hexcodes der verschlüsselten Nachricht
Entschlüsselte Nachricht
Erläuterung
Decoder
Ein Decoder kann durch Ändern von nur 3 Zeichen erstellt werden. Einfach entfernen
1
und$_
zwischen&,
und einfügen&g
quelle
C'mon, this one's *easy*!
g
ist undokumentiert?JavaScript (ES6), 96 + 9 = 105 Byte
Chiffretext (hexadezimal codiert):
7d111c74b99faff76a
Probieren Sie es online!
Beispielausgaben (mit V8-Engine):
abc123 -> db48ea4f86b9
Hallo -> 1b3420f5ab
quelle
76
.