ニヒリスト暗号
HELLOをキーワードZEBRASと鍵1234で暗号化すると43 46 46 68 54になります。キーワードで5×5の文字表を作り、各文字の番号に繰り返す鍵の数を足し、復号では引き戻します。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- HELLO
- キーワード
- ZEBRAS
- 鍵
- 1234
- 計算モード
- Encrypt
- 結果
- 43 46 46 68 54
- 鍵番号
- 12, 34
- 長さ
- 14
- 写像した文字数
- 5
Nihilist暗号は、ロシアの革命家が歴史的に用いた古典的な加算型暗号です。まずキーワードで5×5のPolybius方陣を埋め、各ラテン文字を行・列の2桁コードに写し、次に反復する数値鍵をそれらのコードに加算して整数和の列を作ります。復号では同じ鍵を引き、有効なコードを同じ方陣上の文字に戻します。平文または空白区切りの暗号文、方陣のキーワード、数値鍵(1234のような桁対、または12 34のような明示的な数)を渡し、encryptまたはdecryptを選び、polybiusコード・鍵番号・アルファベットメタデータを含む決定的な結果を受け取ります。
Nihilist暗号がPolybiusコードと数値鍵を組み合わせる仕組み
Polybius方陣のキーワードから始めます。キーワードの一意なラテン文字を先に5×5格子へ書き、JをIに写して26文字を25マスに収め、残りのアルファベットを順に埋めます。各マスは1から5の行と列を持ち、キーワードごとの位置に応じて各文字は11から55のような2桁コードに写ります。
暗号化は平文を一度走査し、非文字を飛ばし、各文字のコードを記録し、反復数値鍵の次の値を加算します。桁数が偶数の連続鍵は2桁の数として対になります—1234は12の次に34—一方、空白またはカンマ区切りのトークンは明示的な整数として解析されます。暗号文はそれらの和を空白区切り文字列として書いたもので、文字列ではありません。
加算はしばしば2桁・3桁の合計を生むためです。復号は逆です。 各整数トークンを解析し、循環鍵を引き、差が同じ鍵付き方陣上の有効コードであることを要求します。経路にネットワーク、Date、乱数はありません。
本ページは古典的加算Nihilistのみを実装し、Bifid分画、ADFGVX、未知鍵の自動復元は扱いません。
Nihilist暗号ツールが実務で現れる場面
入門暗号と暗号史の授業では、本格的な多アルファベット系の前に、座標置換表とモジュラー風加算の組み合わせを練習させるNihilist課題を出します。教科書どおりの方陣+鍵規則で暗号化・復号する信頼できるオラクルは、宿題デモと自動採点を速めます。
CTFの準備やパズル狩りでは、方陣keywordと数値鍵の両方が分かったときだけ逆転する空白区切り整数列が今も隠れ、解く側は汎用暗号解析スイートより速く予測可能な道具を求めます。サポートとコンテンツチームは、ネタバレや内部ラベルを軽くNihilist和として符号化し、言語固有の暗号ライブラリを入れずに逆経路を欲します。
加算なしの単なるPolybius方陣、Bifid分画、Caesar文字シフト、AutokeyやBeaufortのキーワード暗号、未知鍵の頻度分析による自動復元が必要な場合は、本古典Nihilist暗号ページを過負荷にせず、別の検索意図とランディングとして扱ってください。
活用例
授業向け加算暗号デモ
方陣keywordと数値鍵で例題語を暗号化・復号し、入門暗号の授業が一つの正解Nihilist写像を共有できるようにします。
パズルとCTFの整数列課題
挑戦文字列上の空白区切りNihilist和を符号化または逆転し、問題セットごとに使い捨てスクリプトを書かずに済みます。
よくある質問
Nihilist暗号とは何ですか?
鍵付き5×5 Polybius方陣で文字を写し、各2桁コードに反復数値鍵を加算する古典暗号です。暗号文は空白区切りの整数和です。
keywordとkeyの違いは何ですか?
keywordはPolybius方陣(文字順)を作ります。keyは数値加算ストリーム—1234のような桁対、または12 34のような空白区切り整数—で、暗号化で加算、復号で減算されます。
空のkeyが失敗する理由は?
方陣のkeywordと数値keyの両方は空であってはなりません。
和の列をどう復号しますか?
modeをdecryptにし、空白区切り整数を貼り付け、同じkeywordと数値keyを再利用します。各和から循環鍵を引いた結果は有効な方陣コードでなければなりません。
暗号文が文字ではなく数字なのはなぜですか?
各文字はまず行と列を表す2桁の番号になり、そこに鍵の数が足されるためです。合計は2桁や3桁になることが多いので、結果は空白で区切った数字の列になります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/nihilist \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"HELLO","keyword":"ZEBRAS","key":"1234"}'const res = await fetch("https://api.kit.forhosting.com/enc/nihilist", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "HELLO",
"keyword": "ZEBRAS",
"key": "1234"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/nihilist",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "HELLO",
"keyword": "ZEBRAS",
"key": "1234"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/nihilist", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"HELLO","keyword":"ZEBRAS","key":"1234"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"HELLO","keyword":"ZEBRAS","key":"1234"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/nihilist", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "HELLO",
"keyword": "ZEBRAS",
"key": "1234"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.nihilist",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
空のキーワードと空の数値鍵は即座にinvalid_inputで失敗し、空の秘密を黙った無操作と混同しません。無料のブラウザツールと有料APIは同一の純粋な同型関数を共有するため、授業デモ、CTFの準備、自動化パイプラインは同じ入力で常に同じ和に一致します。
Nihilist暗号がPolybiusコードと数値鍵を組み合わせる仕組み
そうでなければ文字を捏造せずinvalid_inputで失敗します。現代的なパディング、真正性タグ、乱数nonceはありません—同一のtext・keyword・key・modeは常に同一のJSONを返します。
送信内容と返却内容
検証失敗は前払い残高を消費しません。古典的確認として、keyword ZEBRASとkey 1234でHELLOを暗号化すると43 46 46 68 54になり、その列を復号するとHELLOに戻り、空のkeyはゼロ扱いではなく拒否されます。必須の文字列フィールドtext、Polybius方陣用の必須keyword、数値加算ストリーム用の必須key、およびencryptまたはdecryptの任意modeを送ります。modeを省略するとencryptが既定となり、最小ペイロードでも有用です。成功時、応答はmode、text、keyword、keyをエコーし、解析済み加算列としてkey_numbers、変換後文字列としてresult、その長さとしてlength、符号化または復号したマス数としてletters_mapped、中間演算のpolybius_codesとsums、さらにクライアントがプロファイルを主張するためのsquare、ij_combined、alphabet、cipherラベルを返します。text・keyword・keyの欠落、空のkeywordまたは空の数値key、文字のないkeyword、数字でないkey、奇数桁の連続key、未対応のmode、文書化された最大を超える文字列、数字のないdecryptペイロード、有効な方陣コードに戻らない和はすべてinvalid_inputと明確な英語メッセージで失敗します。成功したAPI呼び出しの料金は公開ベース$0.002/件です。
Nihilist暗号ツールが実務で現れる場面
この機能は純粋なparseエンジンのため、API料金は成功件あたり公開ベース$0.002で、検証失敗は残高を消費しません。
連携の活用例
ラベルとネタバレの軽量符号化
クイズ解答や内部ラベルを鍵付きPolybius+和の列にし、同じ契約でブラウザまたはAPIから後で復号します。
技術的な質問
料金はいくらですか?
ブラウザツールは無料でローカル実行です。APIは前払いKIT残高を成功件あたり$0.002で使用し、無効入力は課金されません。