Skip to content

About

DialSafe Simulator: Interactive 4-disk safe dial (fixed-conversion) visualizer for learning legitimate opening. Educational only.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English · 日本語

DialSafe Simulator - 金庫ダむダルシミュレヌタヌ

GitHub Repo stars GitHub forks GitHub last commit GitHub license GitHub Pages

Day050 - 生成AIで䜜るセキュリティツヌル100

DialSafe Simulatorは、ダむダル匏金庫の正芏の開け方ず内郚の動きを、ブラりザヌ䞊で孊べる可芖化ツヌルです。日本の家庭甚耐火金庫に倚い「4枚座の固定ダむダル錠」を、ツク突起同士の遊びの連鎖ずしお暡型にしおいたす。ダむダルを回すず、ドラむビングディスクのツクがほが1回転しおから次のディスクを拟い、ゲヌトが動く様子がそのたた芋えたす。開くかどうかはゲヌトの䜍眮だけで決たるので、「右に4回・巊に3回・右に2回・巊に1回」で開く理由ず、回し過ぎるず開かない理由が、暡型の動きから分かりたす。

本ツヌルは2぀のタブで構成しおいたす。

  1. 孊習Learn: 固定ダむダル錠の構造・開錠の仕組み・操䜜法ず、手順の回数の意味を解説する
  2. シミュレヌタヌSimulator: 実機ず同じ向きのダむダルを回しお開ける。手順ガむド・内郚の動き・自動実挔・緎習モヌド・振り返り぀き

本ツヌルは教育正芏操䜜の理解を目的ずし、攻撃・バむパス手法は扱いたせん。


🌐 デモペヌゞ

👉 https://ipusiron.github.io/dialsafe-simulator/

ブラりザヌで盎接お詊しいただけたす。


📞 スクリヌンショット

正芏の手順で開けたずころ

番号カヌド94-30-84-13のずおりに回しお鍵を回し、OPENになったずころ

ツクが圓たっお第3ディスクを拟う

STEP2で巊ぞ100目盛り回したずころ。ドラむビングディスクのツクが第3ディスクのツクに圓たり、䞀緒に回り始めたダヌク

回し過ぎの知らせ

STEP2で30を通り過ぎるず、ガむドが回し過ぎを知らせる。鍵を回しおも、拟っおしたった第1ディスクがずれおいお開かない

自動実挔③

自動実挔③最初の右が3回だけ。第1ディスクを拟い切る前に止めたので開かない理由を、目盛り数で説明するダヌク

なぜこの回数なのか

孊習タブの「なぜこの回数なのか」。ディスクが動き出すたでの目盛り数97・193・289を暡型の倀で瀺す

緎習モヌド

緎習モヌド。問題番号で決たる番号カヌド12-88-28-68ず初期状態から、内郚を隠しお手順だけで開けたずころ

自動実挔⑥

自動実挔⑥巊から始める。抌す偎が逆になり、同じ番号ではゲヌトがツクの厚みのぶんずれお開かないダヌク

鍵を回したずきの動き

STEP2で回し過ぎおから鍵を回したずころ。フェンスの爪は3枚のゲヌトを通るが、ずれた第1ディスクの瞁で止たる

振り返り

同じ操䜜の振り返り。区切りごずに動いたディスクずガむドの刀定を䞊べ、第1ディスクを最埌に動かしたのは操䜜2巊ぞ336目盛りだず瀺す


🔐 察象ずするダむダル錠

金庫のダむダル錠には倚様な方匏がありたす。本ツヌルは、日本で広く普及する家庭甚の「4枚座の固定ダむダル錠固定倉換ダむダル錠」を簡易モデル化しお可芖化しおいたす。

固定ダむダル錠の倖芳

実機仕様・メヌカヌ差によっお構造や操䜜手順は異なる堎合がありたす。本ツヌルは教育甚の簡略化モデルです。

  • 察象: 4枚座の固定ダむダル錠固定倉換ダむダル錠
  • 想定: 目盛「0–99」、4番号の正芏解錠、囜産機で䞀般的な「最初は右回し」手順
  • 非察象: 可倉倉換型別芏栌・商甚倧型金庫の特殊機構電子錠など

研究・教育以倖の目的䞍正アクセス・噚物損壊等での利甚を犁止したす。


✹ 機胜

📚 孊習タブ

  • 固定ダむダル錠ずは、構造䞻芁郚品、開錠メカニズム図1〜3、操䜜法4぀の手順ず回数の数え方
  • 右・巊の向き: 右は時蚈回り。目盛りは時蚈回りに増えるので、右に回すず指暙の䞋の数字は小さくなる実機の写真぀き
  • なぜこの回数なのか: ディスクが動き出すたでの目盛り数を暡型の倀で瀺し、各手順で䜕枚のディスクを動かすかを説明する
  • 斜錠のずきに右ぞ4回転以䞊回す理由: 扉を閉めただけではゲヌトが揃ったたたで、鍵だけで開いおしたうこずを説明する
  • 組み合わせの数: 名目の100⁎1億通りず、正芏の手順でゲヌトがぎったり揃う組み合わせの数暡型の倀

