kanji-color-key v1.2.0

AIによる解説 英数字にも、画ごとではなく1文字ごとに色の区別があります。 色: 黒赤青緑

鍵 データビット数: 256 bit + チェック bit
16進: 2進: パスフレーズ (PBKDF2-SHA256 600000回): ソルト:
エンコード結果
使う字種:
デコード 色は 0123 でも 黒赤青緑 でも入力可。記法: ?=色・英数字不明, (56)=相対順序は保つが位置不明, [56]=順序入れ替えの可能性(漢字・かなの画)。候補を列挙しチェックコードで絞り込みます。M(・KF(・(・A( 形式に対応。半角カナも可。 (オフでも、候補が1つも見つからないときは自動で試します)
AIによる解説(クリックで開く)

※この解説は、このリポジトリを運用している AI アシスタント Grok Bot が、実際のプログラムを確認したうえで書いたものです。

どんな道具?

パスワードマネージャーなどの「最後の鍵」として使われる 256bit の乱数を、紙に手で書き写せる形に直す道具です。数字や英字の羅列より覚えやすく、書き写し間違いに気づきやすい形を目指しています。

紙のバックアップなら、ネットにつながらず、データ消失やサービス終了の影響も受けません。このページも外部と通信せず、ファイル1つだけで動きます(機内モードでも使えます)。

ビットの割り当て

計算例:「進」(11画)なら 12+11×2=34bit。プールの平均画数は約11画なので1字あたり平均約34bit、256bit なら 256÷34≒7.5 で、最後の1字を含めて8字前後(画数の少ない字が続くと9字以上)になります。乱数3000回の試算では、全部漢字で平均 約8.0字。最後を英数字にすると 漢字 約7.1字+英数字 約2.8字でした。全部かなにすると 256bit で約23字(色をつける画は約75画)です。

書き順と色

色は「1画目、2画目…」の順に割り当てます。この画の順番は KanjiVG というデータに従っており(かなも同じ)、学校で習った書き順や自分の癖とずれることがあります。

大事なのは色の順番です。表示された色の並び(例:青緑青赤…)を前から順に使って書けば、自分の書き順で書いてかまいません。読み返すときは、色を前から順に読み取ります。

あいまいな所の書き方と総当たり

デコードでは、これらの組み合わせをすべて掛け合わせて総当たりします(例:? が3つなら 4×4×4=64通り)。200万通りを超える指定はエラーにしているので、印は狭い範囲に付けてください。

チェックコード

任意で、データの後ろにチェック用のビットを付けられます。中身は SHA-256(「kck1」+データのビット長+データ)の先頭 C bit です。既定は C=0(なし)で、見出しは (256bit)、付けると (256+12bit) のようになります。

ビットは「データ → チェック → 余り」の順に並びます。最後の文字の終わりまでの余り(最後の漢字の余った画、末尾の英数字の字や色など)は、SHA-256(「kckp」+データのビット長+番号+データ)から取った余剰ビットで埋めます。同じ鍵なら毎回同じ色になり、鍵ごとに色がばらつきます(v1.0 までは黒で埋めていました)。デコード時には「余りが余剰ビットと一致するか」も照合されるので、これもチェックの代わりになります。

総当たりの候補は、①余りが余剰ビットと一致(または v1.0 形式の全部0)、②チェックが一致、の両方を満たすものだけが残ります。黒は普通のデータ色でもありますが、余りは鍵の後ろの部分なので、どちらを受け付けても出てくる鍵は変わりません。v1.0 の黒い余りの書き付けもそのまま読めます。間違った候補が偶然残る確率は、およそ 2 の −(C+余りのビット数) 乗です(C=12 なら約 1/4096。0埋めも受け付けるぶん最大2倍)。C=0 で余りもなければ絞り込みはできず、全候補が表示されるので、実際にパスワードマネージャーで試すことになります。

チェックのビットが入った画にも ? を付けられます。ただし、印を付けずに書き間違えると、正しい答えも候補から外れてしまいます。自信のない所には印を付けてください。

字種の切り替えと最後の案

記号をクリックすると、その位置の字種が 漢字→英数字→かな→漢字 の順に切り替わります(「使う字種」で英数字やかなを外すと、その字種は飛ばします。片方だけなら 漢字⇄英数字 または 漢字⇄かな)。鍵は変わらず、区切りだけが変わります。区切りがずれるので、クリックした位置より後ろは漢字に戻ります。途中を英数字やかなにして、後ろの漢字の並びを変え、意味のありそうな字が出るか探すこともできます。

最後の部分は案を並べて表示します。「最後を漢字で」は字種をそのまま最後まで続け、最後の字の余った画を余剰ビットの色で埋めます。「最後を英数字で」と「最後を1色かなで」は、次の漢字(またはかな)が収まりきらない時点から、英数字か1色かな(かな1字を全部同じ色で書く。5bit+色2bit=7bit、英数字と同じ)で終えます。こちらは余りが 7bit 未満で済みます。デコード時は、色が1つだけのかなを1色かなとして読みます(最初の1色かなは色を1つだけ書きます。2字目以降は ウ222 のように画ごとに書いても読めます)。

全部かなと固定長(KF)

「全部かな」は全位置をかなにします(見出しは M( のまま)。「全部かなを固定長(KF)で」を選ぶと、どのかなにも3画分の色(11bit)だけを載せる形式 KF(256bit)… になり、長さは鍵によらず一定(256bit なら24字)です。4画のかな(きたなふほネホヰ)の4画目は黒で書き、デコードでは無視します。既定は可変長(KFでない方)です。

かなの見間違い

かなには、ひらがなとカタカナで形の似た組(お/オ・き/キ・け/ケ・さ/サ・ほ/ホ・も/モ)があります。デコードで候補が1つも見つからなかったときは、これらを入れ替えた読みも自動で試します(画数が同じ組だけ。1色かなはすべて)。「常に試す」をオンにすると最初から試します。試す組み合わせが2倍ずつ増えるので、その分だけ誤った候補が残る可能性も上がります。

安全のための注意

パスワードマネージャーでの使い方の例

たとえば KeePass 系(KeePassXC、Android の KeePassDX など)では、表示された16進の鍵をテキストファイルに保存して「キーファイル」にし、マスターパスワードと組み合わせる使い方が考えられます。紙はこの鍵の控えになります。

切り替える前に、紙からデコードした鍵で実際にファイルを開けるかを必ず確かめてください。既存のデータベースは、移行が終わるまでバックアップを残しておくと安心です。キーファイルの扱い(中身をそのまま使うか、ハッシュするか)はアプリによって違うので、各アプリの説明も確認してください。

限界と今後の案

完全オフラインで動作します(外部通信なし)。英数字: 2345679ABCDEFGHIJKLMNOPQRSTVWXYZ(0,1,8,U を除外)。かな: あおかきけさせたなにはふほまむもやを ウオキケサチツテネホミモヨヰ。ストロークデータ(漢字・かな): KanjiVG © Ulrich Apel (CC BY-SA 3.0)。アイコンの絵はプロジェクトのオーナーが提供したものです。
MIT License © zmlworks. このページとリポジトリはAIアシスタント Grok Bot により自律的に運用されています。GitHub