SlideShare a Scribd company logo
1 of 57
Download to read offline
エニグマ暗号とは何だったのか	
堀川 隆弘	
  
@thorikawa
今日話すこと	
•  エニグマの構造と動作原理	
  
•  ポーランドによるエニグマ解読	
  
– ローター配線の解明	
  
– ポーランドによる(初期の)エニグマ解読	
  
•  イギリスによるエニグマ解読	
  
– チューリング・ボンベの仕組み	
  
– チューリング・ボンベの高速化(フィードバック
ループとウェルチマンの対角ボード)	
  
エニグマの構造と原理
そもそもエニグマとは	
•  第二次世界大戦でドイツが用いた換字式暗
号機	
  
•  1文字ごとにローターが回転し、換字表が切り
替わる多表換字式	
  
•  電動式という点が当時は画期的だった	
  
エニグマの構造	
•  プラグボード・ローター・リフレクタの各パーツが換字
表になっており、組み合わせによって暗号化される	
  
•  ローターは駆動式になっており一文字タイプするごと
にローターの換字表が変わる	
  
•  タイプするごとに暗号化された文字が点灯する	
Source:	
  h1p://www.electricinca.com/56/annota:ons/enigma_details.htm	
プラグ
ボード	
ローター	
リフレ	
  
クタ
エニグマの構造・ローター	
•  複数のローターから3枚(*)を
選んでエニグマ機にセットする	
  
•  オペレーターはローターを回転
させて、エニグマ機の窓から見
える文字(ローター位置)を調
整する	
  
•  一文字タイプするごとに一番右
のローターが1/26回転する	
  
•  各ローターはある特定の位置
で繰り上がり(「ターンオー
バー」と呼ぶ)があり、左側の
ローターを回転させる	
 ※大戦後半の設定ローターは4枚の	
  
  場合もあり
エニグマの構造・リフレクタ	
•  ローターと似ているが固定
である(回転しない)	
  
•  13個のペアを入れ替える換
字表であり、対称的である	
  
•  これによりエニグマ全体とし
ても対称的、かつ、ある文
字を自分自身に暗号化しな
いという特徴がある
エニグマの構造・プラグボード	
•  5〜10個の文字のペアを作っ
てプラグでつなぐ	
  
•  プラグの両端に対応する文
字を入れ替える役割をする	
  
•  組み合わせ数が膨大	
  
–  10ペアだと
150,738,274,937,250通り	
  
エニグマの設定	
以下の設定が「日鍵」として共通鍵として使われる	
  
•  ローター配列	
  
–  どのローターを使いどういう順番でセットするか	
  
•  ローター位置	
  
–  窓から見えるローターの文字を、ローターを回転して調整する	
  
•  リング設定	
  
–  ローターの実配線と、ローター周囲の文字との位置関係を調整する
ための設定	
  
–  実質的にはローター位置を変更することとほとんど違いがないため、
無視されることが多い	
  
•  プラグボード	
  
–  どの文字をプラグでつないで入れ替えるか	
  
	
  
Source:	
  h1p://
www.codesandciphers.org.uk/
virtualbp/navenigma/
navenig1.htm
ポーランドによる	
  
エニグマ解読
当時の状況	
•  1932年当時、ポーランドの数学者レイェフス
キの手元にあった情報	
  
– 商用版エニグマ機	
  
– オペレーション・マニュアル	
  
– 傍受されたエニグマ暗号文	
  
各ローター(リフレクターを含む)の配線はこの時点
では分かっていない(商用版と軍事版とで異なる)	
  
•  レイェフスキはこれらの限られた情報から軍
事用エニグマの複製を作ることを考えた	
  
当時のドイツ軍の暗号送信手順	
1.  指定された日鍵(ローター配列・位置・リング設定・
プラグボード)通りにエニグマ機を設定	
  
2.  送信者が選んだ任意の3文字(メッセージ鍵)を2
度タイプする	
  
–  メッセージ鍵はその後本文を暗号化する際に使われる	
  
–  仮にメッセージ鍵をXYZ暗号化された後の6文字をPYQ	
  
KAOとする	
  
3.  ローター位置をメッセージ鍵と同じになるように	
  
回転させる	
  
4.  メッセージの平文をタイプして暗号文を得る	
  
5.  2で得られた暗号化されたメッセージ鍵6文字(PYQ	
  
KAO)に続けて、4の暗号文を無線で送信する	
  
弱点:メッセージ鍵のくり返し	
•  レイェフスキはこのメッセージ鍵のくり返しに着
目した	
  
•  ある1日の中で、1文字目と4文字目(2文字目と
5文字目、3文字目と6文字目)の対応関係は決
まっている	
  
– 例)1文字目がAなら4文字目は必ずTになる	
  
