中東で生まれた古代の暗号化システム、アトバシュ暗号を実装してください。
アトバシュ暗号は、アルファベットのすべての文字を並べ替えて逆順のアルファベットを作る、単純な換字式暗号です。 最初の文字は最後の文字に、2番目の文字は後ろから2番目の文字に置き換えられ、以降も同様です。
ラテン文字のアルファベットに対するアトバシュ暗号は、次のようになります。
Plain: abcdefghijklmnopqrstuvwxyz
Cipher: zyxwvutsrqponmlkjihgfedcba
鍵が1つしかなく、単純な単一換字式暗号であるため、非常に弱い暗号です。 しかし、この暗号が使われていた時代には、それほど問題ではなかったのかもしれません。
暗号文は固定長のグループに分けて書きます。伝統的なグループの長さは5文字で、数字はそのままにし、句読点は除外します。 これは、単語の区切りをもとに推測されるのを難しくするためです。 テキストはすべて小文字としてエンコードされます。
testをエンコードするとgvhgになりますx123 yesをエンコードするとc123b vhになりますgvhgをデコードするとtestになりますgsvjf rxpyi ldmul cqfnk hlevi gsvoz abwltをデコードするとthequickbrownfoxjumpsoverthelazydogになります| レジスタ | 用途 | 型 | 説明 |
|---|---|---|---|
$a0 |
入力 | アドレス | null終端の入力文字列 |
$a1 |
入力/出力 | アドレス | null終端の出力文字列 |
$t0-9 |
一時的 | 任意 | 一時的な保存に使われます |
Exercismに登録すれば、70個の演習、そして本物の人間によるメンタリングとともに、MIPS Assemblyを学んでマスターできます。すべて無料です。