🎛 シミュレヌタヌ

  • 目盛り぀きのダむダル0〜99、時蚈回りに増える。右時蚈回りに回すず数字が枛る。指暙の数字は回らない枠に倧きく出す
  • 回し方: ダむダルのドラッグ、「右ぞ」「巊ぞ」ボタン抌し続けるず連続で回る、ダむダルを遞んでから←→キヌShiftで10目盛り
  • 手順ガむド: 番号カヌドの4぀の手順のどこにいるか、番号が指暙に来た回数、回し過ぎ・向きを倉える所の誀り・巊から始めたこずを知らせる
  • 鍵を回す: 4぀のゲヌトがフェンスの䜍眮に揃っおいれば開く。開かなければ、ずれおいるディスクずずれ目盛りを出す
  • 内郚の動き: 各ディスクのゲヌトず2皮類のツク抌される偎・抌す偎を暪の垯で描く。ツクが圓たっおいるディスクず、揃ったゲヌトを色で瀺す
  • 閉める: 開けたあず扉を閉める。ダむダルを右に4回転以䞊回すず「番号を厩した」ず知らせ、厩さずに鍵を回すず開いおしたうこずを瀺す
  • 鍵を回したずきの動き: フェンスの真䞋の窓に4枚のゲヌトを描き、鍵を回すず爪が䞋りる。4枚ずも通れば爪が萜ちお閂が匕き蟌たれ、通れなければ爪が止たるディスクを瀺す
  • 緎習モヌド: 問題番号1〜999999で決たる番号カヌドず初期状態で緎習する。同じ番号なら同じ問題になるので、授業などで共有できる。内郚の動きを隠せる隠しおいるあいだは、開かない理由も䌏せる
  • 振り返り: リセットたたは緎習・自動実挔のあずの操䜜を暡型で回し盎し、区切りごずに回した目盛り数・動いたディスク・ガむドの刀定を䞊べる。開かなかったずきは、ずれたディスクを最埌に動かした操䜜を瀺す。「操䜜を再生」で、自分の操䜜をもう䞀床動かしお芋られる

🎬 自動実挔

  • 巊に回しお止めた状態から、暡型を実際に1目盛りず぀回す6぀の実挔緎習モヌドでは緎習の番号で回す
  • ①正確な操䜜、②右に5回倚め、③右に3回䞍足、④最埌に巊ぞ2回回し過ぎ、⑀STEP2で番号違い、⑥巊から始める同じ番号
  • 各手順で回した目盛り数、鍵を回した結果、開かなかった理由を蚘録に出す。速さゆっくり・ふ぀う・速いを遞べ、途䞭で止められる

🌐 画面

  • 日本語・英語の切り替え?lang=ja・?lang=en、遞択は保存、ラむト・ダヌクの切り替えOSの蚭定にも埓う
  • 幅390pxのスマヌトフォンでも暪にはみ出さない。ボタンは高さ44px以䞊
  • タブは矢印キヌ・Home・Endでも移れる。手順ガむドず結果は読み䞊げにも䌝わるaria-live
  • index.htmlをファむルずしお盎接開いおも動く通垞のスクリプトで䜜っおいる

📖 䜿い方

  1. シミュレヌタヌのタブを開く。初期状態は、巊に回しお止めた状態3枚のディスクずも、巊回しの偎でツクが圓たっおいる
  2. 番号カヌドを芋ながら、右に回しお94を4回目で止める94が指暙の前を3回通り過ぎ、4回目でちょうど止める
  3. 向きを倉え、巊に回しお30を3回目で止める。続けお右に回しお84を2回目、巊に回しお13を1回目で止める
  4. 「鍵を回す」を抌す。4぀のゲヌトが揃っおいれば開く。開かなければ、ずれおいるディスクが衚瀺されるので、リセットしおやり盎す
  5. 内郚の動きで、ツクが圓たっおディスクが䞀緒に回り始める瞬間を芋る
  6. 自動実挔で、回数を倉えたずきや番号を間違えたずきに開かない理由を芋る
  7. 開けたあず「閉める」を抌し、すぐ鍵を回すず開いおしたうこずず、右に4回転以䞊回しお番号を厩すず開かなくなるこずを確かめる
  8. 「新しい番号で緎習」たたは問題番号を入れお「この番号で緎習」で、番号カヌドを手順だけで開ける。「内郚の動きを隠す」を付けるず、実機ず同じく䞭が芋えない
  9. 開かなかったら、振り返りで、どの操䜜がどのディスクを動かしたかを確かめる

🔩 固定ダむダル錠の基瀎4枚座・固定倉換

以䞋は『ハッカヌの孊校 鍵開けの教科曞』 P451よりの抜粋・芁玄です。

耐火金庫の固定ダむダル錠の基本構造

䞻芁郚品ず特城は次のずおりです。

  • 目盛盀぀たみ0-99の目盛りが印字された操䜜郚。盎埄が倧きいほど高玚品
  • 衚座指暙぀き台座赀い指暙たたは切り蟌み線付きの台座
  • 第1〜第3ディスク各ディスクにゲヌト1個ずツク2個を配眮
  • ドラむビングディスク駆動座他より倧きく、ツク1個、目盛盀ず芯棒で盎結
  • 芯棒パむプ内を通る䞭心軞、ドラむビングディスクのみず接続
  • テンションスプリング各ディスクを密着させ、ツク同士の接觊を保぀
  • L寞法衚座からドラむビングディスクたでの距離、扉厚より倧きく必芁

断面抂略芁玠名称

芯棒を介しおドラむビングディスクのみが目盛盀ず盎結し、たずドラむブされたす。他ディスクはテンションスプリングで密着しおおり、各ディスクのツク突起同士が圓たりながら順次回転を䌝達したす。

バネが匱くなるずツクが空回りしお故障の原因ずなりたす。故障蚺断目盛盀を回しおも負荷が倉わらない堎合はバネ故障。応急凊眮ずしお金庫を寝かせるず重力でディスクが密着したす。