•  十分な数のメッセージを調べることで、これら
の対応関係を全て洗い出すことができる	
ABCDEFGHIJKLMNOPQRSTUVWXYZ
TMWORPGSKQFLYEJCAHUDNZIBVX
例)1文字目と4文字目の	
  
対応
サイクル構造	
この各文字の対応関係をチェーン・サイクルで表し
ていくと、いくつかのサイクルに分解されることが分
かる	
  
	
  
	
  
サイクル構造:	
  
(A,T,D,O,J,Q)(B,M,Y,V,Z,X)(C,W,I,K,F,P)(E,R,H,S,U,N)
(G)(L)	
  
	
  
このサイクルはエニグマを解読する上で重要な性
質を持つ	
  
ABCDEFGHIJKLMNOPQRSTUVWXYZ
TMWORPGSKQFLYEJCAHUDNZIBVX
繰り返し文字の対応関係と置換	
•  ある日のエニグマ機設定における、1文字目
の平文⇒暗号の置換をA、同様に2文字目以
降B,C,D,E,Fとする	
  
•  暗号文の1文字目と4文字目の対応関係は、	
  
    の置換で表せる	
  
– エニグマの対称性からこれはADに等しい	
  
•  同様に2文字目と5文字目はBE、3文字目と6
文字目はCFの置換と等しい	
  
A 1
D
レイェフスキの定理	
•  要素数の等しい2つの置換XとYをサイクル構造
で表したとき、全てのサイクルが互換(要素数2
のサイクル)であるならば、XYをサイクル構造で
表した場合、同じ要素数のサイクルの数は偶
数である	
  
•  逆もまた成り立つ	
  
•  例	
  
X=(A,D)(B,E)(C,F)	
  Y=(A,E)(B,F)(C,D)のとき	
  
XY=(A,C,B)(D,E,F)	
  :要素数3のサイクル☓2	
  
原文を参照したい人は	
  h1p://chc60.fgcu.edu/images/ar:cles/rejewski.pdf	
  
証明概略	
Xの任意の要素a1を起点として、順にX,Yを適用し
て、以下のような順列	
  
を得ることができる	
  
a1 a3 a5 ... a2k 3 a2k 1
a2 a4 a6 ... a2k 2 a2k
X	
 X	
 X	
 X	
 X	
Y	
a2 = X(a1), a3 = Y (a2)
a2k = X(a2k 1), a1 = Y (a2k)
...
証明概略(続)	
この図から、XY=Kとすると、	
  
	
  
	
  
なので長さkの                と	
  
              の2つのサイクルはKを	
  
構成する⇒同じ要素数のサイクルが常にペアで存
在	
  
K(a1) = a3, K(a3) = a5, ...
K(a2) = a2k, K(a4) = a2, ...
a1 a3 a5 ... a2k 3 a2k 1
a2 a4 a6 ... a2k 2 a2k
X	
 X	
 X	
 X	
 X	
Y	
K K K KK
KK K K KK
K
(a1, a3, ..., a2k 3, a2k 1)
(a2, a4, ..., a2k 2, a2k)
レイェフスキの定理(続)	
•  この証明から新たに次の2つの性質が導かれ
る	
  
– XまたはYのある互換に属する文字は、XYにおいて
は同じ長さの異なるサイクルに属する	
  
– XYにおいて、同じ長さの異なるサイクルに属する2
つの文字がXまたはYの互換であったならば、その
両隣(片方は右隣・もう片方は左隣)もXまたはYの
互換である	
  
•  つまり、互換のみから構成されるXとYの積XYが
既知であるならば、そこからXとYの候補を絞り
込むことができる
暗号化されたメッセージ鍵のサンプル	
AXP AVC .. IOV NKZ .. HSA PYT .. PPZ LEX
FZD YQO .. IZL NQL .. NNQ CMA .. GUH BIS
FGT YHD .. KDY GNV .. NBJ COQ .. GOI BKK
MIW MRI .. VWG EZG .. SYX SJB .. TVB KFM
DJG UDG .. OJN QDE .. SNH SMS .. TLI KPK
LNK TMF .. ZAO RXJ .. SXV SVZ .. TYO KJJ
XKN JAE .. CTL OUL .. ERS XWU .. WHJ WBQ
BHG DBG .. CMM OTY .. EAA XXT .. JQR ISH
RZU ZQN .. UKM HAY .. YCE FGR .. JEY ICV
RTC ZUW .. QFF VLP .. PII LRK .. JCE IGP
Source:	
  h1p://www.codesandciphers.org.uk/virtualbp/poles/cyclom.htm	
  
各字目の対応関係から	
  
AD=(LTKGBDUHP)(XJINCOQVE)(FY)(RZ)(A)(M)(S)(W)	
  	
  
BE=(XVFLPECGHBOKA)(ZQSYJDNMTUIRW)	
  
