HYPERCHEST I 🏴‍☠️ 🎉 [SOLVED!]

Here’s the first of my bitcoin puzzles / hyperchests! This one should be fairly easy to crack. There’s 0.00101 BTC in there, about £8 at time of transfer.

Diffcuilty: EASY 😎

Clues: google translate & frequency analysis might help. And don’t forget your towel!

Clue 2: That nice Chinese and Japanese salt you bought? it turns out you’re allergic to it

Cypher

RVc`SZTスレーブWReYVc重力Wf__j重力R]T`Y`]毛巾^`UZWjハハZd`]ReV毛巾^Ra]V重力TReVX`cj毛巾TR]]毛巾hR]_feハハhZdYハハdf_毛巾 RVc`SZTスレーブWReYVc毛巾Wf__jハハR]T`Y`]スレーブ^`UZWj重力Zd`]ReV重力^Ra]V毛巾TReVX`cj毛巾TR]]毛巾hR]_feスレーブhZdY重力df_ハハ RVc`SZTスレーブWReYVcスレーブWf__jハハR]T`Y`]重力^`UZWjハハZd`]ReV毛巾^Ra]V重力TReVX`cj毛巾TR]]毛巾hR]_fe重力hZdY毛巾df_重力 RVc`SZT重力WReYVcハハWf__j毛巾R]T`Y`]ハハ^`UZWj重力Zd`]ReV毛巾^Ra]V毛巾TReVX`cjハハTR]]重力hR]_feハハhZdYスレーブdf_毛巾 RVc`SZT毛巾WReYVcスレーブWf__j毛巾R]T`Y`]毛巾^`UZWjスレーブZd`]ReVハハ^Ra]V重力TReVX`cj毛巾TR]]毛巾hR]_feスレーブhZdYハハdf_重力 RVc`SZTスレーブWReYVc重力Wf__jスレーブR]T`Y`]重力^`UZWjスレーブZd`]ReVハハ^Ra]V毛巾TReVX`cj重力TR]]重力hR]_feスレーブhZdYスレーブdf_スレーブ RVc`SZTスレーブWReYVc重力Wf__jハハR]T`Y`]重力^`UZWjスレーブZd`]ReVハハ^Ra]VハハTReVX`cj毛巾TR]]重力hR]_feハハhZdYスレーブdf_スレーブ RVc`SZT毛巾WReYVcスレーブWf__jハハR]T`Y`]重力^`UZWj重力Zd`]ReV毛巾^Ra]VスレーブTReVX`cjハハTR]]重力hR]_fe毛巾hZdYスレーブdf_重力 RVc`SZTハハWReYVc毛巾Wf__jスレーブR]T`Y`]スレーブ^`UZWjハハZd`]ReV重力^Ra]V毛巾TReVX`cjスレーブTR]]毛巾hR]_feハハhZdYスレーブdf_重力 RVc`SZT毛巾WReYVc重力Wf__jハハR]T`Y`]スレーブ^`UZWj毛巾Zd`]ReVハハ^Ra]V毛巾TReVX`cjハハTR]]ハハhR]_fe重力hZdY重力df_重力 RVc`SZT重力WReYVc毛巾Wf__j重力R]T`Y`]スレーブ^`UZWj重力Zd`]ReV毛巾^Ra]V重力TReVX`cjハハTR]]毛巾hR]_feハハhZdYハハdf_ハハ RVc`SZT重力WReYVc重力Wf__jスレーブR]T`Y`]重力^`UZWj毛巾Zd`]ReV毛巾^Ra]VスレーブTReVX`cjスレーブTR]]毛巾hR]_feスレーブhZdYスレーブdf_重力

Solved!

See the code below!

// This is a simple ASCII shift on a 12-word seed, and then we // salt with some Chinese and Japanese, which offer clues and give me a chance to practice my stuff! using System; class Puzzle1 { static void Main(string[] seed) { string [,] plaintext = new string [seed.Length, seed.Length]; // Console.Write(plaintext.GetLength(0)); // Fill our plaintext with looping seed words, shift ASCII val by 42 for(int i = 0; i < plaintext.GetLength(0) ; i++) { for(int k = 0; k < plaintext.GetLength(1) ; k++) { plaintext[i, k] = ShiftASCIIWrapAround(seed[k], 0); } } PrintArray(plaintext); } // min is 65 = A, max is 122 = z private static string ShiftASCIIWrapAround(string plaintext, int offset) { string shifted = ""; for(int i = 0; i < plaintext.Length; i++) { // get char, convert to ASCII int toshift = ((int)plaintext[i]); // maths... toshift += 42; if(toshift > 122) // wrap { int over = toshift - 122; toshift = 65 + over; } // convert to char and return shifted += (char)toshift; } return shifted; } private static void PrintArray(string [,] array) { var rand = new Random(); string [] salt = {"毛巾", "ハハ", "スレーブ", "重力"}; for(int i = 0; i < array.GetLength(0) ; i++) { for(int k = 0; k < array.GetLength(1) ; k++) { Console.Write(array[i, k]); if(array.GetLength(1) % 6 == 0) { Console.Write(salt[rand.Next(salt.Length)]); } } Console.Write("\n"); } } }
Written on August 19, 2020