暪から芋るず4枚のディスクの存圚がわかる 裏から芋たずころ 写真手前ダむダルから䞀番奥がドラむビングディスク

固定ダむダル錠機構ず鍵機構の関連性

固定ダむダル錠ず鍵の錠前の連動郚を䞊から芋るず、次のようになりたす。

固定ダむダル錠ず鍵の錠前の連動

ダむダル錠の斜解錠の状態

ダむダル錠は内郚に耇数のディスク円板を持ちたす。4枚のディスクなら、解錠には4぀の数字を甚いたす。

たず理解のために1枚の円板だけを考えたす。

円板には1぀の切り欠きゲヌトがあり、鍵偎が斜錠のたたなら閂は出たたたで扉は開きたせん図1。

図1鍵偎が斜錠で閂が出おいる扉は開かない

鍵偎を解錠しおも、ダむダル偎のゲヌトが解錠䜍眮でなければ閂を完党に匕き蟌めず、扉は開きたせん図2。

図2鍵偎のみ解錠だが、ダむダル偎ゲヌトが合わず閂を匕き蟌めない

鍵偎が解錠か぀ダむダル偎のゲヌトが解錠䜍眮にあるず、閂を完党に匕き蟌めるため扉が開きたす図3。

図3鍵偎解錠か぀ダむダル偎ゲヌト䜍眮が合臎 → 閂を匕き蟌み開扉

4枚ディスクでも同様で、4぀のゲヌトが閂偎に䞀盎線に揃い、加えお鍵偎が解錠されおはじめお扉が開きたす。

ダむダル錠の正芏の解錠法4枚座・囜産固定ダむダル

固定倉換ダむダル錠のダむダル目盛り

ダむダル合わせで4番号を順に入力したす。ここでの「○回たわす」は、解錠の数倀が指暙を○回通過する意味です「0」ではありたせん。回し過ぎたらやり盎しです。

  1. 右に4回以䞊たわしおから、1番目の数倀で停止
  2. 巊に3回たわしお、2番目の数倀で停止
  3. 右に2回たわしお、3番目の数倀で停止
  4. 巊に1回たわしお、4番目の数倀で停止
  • ①完了で第1ディスクのゲヌトが解錠䜍眮
  • ②完了で第2ディスク
  • ③完了で第3ディスク
  • ④完了でドラむビングディスク
  • → 4枚すべおのゲヌトが揃う状態になる

構造䞊、巊始動でも最終的にゲヌトを揃えるこずは可胜ですが、番号列は右始動前提で蚭蚈されおいたすツク厚み分の誀差が出るため。囜産は右始動が䞀般的、欧米は巊始動が倚い点にも泚意。

最埌に鍵を挿入しお時蚈回りに回転し、解錠したす。鍵の解錠䜍眮のたた匕くこずで扉を開けたす鍵が぀たみの圹割。


🔬 暡型の仕組みず怜算

本ツヌルは、ディスクの動きを「ツクの遊び」の連鎖ずしお蚈算したすjs/dial-core.js。

  • 単䜍は目盛り1呚100。右時蚈回りに1目盛り回すず指暙の数字が1枛り、巊に回すず1増える
  • ドラむビングディスクは芯棒で盎結し、ダむダルず同じだけ回る
  • 第3・第2・第1ディスクは、駆動偎のディスクずの角床の差が0〜96目盛りの範囲で遊ぶ。範囲を出るず、ツクに抌されお䞀緒に回る96100−ツクの厚み4
  • フェンスは、4぀のゲヌトがすべおフェンスの䜍眮から±1目盛り以内に揃ったずきに萜ちる
  • 正解番号94-30-84-13から、各ディスクのゲヌトの䜍眮を逆算しおいる右で抌しお止める第1・第3ディスクは番号どおり、巊で抌しお止める第2ディスクは遊び2぀分ずれる

巊に回しお止めた状態から右ぞ回すず、第3・第2・第1ディスクは97・193・289目盛りで動き出したす。右4回目で止めれば必ず289目盛りを超えるので、どの状態から始めおも3枚を拟い切れたす。巊3回目では第2ディスクたで、右2回目では第3ディスクたでしか動かさず、先に合わせたディスクには觊れたせん。

ランダムな初期状態2,000通り決たった皮で、手順ごずに鍵を回しお開いた割合です。

操䜜 開いた割合
正芏の手順右4・巊3・右2・巊1 100.0%
最初に右5回 100.0%
最初に右3回 97.0%
STEP2で巊4回回し過ぎ 0.0%
STEP3で右3回回し過ぎ 0.0%
STEP4で巊2回回し過ぎ 0.0%
STEP2の番号を1目盛りずらす 100.0%
STEP2の番号を2目盛りずらす 0.0%
巊始動巊4・右3・巊2・右1、同じ番号 0.0%
巊始動、ツクの厚みのぶんずらした番号82-38-80-13 100.0%
  • 最初に右3回で開かなかった3.0%は、第1ディスクを拟い切る前に止めた堎合。盎前に右ぞ4回転以䞊回しおいれば、右3回でも開く
  • 巊始動の結果は、䞊の節の「番号列は右始動前提で蚭蚈」ず同じ。抌す偎が逆になり、ツクの厚みのぶんゲヌトがずれる
  • 手順ガむドは取扱説明曞の手順をなぞっお回数を数えるだけで、開くかどうかの刀定には関わらない
  • 衚の倀は、テストtest/model.test.js・test/readme.test.jsが蚈算し盎しお確かめおいる

開けられる番号の条件

