« BlogのFaceBook連携で悩む | トップページ | 公募デザインで悩む »

2015年8月 2日 (日)

ノイマン中間ニ乗法で悩む

トム・クランシーの「デッド・オア・アライブ」という小説を読んでいたのだが、その中で気になる記述があった。簡略化された暗号方式として「フォン・ノイマンの中間ニ乗法」というのが紹介されていたのだ。 その方式はこういうものだ。

1) 2桁の数字を用意する。
2) 2桁の数字の中に「0」がある場合には「1」に置き換える。
3) 2桁の数字をニ乗する。
4) ニ乗されてできた4桁の数字の中央2桁を取り出して、次の2桁とする。
5) 2)へ戻る。

ということだったと思うのだが、たしか「デッド・オア・アライブ」の文庫本第3巻を4回(飛ばし飛ばしに)読み返したが発見できない。

なので、上記が正しいとしてそのまま真に受けると、どうもこれは簡単にリミットサイクルに入ってしまうような気がする。実際に計算してみると、例えば「57」を二乗すると「3249」でこれを中抜きすると「24」だが、これを二乗すると「0576」だからまた「57」になってしまう。

もう一つのリミットサイクルが15を最小値、96を最大値とするリミットサイクルで、考えられるすべての組み合わせでリミットサイクルに入る様子を調べてみたらこんなふうになった。リミットサイクル(つまり繰り返し)になってしまっている部分を赤くした。


11 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
13 16 25 62 84 15 22 48 31 96 21 44 93 64 19 36 29 84
14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
15 22 48 31 96 21 44 93 64 19 36 29 84 15
16 25 62 84 15 22 48 31 96 21 44 93 64 19 36 29 84
17 28 78 18 32 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
18 32 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
19 36 29 84 15 22 48 31 96 21 44 93 64 19
21 44 93 64 19 36 29 84 15 22 48 31 96 21
22 48 31 96 21 44 93 64 19 36 29 84 15 22
23 52 71 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
24 57 24
25 62 84 15 22 48 31 96 21 44 93 64 19 36 29 84
26 67 48 31 96 21 44 93 64 19 36 29 84 15 22 48
27 72 18 32 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
28 78 18 32 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
29 84 15 22 48 31 96 21 44 93 64 19 36 29
31 96 21 44 93 64 19 36 29 84 15 22 48 31
32 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
33 18 32 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
34 15 22 48 31 96 21 44 93 64 19 36 29 84 15
35 22 48 31 96 21 44 93 64 19 36 29 84 15 22
36 29 84 15 22 48 31 96 21 44 93 64 19 36
37 36 29 84 15 22 48 31 96 21 44 93 64 19 36
38 44 93 64 19 36 29 84 15 22 48 31 96 21 44
39 52 71 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
41 68 62 84 15 22 48 31 96 21 44 93 64 19 36 29 84
42 76 77 92 46 11 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
43 84 15 22 48 31 96 21 44 93 64 19 36 29 84
44 93 64 19 36 29 84 15 22 48 31 96 21 44
45 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
46 11 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
47 21 44 93 64 19 36 29 84 15 22 48 31 96 21
48 31 96 21 44 93 64 19 36 29 84 15 22 48
49 41 68 62 84 15 22 48 31 96 21 44 93 64 19 36 29 84
51 61 72 18 32 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
52 71 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
53 81 56 13 16 25 62 84 15 22 48 31 96 21 44 93 64 19 36 29 84
54 91 28 78 18 32 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
55 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
56 13 16 25 62 84 15 22 48 31 96 21 44 93 64 19 36 29 84
57 24 57
58 36 29 84 15 22 48 31 96 21 44 93 64 19 36
59 48 31 96 21 44 93 64 19 36 29 84 15 22 48
61 72 18 32 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
62 84 15 22 48 31 96 21 44 93 64 19 36 29 84
63 96 21 44 93 64 19 36 29 84 15 22 48 31 96
64 19 36 29 84 15 22 48 31 96 21 44 93 64
65 22 48 31 96 21 44 93 64 19 36 29 84 15 22
66 35 22 48 31 96 21 44 93 64 19 36 29 84 15 22
67 48 31 96 21 44 93 64 19 36 29 84 15 22 48
68 62 84 15 22 48 31 96 21 44 93 64 19 36 29 84
69 76 77 92 46 11 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
71 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
72 18 32 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
73 32 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
74 47 21 44 93 64 19 36 29 84 15 22 48 31 96 21
75 62 84 15 22 48 31 96 21 44 93 64 19 36 29 84
76 77 92 46 11 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
77 92 46 11 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
78 18 32 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
79 24 57 24
81 56 13 16 25 62 84 15 22 48 31 96 21 44 93 64 19 36 29 84
82 72 18 32 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
83 88 74 47 21 44 93 64 19 36 29 84 15 22 48 31 96 21
84 15 22 48 31 96 21 44 93 64 19 36 29 84
85 22 48 31 96 21 44 93 64 19 36 29 84 15 22
86 39 52 71 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
87 56 13 16 25 62 84 15 22 48 31 96 21 44 93 64 19 36 29 84
88 74 47 21 44 93 64 19 36 29 84 15 22 48 31 96 21
89 92 46 11 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
91 28 78 18 32 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
92 46 11 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
93 64 19 36 29 84 15 22 48 31 96 21 44 93
94 83 88 74 47 21 44 93 64 19 36 29 84 15 22 48 31 96 21
95 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
96 21 44 93 64 19 36 29 84 15 22 48 31 96
97 41 68 62 84 15 22 48 31 96 21 44 93 64 19 36 29 84
98 61 72 18 32 12 14 19 36 29 84 15 22 48 31 96 21 44 93 64 19
99 81 56 13 16 25 62 84 15 22 48 31 96 21 44 93 64 19 36 29 84

  では、「0」を「1」にするのではなくて他の数字に置換するとどうなるかというと、データとしては作ってみたのだが、まだちゃんと解析していない。一見したところではそれほど変わらない感じではある。