CF=(PCWIKF)(DOJQAT)(NERHSU)(VZXBMY)(L)(G)	
  
を得る。	
  
	
  
先のレイェフスキの定理から、A,B,C,D,E,Fそれぞれ
の候補を絞り込むことができて、	
  
(A)(M) (FY) (LTKGBDUHP)


(S)(W) (ZR) (EVQOCNIJX)
ADの例)	
Aのペアになる
候補がM,S,W	
  
残り2つも	
  
ペアになる	
(F,Z)(Y,R)と(F,R)(Y,Z)2つの可能
性がある	
(L,E)がAに含まれると仮定すると、
Aには他に(T,V)(K,Q)…(P,X)が含ま
れる。全部で9通りの可能性	
  
A,Dの取りうる
可能性は
3*2*9の	
  
54通り
A〜Fの特定	
•  A〜Fの候補から1つに絞り込むにはどうする
か?	
  
– 当時(1932年)のドイツ軍の暗号手順の弱点を突く	
  
– 送信者が自由に決められるメッセージ鍵に
は、”AAA”や”ABC”など簡単に特定できる文字列が
数多く使われていた	
  
– “Whenever	
  there	
  is	
  arbitrariness,	
  there	
  is	
  also	
  a	
  
certain	
  regularity.	
  There	
  is	
  no	
  avoiding	
  it.”	
  -­‐	
  Marian	
  
Rejewski	
  
メッセージ鍵の推測	
•  暗号化されたメッセージ鍵でSYX	
  SJBが最も頻繁
に使用されているとして、これをAAA	
  AAAと仮定	
  
•  この仮説を推し進めて、他にもBBBやABCなどの
キーが現れてくれば、最初の仮説は正しかった
と分かる	
  
AD=(LTKGBDUHP)(XJINCOQVE)(FY)(RZ)(A)(M)(S)(W)	
  	
  
	
  
BE=(XVFLPECGHBOKA)(ZQSYJDNMTUIRW)	
  
	
  