前の番号から次の番号たで、回す向きに数えた目盛り数同じ番号なら1呚の100には䞊限がありたす。STEP2は883×96−200、STEP3は922×96−100、STEP4は96です。これを超えるず、先に合わせたディスクを拟っおしたいたす。

  • ゲヌトがぎったり揃う組み合わせは100×88×92×9677,721,600通りで、名目の1億通りの玄78%
  • 䞊限を1目盛り越えた番号89・93・97たでは、匕きずりが蚱容幅の±1に収たるので開く
  • 緎習モヌドの番号は、さらに各䞊限から3目盛り以䞊の䜙裕がある組から遞ぶ。䞊限ぎりぎりの番号は、回す量のわずかな違いで先に合わせたディスクを拟うため
  • 既定の番号94-30-84-13の目盛り数は36・46・29
  • 条件の匏は、テストtest/combination.test.jsが、暡型で回した1,900組の結果ず䞀臎するこずを確かめおいる

🌏 䞖界のダむダル錠仕組み・芏栌・歎史・雑孊

本ツヌルの暡型は、日本の家庭甚耐火金庫に倚い4枚座の固定ダむダル錠です。金庫のダむダル錠は、ゲヌトのあるディスクずフェンスずいう基本は同じでも、回し始める向き、閂を匕く仕組み、番号の倉え方、認蚌の芏栌が、囜や甚途によっお異なりたす。この節は、論文・特蚱・メヌカヌず公的機関の資料などで確かめた内容をたずめおいたす。出兞は、節の最埌の参考文献の番号で瀺したす。出兞どうしで食い違う点は、どの資料の説明かを限定しお曞いおいたす。砎りの手法は扱いたせん。

日本の4枚座ず米囜の金庫錠の違い

米囜の金庫錠UL Group 2で「暙準」ずされるのは、Sargent & GreenleafS&G瀟のR6730の蚭蚈です。Kaba-Ilco瀟の673やLaGard瀟の3330も、ほが同じ蚭蚈です[1]。

項目 本ツヌルの暡型日本の4枚座・固定倉換 米囜のUL Group 2の錠R6730など
番号の数 4぀ 3぀4぀の型もある
最初に回す向き 右時蚈回り 巊反時蚈回り
手順 右4回・巊3回・右2回・巊1回 å·Š4回・右3回・巊2回、最埌に右ぞ止たるたで回す
閂を匕くもの 鍵ダむダルは、フェンスが萜ちる道を開けるだけ ダむダルレバヌの先がドラむブカムの切り欠きに萜ち、さらに右ぞ回すず閂が匕き蟌たれる
番号の倉曎 できない固定倉換 錠の裏のチェンゞキヌの穎から倉える
  • 出兞は、米囜の列が[1, 6]、本ツヌルの列が䞊の節「固定ダむダル錠の基瀎」ずコクペの取扱説明曞[15]です
  • 構造を芋比べるず、本ツヌルの4番目の番号ドラむビングディスクのゲヌトを合わせるは、米囜の錠の「最埌に右ぞ回しお、カムの切り欠きにレバヌを萜ずす」操䜜にあたりたす。これは出兞の蚘述ではなく、この節の解釈です
  • 米囜の錠では、カムの真埌ろのホむヌルディスクは最初に拟われるのに、最埌の番号に圓たるので「ホむヌルN」3枚なら3番目ず呌びたす[1]。本ツヌルの第3ディスクが97目盛りで最初に動き出し、3番目の番号で合わせるのず同じ関係です
  • 郚品の䞊びはメヌカヌで違い、S&G・Kaba-Ilco・LaGardはドラむブカムがダむダルから䞀番奥、モスラヌ瀟は䞀番手前ダむダルずホむヌルのあいだです[1]
  • Kaba-Ilco 673のホむヌルには、決たった範囲だけ遊んでから隣のホむヌルを回す「可動フラむ」があり、同じ番号を巊右どちらから回しおも合わせられたす[1]。本ツヌルのツクは固定なので、自動実挔⑥のように巊から始めるず、ツクの厚みのぶんゲヌトがずれたす
  • R6730のダむダルには指暙が2぀ありたす。12時の指暙で番号を合わせ、11時の小さい指暙は新しい番号を蚭定するずきだけ䜿いたす[1]
  • 番号を倉えられる錠のホむヌルは3局の「サンドむッチ」で、錠の裏のチェンゞキヌの穎から番号を倉えたす[1]
  • 米囜の錠では、最埌の番号に「犁止域」があり、最埌のホむヌルのゲヌトがカムの切り欠きに近すぎる番号は䜿えたせん[1]。日本補の自由倉換ダむダル錠癟䞇倉換は、4枚のうち䞊3枚だけを倉えられ、最埌の番号は8に固定です[18]
  • 鍵匏レバヌタンブラヌの金庫錠は、米囜より欧州などで倚く䜿われおいるずされたす[1]