まぁ、こんな簡単な手法ではうまくは行かないだろうなぁとは思ったが、それならそれで未熟な暗号技術はカオスな音楽に応用できるかもしれない。このデータでいろいろ遊んでみよう

|

« BlogのFaceBook連携で悩む | トップページ | 公募デザインで悩む »

パソコン・インターネット」カテゴリの記事

コメント

ノイマン、中間二乗法をネットでググって見たけどこのサイトしか出てきませんね。で暗号のアルゴリズムとしては意味が判らないし(chacha氏が完全に解説してるわけでない)、トムクランシーのホラなんじゃないかな?

投稿: ををつか | 2015年8月 4日 (火) 08時51分

「neuman middle square method」で検索するとたくさん出てきます。日本語のサイトもあって、

http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0137

では「平方採中法」と呼ばれています。

でも、これで4桁にしても多分リミットサイクルはそう大きくはならないんじゃないかな。

このサイトではゼロを置き換えることはしていませんが、掛け算ではゼロが増殖するので、ゼロ置換は有効だと思います。

投稿: PicksClicks | 2015年8月 4日 (火) 21時32分

ご教示、ありがとうございます、乱数の生成法ですね。

投稿: ををつか | 2015年8月 4日 (火) 22時26分

ゼロを「1」に置換する方法でリミットサイクルを計算してみました。数字列は計算された順番ではありませんが、それぞれグループ内でつながっています。

■9428:6115:1742:1959:4961:4582:4616:9947:8191:1924:1573:6516:1345:7117:2469:8871:3174:3932:6946:8376:4743
■3792
■3881:1621:6276
■4351:5188:8796:1619:7449:2272:9312:6211:6149:1191:5158:6614:5765:3411:4184:3696:8112:6349:2352:7753:8145:3198:7133:5319:2917:4876:9153:7774
■5519:8219:4593:2111:8259:4563:1956
■7955:2821:9581
■3224:6882:2385:8854:9398:2426:8848:4684:1971:2871:5314:3941:3933:3619

注目すべきは3972で、二乗すると14,379,264となり、その中間部がそのまま3972となります。

投稿: PicksClicks | 2015年8月 4日 (火) 23時22分

コメントを書く



(ウェブ上には掲載しません)




« BlogのFaceBook連携で悩む | トップページ | 公募デザインで悩む »