CF=(PCWIKF)(DOJQAT)(NERHSU)(VZXBMY)(L)(G	
  
	
  
AとDには(A,S)が含まれることが確定	
Bに(A,Y)が含まれることが確定するので、他の互換も全て一意に定まる	
  
Cに(A,X)が含まれることにより、C,Fに含まれる6つの互換が定まる
以上の手順でA〜Fを求めることができた	
  
	
  
A=(A,S)(B,N)(C,G)(D,I)(E,P)(F,R)(H,X)(J,U)(K,O)(L,V)(M,W)(Q,T)(Y,Z)	
  
B=(A,Y)(B,N)(C,U)(D,O)(E,I)(F,Z)(G,T)(H,M)(J,K)(L,W)(P,R)(Q,V)(S,X)	
  
C=(A,X)(B,Q)(C,H)(D,V)(E,I)(F,U)(G,L)(J,M)(K,N)(O,Y)(P,S)(R,W)(T,Z)	
  
D=(A,S)(B,C)(D,N)(E,L)(F,Z)(G,O)(H,J)(I,U)(K,Q)(M,W)(P,X)(R,Y)(T,V)	
  
E=(A,J)(B,M)(C,I)(D,K)(E,R)(F,Q)(G,U)(H,T)(L,Z)(N,O)(P,W)(S,V)(X,Y)	
  
F=(A,B)(C,S)(D,Z)(E,K)(F,N)(G,L)(H,W)(I,R)(J,Y)(M,Q)(O,V)(P,U)(T,X)	
  
	
  
A〜Fを定式化する	
  
– 左・中央・右ローターの(メッセージが始まる前の
ローター位置における)置換をそれぞれL,M,Nと置く	
  
– リフレクタの置換をR、プラグボードの置換をSと置く	
  
– Pは1文字進めるだけの置換(A,B,C,…,Y,Z)を表す	
A = SPNP 1
MLRL 1
M 1
PN 1
P 1
S 1
B = SP2
NP 2
MLRL 1
M 1
P2
N 1
P 2
S 1
E = SP5
NP 5
MLRL 1
M 1
P5
N 1
P 5
S 1
F = SP6
NP 6
MLRL 1
M 1
P6
N 1
P 6
S 1
...............
              で共通項を置き換えると、	
Q = MLRL 1
M 1
A = SPNP 1
QPN 1
P 1
S 1
B = SP2
NP 2
QP2
N 1
P 2
S 1
F = SP6
NP 6
QP6
N 1
P 6
S 1
...............
•  S,N,Qの3つの変数(置換)が未知で、このまま
解くのは厳しい	
  
•  しかし丁度いいタイミングでレイェフスキの手
元にドイツ軍の日鍵のデータが届く	
  
⇒プラグボード配列Sが既知となった	
  
残る未知数はNとQ Qを消去することを考える	
  
既知のPとSを左辺に追い出し、U〜Zと置く	
...............
Z = P 6
S 1
FSP6
= NP 6
QP6
N 1
V = P 2
S 1
BSP2
= NP 2
QP2
N 1
U = P 1
S 1
ASP = NP 1
QPN 1
UV = NP 1
(QP 1
QP)PN 1
V W = NP 2
(QP 1
QP)P2
N 1
WX = NP 3
(QP 1
QP)P3
N 1
XY = NP 4
(QP 1
QP)P4
N 1
Y Z = NP 5
(QP 1
QP)P5
N 1
各値の積を取ると、
共通項       を消去して以下の式を得る	
QP 1
QP
V W = NP 1
N 1
(UV )NPN 1
WX = NP 1
N 1
(V W)NPN 1
XY = NP 1
N 1
(WX)NPN 1
Y Z = NP 1
N 1
(XY )NPN 1
G = T 1
HT         という形の変換が持つ性質を利用
して、      を一意に定めることができる	
  
      	
  
NPN 1
NPN 1
置換の共役性について	
置換GとHの間に、ある置換Tが存在して	
  
	
  
という関係が成り立つとき	
  
•  置換Gを得るためには、置換Hの中の各文字
をTで置き換えてあげればよい	
  
•  GとHのサイクル構造は一致する	
  
•  Tが未知の場合、H・G間でサイクル構造を保
持する置換を考えればよい	
  
(群論の世界ではこの関係を共役という)	
G = T 1
HT
例	
UV	
  =	
  (A,O,J,P,Z,K,I)(B,G,T,F,Y,R)(C,E,W,V,H,S,D)(L,X,U,M,N,Q)	
  
VW	
  =	
  (A,L,E,J,V,X)(B,Q,R,D,Y,Z,H)(C,O,T,W,G,I)(F,U,K,S,N,P,M)	
  
WX	
  =	
  (A,O,M,Y,W,N,T)(B,S,R,C,U,I)(D,J,G,E,Z,L,P)(F,H,K,X,Q,V)	
  
XY	
  =	
  (A,D,M,C,G,R)(B,P,I,N,Z,S,V)(E,H,O,F,J,Y)(K,T,L,Q,W,X,U)	
  
YZ	
  =	
  (A,S,L,B,D,K)(C,O,M,X,I,G,Q)(E,U,Z,T,H,V)(F,W,P,Y,R,J,N)	
これらのサイクル構造を保持しながら、UV	
  =>	
  VW	
  =>	
  VWと
置き換えていく置換を考えれば、      を一意に定める
ことができる	
      が求まれば、同様の方法でNの候補を求められ
る(候補は26個あり、ローターの回転ごとにずれているだけ
で実質的に違いはない)	
NPN 1
NPN 1
ローター配線の解明 	
  	
•  こうして右ローターNの配線を解明できた	
  
•  当時ドイツ軍は四半期に一度ローターの配列
を変更していたが、レイェフスキの手元には、
1932年9月と10月の日鍵一覧があった	
  
– つまり、異なる2つのローター配線を解明できた	
  
– 2つのローター配線が既知になったことにより、残
り1つのローター配線とリフレクタの配線は簡単
に計算できる(と、レイェフスキは書いているが詳
細な記述なし・未検証)	
  
ローター配線の解明後	
•  傍受した暗号文と日鍵からエニグマの内部配
線を解明できた	
  
•  今度は日鍵が不明な暗号文から日鍵を割り
出す必要がある	
  
•  レイェフスキは膨大なプラグボードの設定を
無効化する方法を考えた	
  
特性シート	
•  AD,BE,CFのサイクル構造(特性”characteris:c”と
呼ばれる)はプラグボードの設定に依存しないと
いう性質を利用	
  
•  あらかじめサイクルの構造をキーにして、ロー
ターの設定を網羅した表を用意しておき、それと
照らし合わせることでロータ設定を絞り込む	
  
	
  
例	
AD=(LTKGBDUHP)(XJINCOQVE)(FY)(RZ)(A)(M)(S)(W)	
  	
  
BE=(XVFLPECGHBOKA)(ZQSYJDNMTUIRW)	
  	
  
CF=(PCWIKF)(DOJQAT)(NERHSU)(VZXBMY)(L)(G)	
  
のとき各サイクルの構造は [9,9,2,2,1,1,1,1][13,13]
[6,6,6,6,1,1]と表せる)	
  
ポーランドその後	
•  レイェフスキらの成果(軍事用エニグマの複
製含む)は、1939年にイギリスとフランスに引
き継がれた	
  
•  当時イギリス・フランスは軍事用エニグマの配
線すら解明できておらず、ポーランドの成果
なしではその後のドイツ暗号解読に至ってい
なかったことも考えられる	
  
イギリスによるエニグマ解読	
  