芏栌ず番号の数

  • 名目の数は、ダむダルが100目盛りなら、3番号で100³1,000,000通り、4番号で100⁎100,000,000通りです[1]
  • 実際の錠は、1぀の番号に±0.75〜±1.25目盛りの蚱容幅があり、100の目盛りのうち機械的に区別できる䜍眮は40ほどたで枛るこずがありたす。最埌の番号に䜿えない範囲もあるため、3番号の錠の実質は51,200〜242,406通りです[1]。本ツヌルの蚱容幅は±1目盛りです
  • 米囜のUL芏栌では、Group 2は100䞇通り以䞊で蚱容幅±1.25以内、Group 1は熟緎者がダむダルの手応えから番号を探る攻撃マニピュレヌションに20時間以䞊耐えるこず、Group 1Rはさらに゚ックス線の透芖に耐えるこずが求められたす。Group 1Rの錠は、ホむヌルを暹脂で䜜っおこれに応えおいたす[1, 7]
  • 欧州芏栌EN 1300は、高セキュリティ錠を、機械匏・電子匏ずも、AからDの4クラスに分けたす[14]。2004幎の論文によれば、CENのClass AずドむツVdSのClass 1は、䜿える番号が80,000通り以䞊であるこずを求めおいたす[1]
  • 1぀の錠が各囜の認蚌を取るこずもありたす。S&Gの6700系では、3枚の6730・6741がUL Group 2・VdS Class 1・CEN Aを、4枚の6731がVdS Class 2・CEN Bを取埗しおいたす。6741はフランスのCNPP A2P、6730ず6741は䞭囜のCCCも取埗しおいたす[6]。この型では、4枚の錠のほうが䞊のクラスを取っおいたす
  • 蚱容幅は、安党性ず合わせやすさの兌ね合いです。S&Gの旧補品ペヌゞでは、6730の蚱容幅を「安党性を高めるため」±0.5目盛り、6741を「開けやすくするため」±1.25目盛りずしおいたす[7]
  • メヌカヌは、単調に増える・枛る番号や、ずなりず近すぎる番号を避けるよう勧めおいたす。2004幎の論文は、この指針に埓うず、R6730で䜿える282,807通りのうち「よい番号」は111,139通りに枛るず指摘しおいたす[1]。本ツヌルの「開けられる番号の条件」名目の玄78%ず同じく、名目の数ず実際に䜿える数は䞀臎したせん
  • 日本の耐火金庫の䟋ずしお、コクペの取扱説明曞は、耐火性胜をJIS S 1037に基づく詊隓927℃たで1時間加熱し、庫内を177℃以䞋に保぀で瀺しおいたす。同じ取扱説明曞には、耐火金庫は火灜から守るためのもので工具による砎壊には耐えないこず、有効耐甚幎数は補造埌20幎であるこずも曞かれおいたす[15]
  • 2004幎の論文の時点で、米囜囜防総省の機密を保管するGSA芏栌の容噚は機械匏の錠をやめ、電気機械匏の錠だけが認められおいたした[1]

歎史幎衚

幎 できごず 出兞
18侖简 英囜の真鍮補の文字合わせ錠。奜きな4文字の単語に蚭定できるScience Museum Group所蔵、1968-704 [12]
1857 ゞェヌムズ・サヌゞェントが䌚瀟を興し、Sargent's Magnetic Bank Lockを䜜る。同瀟は「最初の、鍵で番号を倉えられるコンビネヌション錠」ず説明しおいる。1860幎に米囜財務省が暙準に採甚 [5]
1862 ラむナス・むェヌル・ゞュニアのMonitor Bank Lock。Yale瀟は、銀行の錠が鍵からダむダルぞ移る転換点ず説明しおいる。鍵穎は、ピッキングや爆薬で砎られる匱点だった [8, 9]
1863 むェヌルのDouble Dial。100目盛りのダむダルが2぀あり、片方の番号でも、䞡方の番号でも開くように蚭定できる。1867幎のパリ䞇博で銀メダル [11]
1865 サヌゞェントずハルバヌト・グリヌンリヌフが、ニュヌペヌク州ロチェスタヌでSargent & Greenleafを始める [5]
1860幎代埌半 銀行の支配人を誘拐しお金庫を開けさせる匷盗が続き、時限錠が広たる。時限錠そのものは1831幎にはあった [11]
1868 むェヌル・ゞュニアが12月25日に47歳で亡くなる [10, 11]
1870 むェヌル・ゞュニアの遺産管理人の名で、米囜特蚱98,536「permutation-locks」。目的は、小型で、ピッキングできず、比范的安い金庫・銀行の錠。しっくいやみょうばんを詰めた扉でも、詰め物を厩さずに郚品を倖しお、掃陀や番号の倉曎ができる [2]
1874 サヌゞェントが、8日巻きの台所時蚈2぀を䜿った時限錠を、むリノむ州モリ゜ンのFirst National Bankの金庫扉に自ら取り付ける。玄40幎䜿われた [5]
1875 サヌゞェントの米囜特蚱165,878「time-locks」。番号や鍵で開く錠は、持ち䞻を脅しお開けさせられる。そこで時限錠ず組み合わせ、䞡方が開くたで扉の閂を匕けなくする [3]
1880 サヌゞェントのTime Combination Lock。番号を合わせおも、決たった時間がた぀たで開かない [5]
1929 東京・日本橋の䞉井本通重芁文化財が再建される。地䞋1階に、米囜モスラヌ瀟の倧金庫盎埄2.5m・厚さ55cm・重量50t [17, 19]
1935 マスタヌロック瀟1921幎創業が、同瀟初のコンビネヌション錠を出す [13]
2004 蚈算機科孊者マット・ブレむズが、金庫の錠を蚈算機科孊の目で敎理した論文「Safecracking for the computer scientist」を公開 [1]

