Supposons que vous ayez du texte et que vous souhaitiez qu'il soit envoyé à votre ami, mais que vous ne voulez pas que quelqu'un d'autre le lise. Cela signifie probablement que vous souhaitez le crypter afin que seuls vous et votre ami puissiez le lire. Mais il y a un problème: vous et votre ami avez oublié de vous mettre d'accord sur une méthode de cryptage, donc si vous leur envoyez un message, ils ne pourront pas le décrypter!
Après y avoir réfléchi pendant un certain temps, vous décidez d'envoyer simplement à votre ami le code pour crypter votre message avec le message. Votre ami est très intelligent, il peut donc probablement trouver comment déchiffrer le message en étudiant la méthode de chiffrement.
Bien sûr, étant donné que d'autres personnes peuvent lire le message, vous souhaitez choisir un schéma de cryptage qui le rend aussi difficile que possible à déchiffrer (comprendre le schéma de décryptage).
Tâche des flics
Dans ce défi, les flics joueront le rôle de l'auteur: vous concevrez un schéma de cryptage qui convertit les chaînes en chaînes. Cependant, ce schéma de chiffrement doit être bijectif , ce qui signifie qu'aucune chaîne ne doit correspondre à une autre chaîne et que chaque chaîne peut être mappée par une entrée. Il ne doit prendre qu'une seule entrée: la chaîne à encoder.
Vous publierez ensuite un code qui effectue le cryptage, et un seul message crypté avec le schéma détaillé par votre code.
Puisque vous payez à l'octet pour envoyer des messages, votre score sera la longueur de votre code plus la longueur du texte chiffré . Si votre réponse est fêlée, vous obtiendrez un score d'infini.
Après une semaine, vous pouvez révéler le texte et marquer votre réponse comme sûre . Les réponses sûres sont celles qui ne peuvent pas être résolues.
Tâche des voleurs
Les voleurs joueront soit en tant qu'ami de l'écrivain, soit en tant qu'intermédiaire malveillant (il n'y a pas de différence matérielle, mais vous pouvez jouer un rôle comme si c'était plus amusant de le faire). Ils prendront les schémas de cryptage et le texte chiffré et tenteront de comprendre le message crypté. Une fois qu'ils auront compris le message crypté, ils le publieront dans un commentaire. (Il n'y aura pas de thread de voleur distinct pour cette question.)
Le gagnant sera le voleur avec le plus de fissures.
Voici un exemple de ce à quoi pourrait ressembler une solution fissurée:
la source
Réponses:
Gelée , 57 + 32 = 89 octets ( fissurée )
Message crypté:
En tant que chaîne hexadécimale:
Explication:
Où
N
est codé par la chaîne“¡ḟċ⁷Ḣṡ⁵ĊnɠñḂƇLƒg⁺QfȥẒṾ⁹+=?JṚWġ%Aȧ’
, qui est le nombre105587021056759938494595233483151378724567978408381355454441180598980268016731
.De plus, il s'agit de la méthode RSA avec les
N
données ci-dessus et la clé publique21
. La fissuration équivaut à trouver les deux facteurs premiers deN
.la source
_ìNb
( Essayez-le en ligne! ).Gelée , 88 + 64 = 152 octets
Fonction de cryptage:
Message crypté:
En tant que chaîne hexadécimale:
Explication:
Où
N
est codé par la chaîne:quel est le nombre
De plus, il s'agit de la méthode RSA avec les
N
données ci-dessus et la clé publique13
. Le cracker équivaut à trouver les deux facteurs premiers deN
, qui ont 512 bits.la source
JavaScript (ES6), 43 + 33 = 76 octets fissurés par Leaky Nun
Fonction de cryptage, 43 octets:
Message crypté, 33 octets:
NB: Cette méthode de cryptage dépend du navigateur.
la source
T! a)o khas eotrto-c; o sa cwsaoy
That was soooo easy to crack! -;)
(J'ai utilisé Firefox pour le casser)Braingolf, fissuré
Essayez-le en ligne!
Message crypté, 45 octets (UTF-8)
Hexcodes du message crypté
Message déchiffré
Explication
Décodeur
Un décodeur peut être créé en changeant seulement 3 caractères. Retirez simplement le
1
, et insérez$_
entre&,
et&g
la source
C'mon, this one's *easy*!
g
est sans papiers?JavaScript (ES6), 96 + 9 = 105 octets
Texte chiffré (codé hexadécimal):
7d111c74b99faff76a
Essayez-le en ligne!
Exemples de sorties (en utilisant le moteur V8):
abc123 -> db48ea4f86b9
Bonjour -> 1b3420f5ab
la source
76
.