はじめに
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進数
- モールス信号
- 基数変換
- Base32 / Base64
- Base45
- Ascii85
- シーザー暗号
- ROT13 / ROT18 / ROT47
- アトバシュ暗号
- アフィン暗号
- レールフェンス暗号
- スキュタレー暗号
テキスト ↔ 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-lower | 0123456789abcdefghijklmnopqrstuvwxyz |
36-upper | 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ |
base32 | ABCDEFGHIJKLMNOPQRSTUVWXYZ234567 |
base64 | ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+- |
z85 | 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$# |
adobe-ascii85 | !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu |
latin-lower | abcdefghijklmnopqrstuvwxyz |
latin-upper | ABCDEFGHIJKLMNOPQRSTUVWXYZ |
ml26-lower | etianmsurwdkgohvflpjbxcyzq |
ml26-upper | ETIANMSURWDKGOHVFLPJBXCYZQ |
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製
Documentation
mdBookを使用