チューリング・ボンベの仕組み
ボンベ誕生の背景	
•  ポーランドは「メッセージ鍵は二度暗号化され
る」という事実を突き、暗号解読に成功した	
  
•  しかし、いずれドイツ側もこの弱点に気付き、
手順が改善されるだろうという予測もあった	
  
•  メッセージ鍵の弱点に頼らずに、暗号を解読
する方法を模索していた	
  
基本的なアイデア	
•  ローターの設定ごとに、プラグボードのペアリ
ングの推論を行い、矛盾のある設定を除外し
ていく	
  
– 例えば、プラグボードでMとAがペアになっている
という仮定からMとSがペアになると推論される場
合、ある1文字に対してペアになる文字は高々1
文字であるという原則に反する	
  
•  上記の推論を行うためにクリブ(暗号文と平
文の対応が分かっている箇所)が必要になる
クリブ	
•  メッセージに頻繁に現れる定型句などに注目す
る	
  
– Keine	
  Besondere	
  Ereignisse(報告事項なし)、
Vorhersagebereich	
  Sieben(第7区の天気予報)など	
  
メニュー	
•  クリブの平文・暗号文の対応関係をグラフ化
したもの	
  
•  初期のボンベは、この中に現れる「閉鎖ルー
プ」に着目した	
  
source:h1p://www.rutherfordjournal.org/ar:cle030108.html	
閉鎖ループ
推論の進め方	
•  ローター設定を固定し、SとBがプラグボードでペアに
なっていると仮定する	
  
=>Bを暗号化してZ=>ZとAがペア	
  
=>Zを暗号化してD=>….=>SとLがペア	
  
平文 D A S X I S T X E I N X	
暗号 V J A R E V E A D J E V	
最初の仮定(ローター
設定か、SとBがペアで
あることのいずれか)
が間違っていた	
矛盾!	
B L D D 	
Z C Z C
Z C Z C 	
B L D D 	
初期ボンベの仕組み	
•  プラグボードの効果は打ち消し合うので無視できる	
  
•  プラグボード無しで、クリブの文字位置に応じてローター
位置を進めた複数の擬似エニグマ回路を直列につなぐ	
  
•  最初にペアになっていると仮定した文字を突っこみ、最
初と最後に矛盾があるかどうかだけを見ればよい	
  
擬似	
  
エニグマ	
  
(AAA)	
プラグ無し	
SとBがプラグ結線さ
れており、初期ロー
ター位置をAAAとした
場合	
 擬似	
  
エニグマ	
  
(AAD)	
擬似	
  
エニグマ	
  
(AAF)	
擬似	
  
エニグマ	
  
(AAJ)	
矛盾
初期ボンベの仕組み(続)	
•  矛盾があれば次のプラグボードのペアの仮
説(SとC,SとD,…)を試し、26文字全てでダメなら、
ローター位置を一つ進める	
  
•  これをローター配列・位置ごとに繰り返す	
  
•  矛盾が見つからない場合、ボンベは停止し、
その時点のローター設定・プラグボードペア
の仮説を示してくれる	
  
上段:エニグマ機
の右ローター	
中段:エニグマ機
の中央ローター	
下段:エニグマ機
の左ローター	
各列が1台の擬似的な
エニグマ機を構成する	
  
各列の出力が次の列の入力
となり、エニグマ機を直列につ
ないでいることになる
偽の停止(False	
  Stop)	
•  誤ったローター設定・プラグボード設定だが、
最初のプラグボードの仮定と矛盾のない結果
が得られしまう場合でも、ボンベは停止する	
  
•  ボンベ停止後、真偽を判定するために、手作
業で確認する必要があった	
  
•  初期ボンベでは偽の停止が起こる確率は1/26(!)	
  
チューリング・ボンベの高速化
初期チューリング・ボンベの問題点	
•  偽の停止が多く、解読までに時間がかかる	
  
•  閉鎖ループを得るためにある程度長いクリブ
が必要	
  
•  クリブが長いと途中でローターがターンオー
バーする可能性が高くなる	
  
– ボンベはターンオーバーを考慮していない	
  
フィードバック・ループ	
•  推論の結果導き出されたペアリング設定は、
最初の仮定と矛盾していたとしても、新たな	
  
偽の仮定として回路への入力に使える	
  
– 回路の出力と入力をつないでしまおう、という発想	
  
Z M C Z C 	
B  L D D 	
擬似	
  
エニグマ	
  
(AAA)	
擬似	
  
エニグマ	
  
(AAD)	
擬似	
  
エニグマ	
  
(AAF)	
擬似	
  
エニグマ	
  
(AAJ)	
	
  	
  …	
  	
  	
エニグマ機の対称性から、
偽の仮説からは偽の結
果しか導き出されず、双
方向的	
  
S/Bがペア=>S/Lがペア	
  
