Katakanlah Anda memiliki beberapa teks, dan Anda ingin mengirimkannya ke teman Anda, tetapi Anda tidak ingin orang lain membacanya. Itu mungkin berarti Anda ingin mengenkripsi itu sehingga hanya Anda dan teman Anda yang dapat membacanya. Tetapi, ada masalah: Anda dan teman Anda lupa untuk menyetujui metode enkripsi, jadi jika Anda mengirimi mereka pesan, mereka tidak akan dapat mendekripsi!
Setelah memikirkan hal ini sebentar, Anda memutuskan untuk hanya mengirim kode kepada teman Anda untuk mengenkripsi pesan Anda bersama dengan pesan tersebut. Teman Anda sangat cerdas, sehingga mereka mungkin bisa mengetahui cara mendekripsi pesan dengan mempelajari metode enkripsi.
Tentu saja, karena orang lain mungkin membaca pesan, Anda ingin memilih skema enkripsi yang membuatnya sesulit mungkin untuk memecahkan (cari tahu skema dekripsi).
Tugas Polisi
Dalam tantangan ini, Polisi akan memainkan peran sebagai penulis: Anda akan merancang skema enkripsi yang mengubah string menjadi string. Namun, skema enkripsi ini harus bijective , artinya tidak ada dua string yang harus dipetakan ke string lain, dan setiap string dapat dipetakan oleh input. Itu harus mengambil hanya satu input - string yang akan dikodekan.
Anda kemudian akan memposting beberapa kode yang melakukan enkripsi, dan satu pesan terenkripsi dengan skema yang dirinci oleh kode Anda.
Karena Anda membayar berdasarkan byte untuk mengirim pesan, skor Anda akan menjadi panjang kode Anda ditambah panjang ciphertext . Jika jawaban Anda retak, Anda akan memiliki skor tak terbatas.
Setelah satu minggu, Anda dapat mengungkapkan teks dan menandai jawaban Anda sebagai Aman . Jawaban aman adalah jawaban yang tidak dapat dipecahkan.
Tugas Perampok
Perampok akan bermain sebagai teman penulis atau perantara yang jahat (tidak ada perbedaan materi, tetapi Anda dapat bermain peran jika itu membuatnya lebih menyenangkan untuk melakukannya). Mereka akan mengambil skema enkripsi dan ciphertext dan berusaha mencari tahu pesan terenkripsi. Begitu mereka mengetahui pesan terenkripsi, mereka akan mempostingnya dalam komentar. (Tidak akan ada utas perampok yang terpisah untuk pertanyaan ini.)
Pemenang akan menjadi perampok dengan retakan terbanyak.
Berikut adalah contoh dari apa yang tampak seperti solusi retak:
sumber
Jawaban:
Jelly , 57 + 32 = 89 byte ( retak )
Pesan terenkripsi:
Sebagai hex-string:
Penjelasan:
Di mana
N
dikodekan oleh string“¡ḟċ⁷Ḣṡ⁵ĊnɠñḂƇLƒg⁺QfȥẒṾ⁹+=?JṚWġ%Aȧ’
, yang merupakan angka105587021056759938494595233483151378724567978408381355454441180598980268016731
.Juga, ini adalah metode RSA dengan
N
diberikan di atas dan kunci publik21
. Retak ini setara dengan menemukan dua faktor utamaN
.sumber
_ìNb
( Coba online! ).Jelly , 88 + 64 = 152 byte
Fungsi enkripsi:
Pesan terenkripsi:
Sebagai hex-string:
Penjelasan:
Di mana
N
disandikan oleh string:yang mana jumlahnya
Juga, ini adalah metode RSA dengan
N
diberikan di atas dan kunci publik13
. Retak ini setara dengan menemukan dua faktor utamaN
, yang memiliki 512 bit.sumber
JavaScript (ES6), 43 + 33 = 76 byte Retak oleh Leaky Nun
Fungsi enkripsi, 43 byte:
Pesan terenkripsi, 33 byte:
NB: Metode enkripsi ini tergantung pada browser.
sumber
T! a)o khas eotrto-c; o sa cwsaoy
That was soooo easy to crack! -;)
(Saya menggunakan firefox untuk memecahkannya)Braingolf, Retak
Cobalah online!
Pesan terenkripsi, 45 byte (UTF-8)
Hexcode dari pesan terenkripsi
Pesan yang didekripsi
Penjelasan
Dekoder
Dekoder dapat dibuat dengan mengubah hanya 3 karakter. Cukup hapus
1
, dan masukkan$_
inbetween&,
dan&g
sumber
C'mon, this one's *easy*!
g
itu tidak berdokumen?JavaScript (ES6), 96 + 9 = 105 byte
Ciphertext (hex-encoded):
7d111c74b99faff76a
Cobalah online!
Output sampel (menggunakan mesin V8):
abc123 -> db48ea4f86b9
Halo -> 1b3420f5ab
sumber
76
.