クリプト

【回答編】ALIS Puzzle Timeへの挑戦

がくし's icon'
  • がくし
  • 2018/07/15 07:36

出題記事





【パズル概要】

今回のパズルは、

下記文字列郡を組み合わせて、

提示されたのハッシュ値を求める問題でした。


文字列郡

・じゃがいも
・ぎゅうにく
・にんじん
・たまねぎ
・しょうゆ
・みりん
・さとう


求めるハッシュ値

E4CBC1F45125B84689192B8275765870DA869A0B291EECB2614E00045E910445

【ポイント】

ハッシュ関数は、特定の文字列から、

固有のハッシュ値を決定します。

今回の問題は、その特性を応用させ、

以下の性質を使った問題となっています。


1,食材を組み合わせる順番によって、固有のハッシュ値ができる。

例として、

・じゃがいもにんじん

・にんじんじゃがいも

の、ハッシュ値の違いを見てみましょう。

元文字列:じゃがいもにんじん
2BDF60B727CBC98D52E249802AC1ECC2DBAFDAB086E8FD5D6DA6E7993BBED83C
元文字列:にんじんじゃがいも
ABE5D5F0F79A8FAF1423D5136E36B92AA75A48BF22E7BAFBC6D63377160D234A



2,ハッシュ値を文字列とみなし、更にハッシュ関数に渡すことができる。

例として、

・じゃがいも

・「じゃがいも」のハッシュ値

の、ハッシュ値の違いを見てみましょう。

元文字列:じゃがいも
722CF2D6C6AE2F34BDBA5CB52489DDCF3CA82A7D4E6C5C562470ECC54BF9423A
元文字列:上述のハッシュ値
EE180EF5B60E1D6CDF407462FD7B1FE27F98FDF2538019A86E3BE52C6688A00D





【解答】

5段階に分けられます。

step1 各食材のハッシュ化
step2 食材の順列の決定
step3 食材のグループ分け
step4 グループ毎のハッシュ化
step5 グループをまとめてハッシュ化

後述のプログラムでは、

このステップに沿って全組み合わせを、

総当たりで調べました。

ここでは各段階での、

結果のみを提示します。



step1 各食材のハッシュ化

元文字列:じゃがいも
722CF2D6C6AE2F34BDBA5CB52489DDCF3CA82A7D4E6C5C562470ECC54BF9423A

元文字列:ぎゅうにく
00AE539054765F6E4E27E9180B1AA37906B26F6D82570691D747D7B818B64B59

元文字列:にんじん
1DF7AAD047D26CC616847A814E61204BB04927E0948C7DA0A8A9BB41DB65F5BF

元文字列:たまねぎ
C01884D87117A091EEE095202C58584936E21E45F66C9483CE43B9C997F59417

元文字列:しょうゆ
4D10A623DC9C87296EAF5535C6F72ED790364743686C0E6E5AE9F91B36F17F3D

元文字列:みりん
CFD27AA9E4EC3301FE2DECAF7FB02AD37CA438436FC0BA2F26E011AB262B5B11

元文字列:さとう
1694CDCFB1452288CF0A2DE8C9281263BACAA6EFB028CE0F2C2B24809E7FE947


step2 食材の順列の決定

1,ぎゅうにく
2,じゃがいも
3,にんじん
4,たまねぎ
5,さとう
6.しょうゆ
7,みりん


step3 食材のグループ分け

具材グループ

1,ぎゅうにく
2,じゃがいも
3,にんじん
4,たまねぎ

調味料グループ

1,さとう
2.しょうゆ
3,みりん


step4 グループ毎のハッシュ化

各グループ内で

step2で求めた順番通りに

step1で求めたハッシュ値を繋げ

それをハッシュ化します。


具材グループ

