暗闇を恐れてはいけない

このパズルは、引用文の外にあるものはフレーバーテキストであるという条約に従います。

だから昨夜、私はコンピュータを走らせていました。あなたが知っている –
コンピュータが古くなると、ルールを少し曲げたい。あなたが話すときなどに眠らないでください。私は昨晩彼らと話し合う気がしなかった。私は彼らが全員を引っ張ったと思う。

とにかく、私はデスクトップ上にこのコンソールウィンドウを開いた状態で今日目を覚ましました。昨夜は何があった?これは危険ですか?助けて!

This is an image to set the scene. It contains no additional information.

 

パズル

I think this is some kind of homebrew program. Just converting
it to ascii does not yield anything useful, but you know
what they say about homebrew algorithms in cryptography
. Can
you tell me what is sent back and forth? And not just the actual
data?

========================================================
 .--.  .--.  .--. .-..-.  .-..-. .--. .-..-. .--. .---.
: .; :: .--': .--': :: :  : `' :: .--': `: :: .--': .; :
:    :`. `. : :   : :: :  : .. :`. `. : .` :: : _ :   .'
: :: : _`, :: :__ : :: :  : :; : _`, :: :. :: :; :: :.`.
:_;:_;`.__.'`.__.':_;:_;  :_;:_;`.__.':_;:_;`.__.':_;:_;
========================================================



Booting................... Done
Node 86 ready
[19:44] Listening for connections...
[23:43] Connection accepted.
SIGTERM

Transcript follows


 O> 0x2ba85ef23e0480b8L
 0x1cf014e6e014e7f054fb10404514400110500504110414014500100114414010410504500400114400104014410104110404404014014110404510L
 0x3514
 0x255461a690450414114110404514400110500504110414014500100114414010410504500400114400104014410104110404404014014110404510010110110400500004100410504010414104500100510414004410100404010104L
[No route to host]
 O> 0x252e40d76645041411411040451440011050050411041401450010011441401041050450040011440010401441010411040440401401411040451001011011040050000410041050401041410450010051041400441010040401010411010440440010040050051401000451000451000011010040441040011041010400441401410050050400011441040410400001401010041040400441050400401000051050451001410000000041040400010040011441011410010051441001001010010441011011000441441410040000411400000450040050040410410000411400401001010001000411450040041040001400050000041010451010401401000401040051401001400050450040L
[No route to host]

I prepared a CSV for you

O,2ba85ef23e0480b8,
I,2feef54ee0823cc4,[Authentication succesful]
I,29a74761bd3c1f067a3342a85a7afebbe4500504110414014500,
I,28494451e73da8f700af10404514400110500504110414014500100114414010410504500400114400104014410104110404404014014110404510010110,
O,1cf014e6e014e7f054fb10404514400110500504110414014500100114414010410504500400114400104014410104110404404014014110404510,
I,2358e611b083e5a97e405142addf3159f43b62fcf61940e5faf8f51840a583602ceb0450040011440010401441010411040440401401411040451001011011040050000410041050401041410450010051041400441010040401010411010440440010040050051401000451000451000011010040441040011041010400441401410050050400011441040410400001401010041040400441050400401000051050451001410000000041040400010040011441011410010051441001001010010441011011000441441410040000411400000450040050040410410000411400401001010001000411450040041040001400050000041010451010401401000401040051401001400050,
I,2ea53a0b1023fc141141104045144001105005041104140145001001144140,
O,3514,
I,3514510504510414114110404514400110500504110414014500100114,[WARN] No data
I,2db95445a8b00a1b73fc6483bdf12c4ff4efeb0411041401450010011441401041050450040011440010401441010411040440401401411040451001011011040050000410041050,[ERR] Unauthorized message
I,3b23aa98ebbd1814114110404514400110500504110414014500100114414010410504500400114400104014410104110404404014014110404510010110110400500004100410504010414104500100510414004410100404010104110104404400100400500514010004510004510000110100404410400110410104,[Remote host closed connection]
O,255461a690450414114110404514400110500504110414014500100114414010410504500400114400104014410104110404404014014110404510010110110400500004100410504010414104500100510414004410100404010104,[No route to host]
O,252e40d76645041411411040451440011050050411041401450010011441401041050450040011440010401441010411040440401401411040451001011011040050000410041050401041410450010051041400441010040401010411010440440010040050051401000451000451000011010040441040011041010400441401410050050400011441040410400001401010041040400441050400401000051050451001410000000041040400010040011441011410010051441001001010010441011011000441441410040000411400000450040050040410410000411400401001010001000411450040041040001400050000041010451010401401000401040051401001400050450040,[No route to host]
I,2db95445a8b00a1b73fc6483bdf12c4ff4efeb0411041401450010011441401041050450040011440010401441010411040440401401411040451001011011040050000410041050,[ERR] Unauthorized message

 

最終ノート

このツールを提供してくれたnetwork-science.deに感謝します。

このパズルを解決する一般的な戦略は手作業で行うことができますが、実際の解読には大規模な16進数を扱うコンピュータが必要です。
Pythonの long には最大長がないことに注意してください。

 

ヒント

ヒント1(2016年12月17日):

これはクラフトされる自作アルゴリズムです。自作アルゴリズムは、通常、通常のケースではうまくいき、エッジケースでは面白い動作をします。

ヒント2(2016年12月20日):

真剣に言うと、どこかにシーケンスがあります。独自のメッセージをエンコードする予定がない場合は、メッセージを生成する方法を知る必要はありません。一度それを理解したら、問題を単純化することができます。

ヒント3(2016年12月22日):

このプログラムの出力には何も理由がありません。デコード後に正しい答えを見つけるのを助けることもあれば、デコードを破るのに役立つものもあります。メッセージをエンコードするには、2つの手順を実行する必要があります。

ヒント4(2017年1月22日):

You have all the information needed to decode one half of the
conversation. While doing that you will obtain enough information
to decode the other half. There are some questions you might want
to ask yourself:

  • How could the program deduct if a message was sent from the
    correct node? What is a computer good at?
  • Why were you able to find the whole sequence in one of the
    messages? What does this tell you about the nature of the scheme
    that is used?
  • The message is still unreadable after the sequence has been
    “removed”. What information could the sender have used to encode
    it, that is also known to the receiver to decode it?

After you have the conversation, the title can serve as a clue
to help you search in the right direction – not just as an obscure
reference to the framing of this puzzle.

ベストアンサー

私の最初の観察:

ある程度の長さの0で埋められた後、0,1,4,5のパターンで塩漬けされた16進メッセージを持っているように見えます。

After the first 12 characters, at least three messages share the
same values until they terminate. In the comments to this answer,
TusanHomichi noted that this pattern corresponds to the binary
indexes of the primes (zero-indexed). So, the full “salt” is:

351451050451041411411040451440011050050411041401450010011441401041050450040011440010401441010411040440401401411040451001011011040050000410041050401041410450010051041400441010040401010411010440440010040050051401000451000451000011010040441040011041010400441401410050050400011441040410400001401010041040400441050400401000051050451001410000000041040400010040011441011410010051441001001010010441011011000441441410040000411400000450040050040410410000411400401001010001000411450040041040001400050000041010451010401401000401040051401001400050450040

この塩を取り除くには、いくつかの方法があります:

  • 減算:(raw + salt = cipher)

  • xor 🙁 raw ^ salt = cipher)

加算/減算法はオーバーフローを処理するための規約を必要とするので、今はxorであると仮定しよう。

塩を除去した後(xorを介して)、次のようになる:

O 1ebc0ff73a5584ac
I 1afaa44be4d338d0
I 1cb31664b96d1b126b7252e81f6ebebaf4000000000000000000
I 1d5d1554e36cace311ee00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
O 29e445e3e445e3e445ba00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
I 164cb714b4d2e1bd6f014102e8cb7158e46b67f8e71d54e4bff8e51954e4c3706dee0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
I 1bb16b0e1472f8000000000000000000000000000000000000000000000000
O 0000
I 0000000000000000000000000000000000000000000000000000000000
I 18ad0540ace10e0f62bd74c3f8e56c4ee4bfee0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
I 0e37fb9defec1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
O 104030a394140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
O 103a11d26214000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
I 18ad0540ace10e0f62bd74c3f8e56c4ee4bfee0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

だから、おそらく、無制限のビットは簡単に解読できますが、私はまだ運がありませんでした。また、おそらく、メッセージの長さにはいくつかの意味がありますが、まだどのように見つけているのでしょうか。

私が運がなければ解読しようとしたメソッドは(完全には使い果たしていませんが):

– ベーコンの暗号   – 8ビットASCII
  – 5ビットASCII(先頭に 010 または 011
を追加)
  – 余分なゼロの有無にかかわらず、ヘックスの素因数  他のベース(base-26 [
a-z ]、base-36 [ 0-9a-z ])、アルファベット暗号

最初のいくつかは長さが必ずしも素敵な倍数ではないので、何らかの形のパディングが必要です。他のものは少し遠いと思われる。

ヒント#3で調べる価値があるいくつかの他の数字がありますが、私の視点からは疑問があります。

– ノード番号から86
  – 起動中のドット数から19まで
  – タイムスタンプからの19、44、23、43
  – SIGTERMの標準値から15

未回答の質問(私はOPからの直接的な回答は期待していませんが、これは私が完全には解決していないものです)私は適用可能であれば、前提条件をリストアップしました。不平。)

1.デコードする前に算術演算を実行する必要がありますか?いいえ、私は仮定しますが、すべてのメッセージにメッセージの長さ(最後にゼロの数を含む)を掛けるなど、いくつか試してみました。

 2.パディングが必要かどうか、そうであればどうしますか?私ははいと仮定し、先行ゼロを追加します。
 3.ベース変換は必要ですか?私は、バイナリと16進数だけを必要とすると仮定していますが、上記のように2つの他のベースも試しました。

 4.それぞれの文字は同じ長さですか? はい:固定長ASCIIを使用しています。
 5.本文中の他の数字の意味は何ですか?彼らは何かを意味すると思いますが、私はそれらを使う方法を考え出していません。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です