カタクリ

2017年3月20日池田山公園

ここ2、3年見逃していた池田山公園のカタクリ。写真を探してみると2014年以来のようだ。

前日の疲労回復がてらの散歩。世の中はすっかり春。

桜の開花もあと一息。

月例奥多摩


2017年3月19日陣馬山にて

今回は陣馬山。相模湖から登る。気温が上がってのどかな山行。霞がかかっているような空で富士山はまったく見えず。
今回は焼き網とシイタケ、マッシュルーム、パプリカ、ニンニク、炭火風味焼鳥、イワシみりん干しを持って行った。いい感じに焼けて旨い。スモークサーモンにクラッカーもいける。オクラのベーコン巻きを差し入れてもらって、これがまた網焼きで絶品。シイタケ、マッシュルームは前日少し干していったのがみずみずしさ不足。クリームチーズを忘れて行ったのが今一歩。

メインは豪華鍋料理、ビールにワイン、ユズ酒、デザートにイチゴ、山で挽いたコーヒーをご馳走になって、大満足で藤野に下る。

朝は、特快が運休になるなど交通の乱れがあって10分遅れで集合。帰路は温泉行きのバスの時間を逃して直帰。明るいうちに帰宅した。良い季節になった。

月例奥多摩


2017年2月12日日の出山にて

久しぶりに参加のピクニック企画の山行。YamaCaféのメンバが一緒でクレームブリシュレをご馳走になる。 美味しいコーヒー付き。


今回は焼き物を準備する予定が、前日に準備ができずご馳走になってしまった。

山は雪の季節。日向和田駅で、熊が出ているから気を付けるように言う方がいたが、まだ早かったようだ。

富士山方面だけ、ピンポイントで雲がかかっていたのがやや残念。つるつる温泉に下り、久しぶりにアルカリ泉を楽しんだ。

笹一忘年会


2016年12月24日お坊山より(右端が北岳)

笹子雁腹摺山から尾根伝いに米沢山、お坊山と歩き、尾根伝いに下って、笹一酒造へ。
前回と同じコース。毎回好天に恵まれるが、その分寒い。
2年ぶりの参加だったので風邪気味のところ少し無理をしてしまったかも。
石和温泉に連れて行ってもらい、ぬるい露天風呂で長湯をした。電車に乗っている間に湯冷めもしたのだろう。
日曜の予定はキャンセルしてしまった。

お坊山からの富士が輝いている。お坊山の方が笹子雁腹摺山より少し高いようだ。

皇居一周ラン

24日土曜日、久しぶりに皇居1周してきた。皇居ランナーが増えて渋滞するくらいになったのに閉口して行かなくなってしまっていた。シーズンの割りにはランナーが少なく、一時のブームは去ったのかもしれない。

いつ以来のことかと調べてみると、どうも2013年4月以来らしい。

朝飯前のランは今も続いている。この日は甘酒135kcalを飲んでから走った。20kmを特にシャリバテせずに走りきれている。

RSA暗号

法33でのべき乗の表。

この表を見るとRSA暗号の構成が分かりやすい。A列に平文が、2行にべき乗数を並べてある。交点には平文をべき乗した値の、33を法として計算した値が入っている。21列目に平文が現れるのが暗号、復号の原理。平文を3乗して暗号化し、暗号を7乗すると平文に戻ることになる。7乗して暗号化、暗号を3乗しても同じ。21の約数は1、3、7と21なのでこうなるが、1と21の組み合わせでは暗号ができない。11列目と31列目にも平文が現れるが、どちらも約数が1と11しかないので暗号にならない。

33は二つの素数3と11の積になっている。11乗、21乗と31乗は、(3-1)=2と(11-1)=10との公倍数10、20、30それぞれに1を足した11、21と31に由来する。

二つの素数p,qの積p*qを法とする。(p-1)と(q-1)の最小公倍数をL=lcm((p-1),(q-1))とする。n* L+1の約数のうち、1とその数を除く約数uと、u*v= n* L+1となるv,nを取ると、uとvが暗号鍵、復号鍵となる。

vとnとは、不定方程式u*v- n* L = 1の解なので、拡張ユークリッドの互除法で特異解v0, n0を求めることができ、一般解はv0+k*L, n0+k*uとなる。

P=3,q=11の場合、L=10。,u=3とすると3v-10n=1の特異解は、7,2なので、暗号鍵u=3の時、復号鍵はv=7と確認できる。この時n=2でべきは21になることも確認できる。一般解は、v=7+10*k,n=2+3*k。暗号鍵が3の時、17も復号鍵になる。この時のべきは51。

この表はexcelで作成しており、二つの素数をp,q、A列の平文x、2行のべきuとすると、交点の暗号はy=mod(x^u,p*q)で計算でき、mod(y^v,p*q)で復号できることになる。但し、x^u,y^vはすぐに大きな数になるので、u=10あたりから先はオーバーフローしてしまう。u,vを2進数で表現してx,x^2,x^4,x^8,x^16・・・の法を取った積を計算することでp*qの範囲の積に収まる。べきの小さな項から計算すれば前の計算結果が使えるので計算量も激減する。

この表はこちらのページにあったもの。数式で理解していたつもりのところが、実感できてよかった。証明はこちらのページのが分かりやすかった。あらすじは以下。
p*qより小さな正の数xが暗号化、復号化して、x=x^(u*v) mod(p*q) となる必要十分条件を考える。
変形して、x*(x^(u*v-1)-1)=0 mod(p*q)
すなわちx* (x^(u*v-1)-1)はp*qの倍数。ここでpとqは素数なのでpの倍数且つqの倍数となる。
x*(x^(u*v-1)-1)=0 mod(p) 且つx*(x^(u*v-1)-1)=0 mod(q) —(1)
ここでxがp,qのどちらかの倍数の時は自明。以下はxはp,qと素である場合を考える。
Xは0でなく、且つp,qの倍数でないので、これはxで割っても成立する。
両式を変形して、x^(u*v-1)=1 mod(p) 且つ x^(u*v-1)=1 mod(q)
xとp,qが素なので、フェルマーの小定理(aとpが素な時、a^(p-1)=1 mod(p))より、
u*v-1=mod(p-1) 且つ u*v-1=mod(q-1)
p,qとそれぞれ素なk,lについて
u*v-1=k(p-1), u*v-1=l(q-1)
の時、(1)の両式が成立する。
L=lcm((p-1),(q-1))とすると、u*v-1=0 mod(L) が必要十分条件となる。
すなわち、u*v=n*L+1となれば良い。

復号鍵17のケース(普通7とするところ)をMaximaで計算すると、次のような感じ。15を3乗して33で法を取り暗号9を得、17乗して法を取って復号化して15に戻る。拡張ユークリッド互除法の仕様の関係で、k=1のところ、2のように見える。

(%i21)

p:3;
q:11;
factor((p-1)*(q-1));
load(gcdex);



(%i43)

u:3;
igcdex(u,lcm((p-1),(q-1)));



(%i45)

v:%[1]+2*lcm((p-1),(q-1));
x:15;
y:mod(x^u,p*q);
mod(y^v,p*q);


桜田門まで

2016年12月3日桜田門から

東京タワーまでのランのつもりが、気持ちが良いので、桜田門まで足を伸ばした。お堀の水は満杯。久しぶりに見たのだが、今はこんなに深くしているのだろうか。