元文字列
00AE539054765F6E4E27E9180B1AA37906B26F6D82570691D747D7B818B64B59722CF2D6C6AE2F34BDBA5CB52489DDCF3CA82A7D4E6C5C562470ECC54BF9423A1DF7AAD047D26CC616847A814E61204BB04927E0948C7DA0A8A9BB41DB65F5BFC01884D87117A091EEE095202C58584936E21E45F66C9483CE43B9C997F59417
ハッシュ値
4517DB9A782BAC61AA71E06E9604E75EDBE87BE34B63A4B58648368CEB177639


調味料グループ

元文字列
1694CDCFB1452288CF0A2DE8C9281263BACAA6EFB028CE0F2C2B24809E7FE9474D10A623DC9C87296EAF5535C6F72ED790364743686C0E6E5AE9F91B36F17F3DCFD27AA9E4EC3301FE2DECAF7FB02AD37CA438436FC0BA2F26E011AB262B5B11
ハッシュ値
EDB65E6DE06797FA9E12B873BB321213880A41BB0901C37FA27FA651593575DE


step5 グループをまとめてハッシュ化

step2で求めた順番通り(具材→調味料)に、

step4で求めたハッシュ値を繋げ、

それをハッシュ化します。



元文字列
4517DB9A782BAC61AA71E06E9604E75EDBE87BE34B63A4B58648368CEB177639EDB65E6DE06797FA9E12B873BB321213880A41BB0901C37FA27FA651593575DE
ハッシュ値
E4CBC1F45125B84689192B8275765870DA869A0B291EECB2614E00045E910445

このハッシュ値が、

冒頭で提示した物と一致することが分かります。

求めるハッシュ値
E4CBC1F45125B84689192B8275765870DA869A0B291EECB2614E00045E910445

【プログラム】

全文の画像だけ貼っておきます。

ソースはこちらで公開しています。

もし、この記事が人気になるようなら、

このプログラムの解説記事も

書こうかと考えています。

Content image

【宣伝】

ALIS非公式discordである、

ALIS Supportersのハッカー部にて活動しています。

この記事についての質問、感想があれば、

気軽にコメント頂けると嬉しいです。

公開日:2018/07/15
獲得ALIS:34.86
がくし's icon'
  • がくし
  • @gaxiiiiiiiiiiii
養蜂家。暇な時にプログラミングをして遊んでる。

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
クリプト

Bitcoin史 〜0.00076ドルから6万ドルへの歩み〜

Like token Tip token
947.13 ALIS
Eye catch
クリプト

Eth2.0のステークによるDeFiへの影響を考える。

Like token Tip token
43.10 ALIS
Eye catch
クリプト

Uniswap v3を完全に理解した

Like token Tip token
18.92 ALIS
Eye catch
クリプト

2021年1月以降バイナンスに上場した銘柄を140文字以内でざっくりレビュー(Twitter向け情報まとめ)

Like token Tip token
38.10 ALIS
Eye catch
クリプト

Uniswap(ユニスワップ)で$ALISのイールドファーミング(流動性提供)してみた

Like token Tip token
59.99 ALIS
Eye catch
クリプト

【DeFi】複利でトークンを運用してくれるサイト

Like token Tip token
54.01 ALIS
Eye catch
クリプト

NFT解体新書・デジタルデータをNFTで販売するときのすべて【実証実験・共有レポート】

Like token Tip token
120.79 ALIS
Eye catch
クリプト

クリプトスペルズで入手したMCHCを引き出す方法

Like token Tip token
196.20 ALIS
Eye catch
クリプト

ジョークコインとして出発したDogecoin(ドージコイン)の誕生から現在まで。注目される非証券性🐶

Like token Tip token
38.31 ALIS
Eye catch
クリプト

【第8回】あの仮想通貨はいま「テレグラム-TON/Gram」

Like token Tip token
69.90 ALIS
Eye catch
クリプト

約2年間ブロックチェ-ンゲームをして

Like token Tip token
61.20 ALIS
Eye catch
クリプト

CoinList(コインリスト)の登録方法

Like token Tip token
15.55 ALIS