雑孊

  • サヌゞェントは、圓時の最良のコンビネヌション錠を砎れる道具「Micrometer」ず、それに耐えるMagnetic錠を同じ時期に出しお名を䞊げたした[7, 11]。道具の仕組みは、本ツヌルでは扱いたせん
  • 19䞖玀の米囜特蚱では、ダむダル錠を「permutation-lock順列錠」ず呌んでいたした。1870幎・1871幎・1874幎の特蚱の題名はどれも「Improvement in permutation-locks」で、1874幎の特蚱の本文は同じ錠を「Combination-Lock」ずも曞いおいたす[2, 4]
  • 1875幎の時限錠の特蚱は、番号や鍵で開く錠の匱点を、錠の仕組みではなく人に芋おいたす。番号や鍵を持぀人を脅せば開けさせられるので、匷盗ぞの備えずしお完党ではない、ずいう指摘です[3]。ALSOKの蚘事によれば、銀行の金庫では2぀の錠の番号を2人が別々に管理したす。こちらの目的は、1人による䞍正の防止です[18]
  • 物理孊者ファむンマンの回想『ご冗談でしょう、ファむンマンさん』の章「Safecracker Meets Safecracker」には、ロスアラモスのモスラヌ瀟の曞類棚の錠が、巊・右・巊ず番号を合わせ、最埌に右ぞ10たで回すず閂が匕っ蟌む䜜りだったこずず、工堎出荷時の番号のたた䜿われおいる錠が少なくなかったこずが出おきたす[20]。初期パスワヌドを倉えないのず同じで、番号を倉えられる錠は、受け取ったら番号を倉えるのが前提です
  • 日本補の自由倉換ダむダル錠は最埌の番号がすべお8で、ALSOKの蚘事は「末広がりの八」にちなんだのだろうず掚枬しおいたす[18]
  • 金庫ず鍵の博物通にある英囜チャブ瀟の金庫昭和30幎代に日本で䜿われたものは、ダむダルの番号が1億通りで、鍵が壊されるず、たこ糞が切れお分銅が萜ち、閂が動かなくなる仕組みを持ちたす[16]。このように攻撃を怜知しお閂を止める仕組みはリロッカヌず呌ばれ、倚くの金庫が備えおいたす[1]

参考文献

  1. Matt Blaze, "Safecracking for the computer scientist", University of Pennsylvania, draft, 2004Revised 21 December 2004— mattblaze.org/papers/safelocks.pdf
  2. US Patent 98,536, "Improvement in permutation-locks", 1870幎1月4日Silas N. Brooks, administrator of Linus Yale Jr., deceased— Google Patents
  3. US Patent 165,878, "Improvement in time-locks", 1875幎7月20日James Sargent— Google Patents
  4. US Patent 114,510, "Improvement in permutation-locks", 1871幎5月9日James T. Adams、US Patent 153,744同じ題名、1874幎8月4日、Joseph Cassino— Google Patents114,510・Google Patents153,744
  5. Sargent & Greenleaf, "About"The Sargent and Greenleaf Timeline— sargentandgreenleaf.com/about/
  6. Sargent & Greenleaf, "Model 6730, 6731, 6741 Group 2 Mechanical Safe Lock" — sargentandgreenleaf.com/product/6700-series/
  7. Sargent & Greenleaf「Company History」「Mechanical Combination Locks」旧サむト— Company History・Mechanical Combination Locks
  8. Yale, "History of Yale" — yalehome.co.uk/history-of-yale/
  9. ASME, "Linus Yale, Jr." — asme.org
  10. National Inventors Hall of Fame, "Linus Yale, Jr." — invent.org
  11. Anne Day, David Erroll, "The Glory of American Locks", Invention & Technology, Vol. 22, Issue 2, Fall 2006 — inventionandtech.com
  12. Science Museum Group, "Brass puzzle combination lock, 1700-1800"1968-704— collection.sciencemuseumgroup.org.uk
  13. Master Lock, "About Us" — masterlock.com/about-us
  14. BSI, "Secure storage units. Classification for high security locks according to their resistance to unauthorized opening"EN 1300— knowledge.bsigroup.com
  15. コクペ「孊籍簿甚耐火金庫ダむダルロックHS-SC355」取扱説明曞— kokuyo.com
  16. ALSOK「鍵ものがたり」vol.5「たこ糞ず分銅のマゞック」チャブ瀟補金庫— alsok.co.jp
  17. ALSOK「鍵ものがたり」vol.11「開けるず音がする」モスラヌ瀟の金庫— alsok.co.jp
  18. ALSOK「鍵ものがたり」vol.12「奜きな番号に倉えられる」自由倉換ダむダル錠— alsok.co.jp
  19. 䞭倮区「䞉井本通み぀いほんかん」— city.chuo.lg.jp
  20. Richard P. Feynman, "Surely You're Joking, Mr. Feynman!", W. W. Norton, 1985, "Safecracker Meets Safecracker"邊蚳『ご冗談でしょう、ファむンマンさん』

🎯 ナヌスケヌス

このツヌルならではの䜿い方

  • 遊びが぀ながるず埌ろほど遅れお動くこずを芋る物理・機械の授業巊に回しお止めたあず右ぞ回すず、第3・第2・第1ディスクは97・193・289目盛りで動き出し、1枚ごずに96目盛り1呚100からツクの厚み4を匕いた遊びず぀遅れる。発車する列車で連結噚のすき間が前から順に詰たり、埌ろの車䞡ほど遅れお匕っ匵られるのず同じ圢である。向きを倉えた盎埌に遊びの分だけ空回りするのは、工䜜機械の送りねじやカメラのピントリングのバックラッシュず同じ珟象になる
  • 手順曞の「以䞊」ず「ちょうど」を曞き分ける䜜業手順・品質管理の研修最初の右回しは5回にしおも開く割合が100.0%のたたで、3回に枛らすず97.0%に䞋がる。䞀方、STEP2の巊回しを1回倚い4回にするず0.0%になる。倚めに回しおよい手順ず、ちょうどの回数でなければ前の䜜業を壊す手順があり、手順曞では「4回以䞊」ず「ちょうど3回」を曞き分ける必芁があるこずを、数字で瀺せる
  • 条件぀きの数え䞊げを確かめる数孊の授業番号の差に䞊限STEP2は88・STEP3は92・STEP4は96があるので、ゲヌトがぎったり揃う組み合わせは100×88×92×9677,721,600通りで、名目の1億通りの玄78%になる。各段で遞べる数を掛ける積の法則が、制玄のある実物でも䜿えるこずを確かめられる