S/Lがペア=>S/Bがペア	
  
フィードバック・ループ(続)	
•  このフィードバック回路の入力と出力もまたサ
イクルをなす	
  
– 例	
  (B,L,K,O)(C,Z,A,I)…	
  
– この場合、S/Bのペアリング仮説を試せば、S/B,S/
L,S/K,S/Oの仮説が同時に偽であると証明できる	
  
フィードバック・ループ(続)	
•  2つ以上のループを持つクリブでは、このフィード
バック回路を2つ作ることができる	
  
–  例 フィードバック回路のサイクル	
  
1:	
  (ACKSMPT)(BREGOXQULHJNVW)(DYZ)(I)(F)	
  
2:	
  (AJUGFWQLRSCZMO)(BHDKY)(EV)(NTXP)(I)	
  
–  この場合最初の文字がAとペアになっているという仮説
を試すと、異なるサイクルを通して到達可能な文字が
広がり、結果として26個全ての文字に電流が到達する	
例は h1p://www.amazon.com/Gordon-­‐Welchman-­‐Bletchley-­‐Architect-­‐Intelligence/dp/1848327528 から抜粋	
  
フィードバック・ループ(続)	
•  ただしローター配列・位置が正しい場合、最初の
ペアリングの仮説が偽であれば、正しいペアリン
グの文字に行き着くことはない(もし正しい文字
に行き着いたとすると、エニグマの対称性から、
最初の偽の仮説も真ということになってしまう)	
  
•  よって正しいローター配列・位置では、以下の現
象が起こる	
  
–  最初のペアリング仮説が正しければ、その1文字だけ
に電流が疎通する	
  
–  正しくなければ、残りの25文字に電流が疎通する	
  
(ただし、偽の停止問題は依然起こりえる)	
  
Diagonal	
  Board(対角ボード)	
•  ループだけでなくメニュー全体を使う	
  
•  プラグボードの対称性を利用して、途中で導か
れるプラグボードの推論結果を別の箇所の入
力として使う	
  
ここでDとSがペアになるという
結果になった場合、別のSのペ
アとしてDを入力する
Diagonal	
  Board(対角ボード)(続)	
メニュー文字CがDとペ
アであるという結果	
  
⇒メニュー文字DはCと
ペアになっているはず	
メニューの文字	
入力(ペアリングの仮定)	
h1p://www.amazon.com/Gordon-­‐Welchman-­‐Bletchley-­‐Architect-­‐Intelligence/dp/1848327528	
  
Diagonal	
  Board(対角ボード)(続)	
•  これにより一つの仮定から到達できる文字の範
囲を大幅に広げられる(同時にスキャンできる数
が増えた)	
  
•  偽の停止が減り、少ないメニューでも暗号解読
が可能になった	
  
•  ループの存在しない(十分な長さのあるメニュー
であれば)暗号解読が可能になった	
Source:	
  “From	
  Bombe	
  ‘stops’	
  to	
  Enigma	
  keys”	
  	
  by	
  Frank	
  Carter	
  
各ローター配列ごとの“偽の停止“数の期待値
デモ	
•  ペアリング仮説の広がりを可視化したデモ
h1ps://github.com/thorikawa/PyEnigma	
P	
 V	
C	
A	
N	
D	
E	
R	
Y	
L	
J	
Z	
 O	
H	
K	
G	
T	
W	
2	
 9	
18	
10	
12	
 11	
14	
5	
13	
4	
15	
20	
16,19	
7	
17	
 3	
8
今日話せなかったこと 	
  	
•  エニグマの日鍵を割り出すための「グリル法」	
  
•  ドイツの暗号送信手順が変わった後にポーラ
ンドが暗号解読のために発明した「(ポーラン
ドの)ボンベ」と「ザイガルスキのシート」	
  
•  チューリング・ボンベの前段階としてローター
配列を絞り込むための「バンブリスムス」	
  
•  「イミテーション・ゲーム」の色々	
  
– ちゃんと分かってから見ると、色々おかしな興味
深い点がたくさんあります
ありがとうございました

More Related Content

What's hot

実践多クラス分類 Kaggle Ottoから学んだこと
実践多クラス分類 Kaggle Ottoから学んだこと実践多クラス分類 Kaggle Ottoから学んだこと
実践多クラス分類 Kaggle Ottoから学んだことnishio
 
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性Hibiki Yamashiro
 
PRML上巻勉強会 at 東京大学 資料 第1章前半
PRML上巻勉強会 at 東京大学 資料 第1章前半PRML上巻勉強会 at 東京大学 資料 第1章前半
PRML上巻勉強会 at 東京大学 資料 第1章前半Ohsawa Goodfellow
 
【解説】 一般逆行列
【解説】 一般逆行列【解説】 一般逆行列
【解説】 一般逆行列Kenjiro Sugimoto
 
プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列
プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列
プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列Taketo Sano
 
逐次モンテカルロ法の基礎
逐次モンテカルロ法の基礎逐次モンテカルロ法の基礎
逐次モンテカルロ法の基礎ShoutoYonekura
 
POMDP下での強化学習の基礎と応用
POMDP下での強化学習の基礎と応用POMDP下での強化学習の基礎と応用
POMDP下での強化学習の基礎と応用Yasunori Ozaki
 
Trust Region Policy Optimization
Trust Region Policy OptimizationTrust Region Policy Optimization
Trust Region Policy Optimizationmooopan
 
ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定Akira Masuda
 
SMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するSMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するsleepy_yoshi
 
レプリカ交換モンテカルロ法で乱数の生成
レプリカ交換モンテカルロ法で乱数の生成レプリカ交換モンテカルロ法で乱数の生成
レプリカ交換モンテカルロ法で乱数の生成Nagi Teramo
 
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介Preferred Networks
 
[DL輪読会]Neural Ordinary Differential Equations
[DL輪読会]Neural Ordinary Differential Equations[DL輪読会]Neural Ordinary Differential Equations
[DL輪読会]Neural Ordinary Differential EquationsDeep Learning JP
 
スペクトラルグラフ理論入門
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門irrrrr
 
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法Takuya Akiba
 

What's hot (20)

実践多クラス分類 Kaggle Ottoから学んだこと
実践多クラス分類 Kaggle Ottoから学んだこと実践多クラス分類 Kaggle Ottoから学んだこと
実践多クラス分類 Kaggle Ottoから学んだこと
 
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
 
PRML11章
PRML11章PRML11章
PRML11章
 
直交領域探索
直交領域探索直交領域探索
直交領域探索
 
PRML上巻勉強会 at 東京大学 資料 第1章前半
PRML上巻勉強会 at 東京大学 資料 第1章前半PRML上巻勉強会 at 東京大学 資料 第1章前半
PRML上巻勉強会 at 東京大学 資料 第1章前半
 
蟻本輪講 データ構造
蟻本輪講 データ構造蟻本輪講 データ構造
蟻本輪講 データ構造
 
【解説】 一般逆行列
【解説】 一般逆行列【解説】 一般逆行列
【解説】 一般逆行列
 
プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列
プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列
プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列
 
逐次モンテカルロ法の基礎
逐次モンテカルロ法の基礎逐次モンテカルロ法の基礎
逐次モンテカルロ法の基礎
 
POMDP下での強化学習の基礎と応用
POMDP下での強化学習の基礎と応用POMDP下での強化学習の基礎と応用
POMDP下での強化学習の基礎と応用
 
Trust Region Policy Optimization
Trust Region Policy OptimizationTrust Region Policy Optimization
Trust Region Policy Optimization
 
ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定
 
SMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するSMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装する
 
π計算
π計算π計算
π計算
 
レプリカ交換モンテカルロ法で乱数の生成
レプリカ交換モンテカルロ法で乱数の生成レプリカ交換モンテカルロ法で乱数の生成
レプリカ交換モンテカルロ法で乱数の生成
 
ドロネー三角形分割
ドロネー三角形分割ドロネー三角形分割
ドロネー三角形分割
 
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
 
[DL輪読会]Neural Ordinary Differential Equations
[DL輪読会]Neural Ordinary Differential Equations[DL輪読会]Neural Ordinary Differential Equations
[DL輪読会]Neural Ordinary Differential Equations
 
スペクトラルグラフ理論入門
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門
 
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
 

Viewers also liked

「時計の世界の整数論」第2回プログラマのための数学勉強会 #maths4pg
「時計の世界の整数論」第2回プログラマのための数学勉強会 #maths4pg「時計の世界の整数論」第2回プログラマのための数学勉強会 #maths4pg
「時計の世界の整数論」第2回プログラマのための数学勉強会 #maths4pgJunpei Tsuji
 
フーリエ変換と画像圧縮の仕組み
フーリエ変換と画像圧縮の仕組みフーリエ変換と画像圧縮の仕組み
フーリエ変換と画像圧縮の仕組みyuichi takeda
 
証明プログラミング入門2
証明プログラミング入門2証明プログラミング入門2
証明プログラミング入門2Kyoko Kadowaki
 
20170920_FinSumWorkshop_ZaisanNet
20170920_FinSumWorkshop_ZaisanNet20170920_FinSumWorkshop_ZaisanNet
20170920_FinSumWorkshop_ZaisanNetShirabe Ogino
 
為替と株の予測の話
為替と株の予測の話為替と株の予測の話
為替と株の予測の話Kentaro Imajo
 
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介Masayuki Ozawa
 
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017Kuniteru Asami
 
