TakJCR’s blog

programmingや毎日の日記として書いていこうと思います

今日の進捗8/26

サマーウォーズとセキュリティ

少年誌のような三原則?「友情」、「努力」、「勝利」が詰まっている映画
まさしく男のロマン
また、サマーウォーズのOZのセキュリティがRSA暗号だと予想されているようだが
情弱な私にはよくわからない。。(´;ω;`)
急ですが、ここでRSA暗号についてはなしてしていきたい
まず歴史から言うと1977年MIT(マサチューセッツ工科大学)にいた3人の研究者、リベスト、シャミア、エィドルマンによって開発された。それぞれの頭文字からRSA暗号と呼ぶ。

鍵生成

userは素数p,qを生成。n=pq, λ(n)=LCM(p-1, q-1)を計算する。LCMというのは最小公倍数である。
適当なe ∈ Zλ(n) (GCD(e, λ(n)) = 1)を定める。GCDというのは最大公約数である。
そして、d=1/e mod{λ(n)}、つまり、λ(n)がd×e–1を割り切るようにdを決定すればよい。
<秘密鍵> d (または、p, q)
<公開鍵> e, n

暗号化

c = m^e mod n   つまりmのe乗をnで割った余り

復号

m = c^d mod n   つまりcのd乗をnで割った余り

最後に

自分はRSA暗号については授業で習ったのだが、サマーウォーズの暗号がRSAだとかは全然わからない。
侘助のセリフ「そいつの開発者、俺だもん。」って言ってみたいですよね。。programmingの勉強しなきゃ

学習したこと

前項で「最後に」なんて書いてしまったけれど、今日学習したこともまとめたいと思います。
今日は、progateのrails 6の復習をしました。link_toの第三引数に「{method: "post"}」を追加することで、「post」として定義されているルーティングにマッチすることを忘れがちになるので注意したい。他にも
def
@user=User.new
end
と配列が空なのに、validates :name, {presence: true} が適応されないがちょっと疑問に残りました。
空の配列=nilではないのだろうか???