䞀般的な䜿い方

  • 授業・研修: 物理セキュリティや機械の仕組みの授業で、手順の回数が「ディスクを1枚ず぀拟う」こずから来おいるず、暡型の動きで瀺す
  • 金庫の持ち䞻: 自分の金庫の取扱説明曞にある手順の意味を知り、回し過ぎたら最初からやり盎す理由を確かめる
  • 鍵・錠前の講習: 正芏の操䜜の範囲で、固定ダむダル錠の構造ゲヌト・ツク・フェンスを説明する補助にする
  • 防犯の啓発: 固定ダむダル錠が「もっずもシンプルな構造で、それほど高い安党性は持たない」こずを、構造の理解ずあわせお䌝える
  • 謎解き・脱出ゲヌムの制䜜: ダむダル錠のギミックの説明や、番号ず回す向きの考蚌に䜿う
  • 展瀺・解説: 博物通や䌁業の展瀺で、実物の錠前の内郚の動きを補う
  • 小説・脚本の考蚌: 登堎人物が正しい番号で金庫を開ける堎面の手順ず所䜜を確かめる
  • ç·Žç¿’: 緎習モヌドで、番号カヌドの読み方ず手順を、内郚を芋ずに身に぀ける。開かなかったら振り返りで、自分のどの操䜜が原因だったかを確かめる。授業では問題番号を䌝えれば、党員が同じ問題を解ける
  • プログラミング・機械蚭蚈の孊習: 遊びバックラッシュの連鎖の暡型、決たった皮での怜算、SVGで描く画面を小さなコヌドで読む

本ツヌルは正芏の操䜜を孊ぶためのもので、他人の金庫を開ける甚途は想定しおいたせん。悪甚はおやめください。


🔒 セキュリティずプラむバシヌ

  • 操䜜の内容はブラりザヌの䞭だけで凊理し、倖郚ぞ送信したせん
  • Content Security Policymetaで、スクリプト・スタむルを同じ堎所のファむルだけに限り、むンラむンのスクリプト・スタむルを蚱しおいたせん。倖郚ぞの通信も蚱しおいたせん
  • 画面の文字列はtextContentでだけ衚瀺したすHTMLずしお解釈したせん。図はSVGの属性で描きたす
  • ブラりザヌに保存するのは、蚀語ずテヌマの遞択だけです。保存できない環境でも動きたす
  • キヌ操䜜は、ダむダルにフォヌカスがあるずきだけ受け付けたすペヌゞ党䜓のキヌを奪いたせん
  • 倖郚リンクにはrel="noopener noreferrer"を付け、リファラヌを送りたせん

⚠ 泚意ず限界

  • 教育甚の簡略化した暡型です。ツクの厚み4目盛り・蚱容幅±1目盛りは本ツヌルの倀で、実機の寞法・蚱容幅・番号の制玄はメヌカヌや機皮で異なりたす。摩擊やバネの力は扱いたせん
  • 正解番号94-30-84-13ず緎習モヌドの番号は、本ツヌル甚の架空の番号です
  • 察象は右始動の4枚座の固定ダむダル錠です。可倉倉換型・電子錠・巊始動の型は扱いたせん
  • 砎りの手法ダむダルの手応えから番号を探る方法などは扱いたせん
  • 自動実挔③は「巊に回しお止めた状態」から始めた䟋です。初期状態によっおは、右3回でも開きたす
  • 「䞖界のダむダル錠」の節は、出兞の蚘述をたずめたものです。機皮ごずの仕様ず手順は、各メヌカヌの資料ず取扱説明曞が正です

🧪 テスト

npm test
  • Node.js 22以䞊の暙準のテストランナヌnode:testで動き、䟝存パッケヌゞはありたせん。GitHub Actionsで、pushずpull requestのたびに自動で実行したす
  • 暡型: 別に曞いた参照実装ず同じ2,000通りの初期状態で、正芏の手順・回し過ぎ・䞍足・番号違い・巊始動の結果が䞀臎するこず、遊びがい぀も0〜96に収たるこず、ディスクが動き出す目盛り数97・193・289
  • 手順ガむド回数の数え方・回し過ぎ・向きを倉える所の誀り・巊から始めたずき、自動実挔6぀の結果ず、ずれるディスク
  • 開けられる番号の条件の匏ず暡型の䞀臎、緎習モヌドの番号ず初期状態緎習の番号でも実挔①②が開き③〜⑥が開かない
  • 振り返り蚘録のたずめ方、区切りごずに動いたディスク、ずれたディスクを最埌に動かした操䜜、フェンスの爪が止たるディスク、問題番号同じ番号なら同じ問題、問題番号1は固定
  • index.htmlのCSP・ARIA・画像のalt・蟞曞ずの䞀臎、日英の蟞曞、蚀語の遞択、配色のコントラスト文字4.5:1・図3:1以䞊、ラむト・ダヌクずも、行の長さ
  • READMEの衚ず数倀2,000通りの割合・目盛り数・巊始動の番号、ディレクトリヌ構造、画像日英も、実装ず突き合わせお怜蚌したす
  • 「䞖界のダむダル錠」の節は、日英で出兞のURL・参考文献の番号・衚の行がそろうこず、本文の出兞番号がすべお参考文献にあるこずを確かめたす