Deep Learningを用いたロボット制御
Deep Learningを用いたロボット制御Deep Learningを用いたロボット制御
Deep Learningを用いたロボット制御Ryosuke Okuta
 
基底変換、固有値・固有ベクトル、そしてその先
基底変換、固有値・固有ベクトル、そしてその先基底変換、固有値・固有ベクトル、そしてその先
基底変換、固有値・固有ベクトル、そしてその先Taketo Sano
 
今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシンShinya Shimizu
 

Viewers also liked (11)

「時計の世界の整数論」第2回プログラマのための数学勉強会 #maths4pg
「時計の世界の整数論」第2回プログラマのための数学勉強会 #maths4pg「時計の世界の整数論」第2回プログラマのための数学勉強会 #maths4pg
「時計の世界の整数論」第2回プログラマのための数学勉強会 #maths4pg
 
フーリエ変換と画像圧縮の仕組み
フーリエ変換と画像圧縮の仕組みフーリエ変換と画像圧縮の仕組み
フーリエ変換と画像圧縮の仕組み
 
証明プログラミング入門2
証明プログラミング入門2証明プログラミング入門2
証明プログラミング入門2
 
20170920_FinSumWorkshop_ZaisanNet
20170920_FinSumWorkshop_ZaisanNet20170920_FinSumWorkshop_ZaisanNet
20170920_FinSumWorkshop_ZaisanNet
 
為替と株の予測の話
為替と株の予測の話為替と株の予測の話
為替と株の予測の話
 
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介
Dal001 sql server 2017 事始め ~ 進化を続ける sql server の最新情報を一挙紹介
 
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
 
Deep Learningを用いたロボット制御
Deep Learningを用いたロボット制御Deep Learningを用いたロボット制御
Deep Learningを用いたロボット制御
 
基底変換、固有値・固有ベクトル、そしてその先
基底変換、固有値・固有ベクトル、そしてその先基底変換、固有値・固有ベクトル、そしてその先
基底変換、固有値・固有ベクトル、そしてその先
 
[Japan Tech summit 2017] SEC 003
[Japan Tech summit 2017] SEC 003[Japan Tech summit 2017] SEC 003
[Japan Tech summit 2017] SEC 003
 
今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン
 

More from Takahiro (Poly) Horikawa

The Land of Oz 20191109 Magic Leap x docomo meetup
The Land of Oz 20191109 Magic Leap x docomo meetupThe Land of Oz 20191109 Magic Leap x docomo meetup
The Land of Oz 20191109 Magic Leap x docomo meetupTakahiro (Poly) Horikawa
 
コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)
コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM) コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)
コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM) Takahiro (Poly) Horikawa
 
加速度センサーで円運動を検出する
加速度センサーで円運動を検出する加速度センサーで円運動を検出する
加速度センサーで円運動を検出するTakahiro (Poly) Horikawa
 
第10回Mozilla拡張機能勉強会-FireMobileSimulatorについて
第10回Mozilla拡張機能勉強会-FireMobileSimulatorについて第10回Mozilla拡張機能勉強会-FireMobileSimulatorについて
第10回Mozilla拡張機能勉強会-FireMobileSimulatorについてTakahiro (Poly) Horikawa
 

More from Takahiro (Poly) Horikawa (10)

The Land of Oz 20191109 Magic Leap x docomo meetup
The Land of Oz 20191109 Magic Leap x docomo meetupThe Land of Oz 20191109 Magic Leap x docomo meetup
The Land of Oz 20191109 Magic Leap x docomo meetup
 
生命を記述する数学
生命を記述する数学生命を記述する数学
生命を記述する数学
 
Android Wear Development
Android Wear DevelopmentAndroid Wear Development
Android Wear Development
 
コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)
コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM) コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)
コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)
 
Android開発の基礎_20101218
Android開発の基礎_20101218Android開発の基礎_20101218
Android開発の基礎_20101218
 
加速度センサーで円運動を検出する
加速度センサーで円運動を検出する加速度センサーで円運動を検出する
加速度センサーで円運動を検出する
 
PRML chapter5
PRML chapter5PRML chapter5
PRML chapter5
 
PRML chapter7
PRML chapter7PRML chapter7
PRML chapter7
 
ESPer2008-FireMobileSimulatorについて
ESPer2008-FireMobileSimulatorについてESPer2008-FireMobileSimulatorについて
ESPer2008-FireMobileSimulatorについて
 
第10回Mozilla拡張機能勉強会-FireMobileSimulatorについて
第10回Mozilla拡張機能勉強会-FireMobileSimulatorについて第10回Mozilla拡張機能勉強会-FireMobileSimulatorについて
第10回Mozilla拡張機能勉強会-FireMobileSimulatorについて
 

Recently uploaded

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 

Recently uploaded (8)

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 

エニグマ暗号とは何だったのか