はじめに

Eden APIはすべあな模倣の暗号を解読する際に使えるREST APIです。

名称について

崩壊3rdに登場する黄金の銘を持つ英傑・エデンからとっています。

あとEncode/Decodeそれぞれの最初の2文字が混ざってるから

すべあな模倣とは?

全てあなたの所為です。の二次創作作品・名義のことを指します。

年表はこちらから。

作る必要、どこ

この世界にはDencodeなる便利なサイトがあるのに何故作る必要があったのでしょうか?

答えは簡単、暗号解読のCTFができたときのジャッジシステムとして使うからです。

なるべくDencodeとの互換性を考慮して作ってます。(ちょっとだけ違う)

APIの叩き方

このAPIはJSONをPOSTして結果が返ってくるタイプのAPIです。

JSONの構造

POSTするJSONはこのような形になっています。

[
    {
        "cipher": "(暗号の種類)",
        "text": "(平文)",
        "mode": true, // エンコードはtrue, デコードはfalse
        // 以下暗号の種類によって変化
    },
    // 暗号を組み合わせることができる
    {
        "cipher": "(暗号の種類2)",
        "mode": true, // 2つ目以降は平文は書かない
        // 以下暗号の種類によって変化
    },
    ...
]

暗号別のキー

テキスト ↔ n進数: textnum

radix

基数

符号なし整数

encoding

エンコーディングのラベル

文字列

ラベルについてはこのページを参照

追加でUTF-32BEにiso-10646-ucs-4be, ucs-4be, utf-32be、UTF-32LEにiso-10646-ucs-4, ucs-4, iso-10646-ucs-4le, ucs-4le, utf-32, utf-32leラベルを付与

モールス信号: morse

preset

文字のラベル

文字列

文字ラベル
仮名jp, ja
ラテン文字latin, international

基数変換: base

modeをつける必要なし

base

あまりにも多すぎるので隔離

bradix

変換前の基数

符号なし整数

aradix

変換後の基数

符号なし整数

brule / bpreset

変換前の数列

0となる文字から書いていく(brule)

プリセットからも選べる(bpreset)

bruleが優先

文字列

arule / apreset

変換後の数列

仕様はbrule / bpresetと同じ

文字列

zero

ゼロ埋め

真偽値

数列プリセット

bpreset, apresetのプリセットにつくラベルを以下に示す

デフォルト値は36-lower

ラベル数列
36-lower0123456789abcdefghijklmnopqrstuvwxyz
36-upper0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
base32ABCDEFGHIJKLMNOPQRSTUVWXYZ234567
base64ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-
z850123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#
adobe-ascii85!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu
latin-lowerabcdefghijklmnopqrstuvwxyz
latin-upperABCDEFGHIJKLMNOPQRSTUVWXYZ
ml26-loweretianmsurwdkgohvflpjbxcyzq
ml26-upperETIANMSURWDKGOHVFLPJBXCYZQ

Base32 / Base64: base32 / base64

encoding

エンコーディングのラベル

文字列

ラベルについてはこのページを参照

追加でUTF-32BEにiso-10646-ucs-4be, ucs-4be, utf-32be、UTF-32LEにiso-10646-ucs-4, ucs-4, iso-10646-ucs-4le, ucs-4le, utf-32, utf-32leラベルを付与

padding

パディング(最後の=の連続)

真偽値

Base45: base45

encoding

エンコーディングのラベル

文字列

ラベルについてはこのページを参照

追加でUTF-32BEにiso-10646-ucs-4be, ucs-4be, utf-32be、UTF-32LEにiso-10646-ucs-4, ucs-4, iso-10646-ucs-4le, ucs-4le, utf-32, utf-32leラベルを付与

Ascii85: ascii85

encoding

エンコーディングのラベル

文字列

ラベルについてはこのページを参照

追加でUTF-32BEにiso-10646-ucs-4be, ucs-4be, utf-32be、UTF-32LEにiso-10646-ucs-4, ucs-4, iso-10646-ucs-4le, ucs-4le, utf-32, utf-32leラベルを付与

enctype

Ascii85のタイプ

z85, adobe, btoaの三種類

デフォルト値はadobe

詳細についてはこのページを参照

シーザー暗号: caesar

仕様についてはこのページを参照

n

ずらす回数

符号付き整数

ROT13 / ROT18 / ROT47: rot13 / rot18 / rot47

特殊なキーなし

仕様s

アトバシュ暗号: atbash

特殊なキーなし

modeをつける必要なし

仕様についてはこのページを参照

アフィン暗号: affine

仕様と文字a, bについてはこのページを参照

affine

キー名が単純すぎるかつ他のところでは使わないため隔離

a, b

符号付き整数

レールフェンス暗号: railfence

n

レールの本数

符号なし整数

スキュタレー暗号

n

1行に書き込める文字数

符号なし整数

仕様技術とライセンス

ライセンス

MIT BRONSEELE-WARE Licenseを採用しています

The MIT BRONSEELE-WARE License

Copyright 2024 Piano Nakanoin

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, sending auther or copyright holders a Bronseele or Seelebron or Seeleseele or Seelebronseele picture in return, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

言語とフレームワーク

REST API

Rust製

Cloudflare Workersのクレートを使用

Documentation

mdBookを使用