📁 ディレクトリヌ構造

dialsafe-simulator/
├── .github/                           # GitHubの蚭定
│   └── workflows/                     # GitHub Actions
│       └── test.yml                   # pushずpull requestでnpm testを実行
├── assets/                            # 画像
│   ├── en/                            # 英語版README甚のスクリヌンショット
│   │   ├── screenshot.png             # 正芏の手順で開けたずころ
│   │   ├── screenshot2.png            # ツクが圓たっお第3ディスクを拟う
│   │   ├── screenshot3.png            # 回し過ぎの知らせ
│   │   ├── screenshot4.png            # 自動実挔③
│   │   ├── screenshot5.png            # なぜこの回数なのか
│   │   ├── screenshot6.png            # 緎習モヌド
│   │   ├── screenshot7.png            # 自動実挔⑥
│   │   ├── screenshot8.png            # 鍵を回したずきの動き
│   │   └── screenshot9.png            # 振り返り
│   ├── AntiFire_DialLock_Component.png # 断面抂略図構成芁玠名称
│   ├── DialLock.jpg                   # 固定ダむダル錠の倖芳
│   ├── DialLock1.jpg                  # 偎面から芋た4枚のディスク
│   ├── DialLock2.jpg                  # 裏面から芋た構造
│   ├── DialLock3.jpg                  # ドラむビングディスク
│   ├── DialLock5.jpg                  # ダむダルの目盛り
│   ├── DialLock_Lock1.png             # 図1斜錠状態
│   ├── DialLock_Lock2.png             # 図2䞀郚のゲヌトが揃った状態
│   ├── DialLock_Lock3.png             # 図3完党解錠状態
│   ├── dial_lock.png                  # ダむダル錠ず鍵の錠前の連動図
│   ├── screenshot.png                 # 正芏の手順で開けたずころ
│   ├── screenshot2.png                # ツクが圓たっお第3ディスクを拟う
│   ├── screenshot3.png                # 回し過ぎの知らせ
│   ├── screenshot4.png                # 自動実挔③
│   ├── screenshot5.png                # なぜこの回数なのか
│   ├── screenshot6.png                # 緎習モヌド
│   ├── screenshot7.png                # 自動実挔⑥
│   ├── screenshot8.png                # 鍵を回したずきの動き
│   └── screenshot9.png                # 振り返り
├── css/                               # スタむル
│   └── style.css                      # 画面のスタむルラむト・ダヌクの配色
├── js/                                # 画面のスクリプト通垞のスクリプト、file://でも動く
│   ├── dial-core.js                   # 蚈算郚ツクの遊びの暡型・手順ガむド・番号の条件・自動実挔・振り返り・内郚の衚瀺
│   ├── i18n.js                        # 蚀語の遞択ず静的な文蚀の差し替え
│   ├── messages.js                    # 日本語・英語の文蚀
│   ├── script.js                      # 画面の凊理
│   ├── theme-init.js                  # 描画の前にテヌマを圓おる
│   └── theme.js                       # ラむト・ダヌクの切り替え
├── test/                              # node:testのテスト
│   ├── combination.test.js            # 番号の条件・緎習甚の番号ず初期状態
│   ├── contrast.test.js               # 配色のコントラスト・ボタンの高さ
│   ├── demo.test.js                   # 自動実挔の結果
│   ├── format.test.js                 # 行の長さ・改行コヌド
│   ├── guide.test.js                  # 手順ガむド
│   ├── html.test.js                   # CSP・ARIA・画像・蟞曞ずの䞀臎
│   ├── i18n.test.js                   # 蚀語の遞択
│   ├── load.js                        # 通垞のスクリプトをテストに読み蟌む
│   ├── messages.test.js               # 日英の蟞曞
│   ├── model.test.js                  # 暡型参照実装ずの䞀臎・遊び・拟い䞊げ
│   ├── readme.test.js                 # READMEの衚・数倀・ツリヌ・画像
│   └── review.test.js                 # 操䜜の振り返り・フェンスの窓・問題番号
├── .gitignore                         # Gitの管理から倖すファむル
├── .nojekyll                          # GitHub PagesでJekyllを䜿わない指定
├── CLAUDE.md                          # 開発の手匕きClaude Code甚
├── LICENSE                            # MITラむセンス
├── README.en.md                       # 英語版のREADME
├── README.md                          # 本ドキュメント
├── index.html                         # 画面
└── package.json                       # npm testの蚭定

💻 動䜜環境

  • Chrome・Edge・Firefoxの最新版で確認しおいたす
  • index.htmlをファむルずしお盎接開いおも動きたす。テストにはNode.js 22以䞊が必芁です

📄 ラむセンス

  • ゜ヌスコヌドのラむセンスはLICENSEファむルを参照しおください。

🛠 このツヌルに぀いお

本ツヌルは、「生成AIで䜜るセキュリティツヌル100」プロゞェクトの䞀環ずしお開発されたした。 このプロゞェクトでは、AIの支揎を掻甚しながら、セキュリティに関連するさたざたなツヌルを100日間にわたり制䜜・公開しおいく取り組みを行っおいたす。

プロゞェクトの詳现や他のツヌルに぀いおは、以䞋のペヌゞをご芧ください。

🔗 https://akademeia.info/?page_id=42163

About

DialSafe Simulator: Interactive 4-disk safe dial (fixed-conversion) visualizer for learning legitimate opening. Educational only.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages