キリル・シーザー暗号
シフトを3にすると「Привет, мир!」は「Тулезх, плу!」になります。Ёを含む33文字のロシア文字がそれぞれ3つ先へ進み、Яの次はАに戻ります。ラテン文字や数字、句読点は変わらず、ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- Привет, мир!
- シフト量
- 3
- 計算モード
- Encrypt
- 結果
- Тулезх, плу!
- シフト量 mod 33
- 3
- 長さ
- 12
- シフトした文字数
- 9
キリル文字のシーザー暗号は、ラテン文字 A から Z ではなく、三十三文字のロシア語アルファベットに古典的なモジュラ文字シフトを適用します。А から Я までの大文字は、Е の直後に独立位置を持つ Ё を含め、指定した整数オフセット分だけ進み、円の端で折り返します。小文字も同じ表に従い、大文字小文字は保持されます。復号は同じ鍵で逆方向へずらすか、負のオフセットで再暗号化すれば同じ結果になります。ラテン文字・数字・空白・句読点・絵文字・他の文字体系はそのまま残り、混在テキストの課題やチャット断片が読みやすくなるよう件数も報告されます。テキスト、整数の shift、任意の encrypt / decrypt モードを送ってください。
キリル・シーザーシフトがロシア語テキストを暗号化・復号する仕組み
キリル・シーザー暗号は、三十三個のロシア語文字を А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я の順の円として扱い、対応する小文字も同じ並びです。
暗号化では、各ロシア語文字をその円上で N 個先の文字に置き換え、Я の次は А に戻り、Ё は Е の装飾ではなくアルファベットの正式メンバーとして扱います。復号では同じ鍵を逆に適用し、各文字を N 個戻します。これは暗号文を負の N で暗号化することと等価です。
大文字小文字は保たれ、大文字の ПРИВЕТ をシフト三で処理すると別の大文字列になり、小文字は小文字のままです。ロシア語表の外の文字(ラテン A–Z、数字、空白、読点、ロシア集合にないウクライナ専用文字、絵文字など)は変更せずコピーされ、非キリル統計に積まれるため、変換が何を無視したか分かります。数学的には法三十三のモジュラ演算です。
符号付き整数鍵を 0 から 32 の範囲に正規化し、各ロシア語文字を 0 から 32 の索引に写し、鍵を足して剰余を取り、同じ大小の文字に戻します。シフト三十三は恒等、三十六は三と等価、マイナス三は前方向三十と等価です。鍵自体に浮動小数点の丸めがなく、各段が整数演算なので変換は完全に決定的です。
経路上にネットワーク呼び出し、乱数シード、壁時計はありません。本ページは古典的な単一アルファベットのロシア語シーザーであり、ラテン・シーザー、Vigenère、AES、頻度分析による自動鍵復元ではありません。それらは別ツール・別検索意図です。
キリル・シーザーが実務で使われる場面
入門暗号とスラヴ語の授業では、ブロック暗号の前に非ラテン文字でモジュラ演算を練習するシーザー課題が出ます。明示的な整数鍵で暗号化・復号する信頼できるオラクルは、Ё を正しく扱う宿題デモや自動採点を加速します。
CTF のウォームアップや謎解きは、今でもロシア語の ROT 風メッセージを平文の中に隠し、解く側は汎用暗号解析やキリル符号点を壊すラテン専用ツールより、速く予測可能なシフターを望みます。サポートやコンテンツチームは、ネタバレ・クイズ解答・社内ロシア語ラベルを軽い回転でぼかし、言語別暗号ライブラリなしで逆変換したいことがあります。
強力な認証付き暗号、複数文字の Vigenère、ラテン・シーザーのみ、Base64、頻度分析による自動鍵復元が必要なら、古典的キリル・シーザーの本ページを肥大化させず、別の検索意図とランディングとして扱ってください。
活用例
ロシア語テキストでのモジュラ演算の授業デモ
既知の整数シフトでロシア語の例文を暗号化・復号し、代数と入門暗号が Ё を正式な文字として扱う同一の基準変換を共有できるようにします。
パズルと CTF 用のキリル・シフト
課題セットごとに使い捨てスクリプトを書かず、チャレンジ文字列に固定のロシア語文字回転を適用または反転します。
よくある質問
キリル文字のシーザー暗号とは何ですか?
三十三文字のアルファベット円(法 33)上で各ロシア語文字を固定の整数距離だけ回す古典的置換暗号で、Ё も含みます。非ロシア語文字は変更せず報告されます。
テキストを復号するには?
暗号化時と同じ整数 shift で mode を decrypt にするか、符号を反転した shift で暗号化してください。どちらも回転を逆にします。
shift が整数でない場合は?
シーザー鍵は整数である必要があり、3.5 のような分数シフトは拒否され課金されません。
Ёは独立した1文字として数えられますか?
はい。ЁはЕのすぐ後に独自の位置を持ち、Еの異体ではなく正式な1文字として扱われます。そのため円は33文字になり、33ずらすと元に戻ります。
ラテン文字やほかの文字はどうなりますか?
ラテン文字、数字、空白、句読点、絵文字、ロシア語にないウクライナ語の文字はそのまま残ります。変換されなかった文字は別に数えて一覧にするので、何が対象外だったかが分かります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/caesar-cyrillic \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Привет, мир!","shift":3}'const res = await fetch("https://api.kit.forhosting.com/enc/caesar-cyrillic", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Привет, мир!",
"shift": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/caesar-cyrillic",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Привет, мир!",
"shift": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/caesar-cyrillic", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Привет, мир!","shift":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Привет, мир!","shift":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/caesar-cyrillic", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "Привет, мир!",
"shift": 3
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.caesar_cyrillic",
"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 のウォームアップ・スクリプトは同じ入力に対して常に同じ結果文字列で一致し、成功した API 1 件あたり $0.002 です。
キリル・シーザーシフトがロシア語テキストを暗号化・復号する仕組み
同一の text・shift・mode は常に同一の JSON を返します。
送信する内容と返ってくる内容
encrypt はロシア語文字を shift 分だけ前へ、decrypt は同じ絶対距離だけ後ろへ回します。検証失敗は前払い残高を消費しません。必須の文字列フィールド text、必須の整数フィールド shift、任意の mode(encrypt または decrypt)を送ってください。mode を省略すると既定は encrypt で、最小ペイロードでも有用です。成功時の応答は mode、元の text、指定した整数 shift、mode と法三十三後の実質前方向回転 shift_mod_33、変換後の result、その length、回したロシア語文字数 letters_shifted、ロシア語文字でないため触られなかった文字数 non_cyrillic_count、初出順の一意な非キリル文字 non_cyrillic_chars、およびクライアントがプロファイルを確認するための alphabet と cipher ラベルをエコーします。text や shift の欠落、text が文字列でない場合、未対応の mode、文書化された最大長を超える文字列、3.5 のような非整数 shift や小数点付き数値文字列は invalid_input と明確な英語メッセージで失敗します。定番の確認は、短いロシア語の挨拶をシフト三で暗号化し、その暗号文を元に戻し、読点やラテン断片が non_cyrillic_chars に現れ、分数シフトが丸められず拒否されることです。成功した API 呼び出しの料金は公開ベース $0.002 です。
キリル・シーザーが実務で使われる場面
本能力は純粋な parse エンジンのため、API 料金は成功 1 件あたり公開ベース $0.002 で、検証失敗は残高を使いません。
連携の活用例
混在スクリプトでのネタバレ・ラベルの軽い秘匿
ロシア語のクイズ解答や社内ラベルを軽い鍵で回し、ラテン語注記は読みやすく残し、後でブラウザまたは API の同一契約で復号します。
技術的な質問
ラテン文字・空白・句読点も暗号化されますか?
いいえ。回るのは三十三個のロシア語文字だけです。ラテン文字・数字・空白・句読点・他の文字体系はそのまま通り、non_cyrillic_chars に現れます。
料金はいくらですか?
ブラウザツールは無料で端末上で動きます。API リクエストは成功 1 件あたり前払い KIT 残高の $0.002 で、無効入力は課金されません。