ちりもつもればミルキーウェイ

好奇心に可処分時間が奪われる

暗号

つくって理解するストリーム暗号 ChaCha20

はじめに Go 1.22 で math/rand に ChaCha8 実装が入ったらしい しかも math/rand/v2 トップレベルで利用されてる、かつシードがない math/rand でも使われるようになったらしい。一応議論を追った感じだと、暗号学的強度がある乱数をもとめてるのに math/ra…

すべての平文mに対してのRSAの証明

はじめに これは RSA完全理解 Advent Calendar の14日目の記事です 以前 p, qと互いに素なmでのRSAの証明 をやりましたが、今回はp, qと互いに素でないときも含めた証明をやろうと思います。 探しても と が互いに素でないときに言及する証明は少ないので、…

素のRSAの安全性の評価

はじめに これは RSA完全理解 Advent Calendar の11日目の記事です。 RSAの基本的なしくみがわかったところで、RSAの安全性がどの要素に依拠しているのか紹介しその困難性について紹介します。 RSA自体の困難性はおもに素因数分解の困難さに依拠しているので…

剰余環の逆元の探索とRSAの秘密鍵生成

はじめに これは RSA完全理解 Advent Calendar の10日目の記事です いままででユークリッド互除法でベズーの等式の解が探索できることと、剰余環とかの言葉の意味がわかるようになりました。 ここまでくると剰余環の逆元を求める処理の説明ができるのでやっ…

RSAによるブラインド署名

はじめに これは RSA完全理解 Advent Calendar の5日目の記事です RSAが署名につかえるよーみたいな話をやったので、今回はブラインド署名について話そうと思います なお今回紹介するブラインド署名の仕組みはある程度簡略化しています。実際にはRSA署名自体…

RSAによる署名

はじめに これは RSA完全理解 Advent Calendar の4日目の記事です 昨日はRSAの操作について説明したので、今回はそれをつかった署名について触れたいと思います なお、今回紹介する署名は実際の方式から大幅に簡略化しています。現実には各種攻撃を防ぐため…

RSAの暗号化/復号操作とその証明

はじめに これは RSA完全理解 Advent Calendar の3日目の記事です フェルマーの小定理の証明 をやったので、それを使ってRSAの暗号化/復号が成り立つ証明をやります なお、秘密鍵の生成方法についてはベズーの等式や拡張ユークリッド互除法の知識が必要なの…

フェルマーの小定理とその証明

はじめに これは RSA完全理解 Advent Calendar の2日目の記事です(遅刻した) なんでRSAの話なのにいかにも数学っぽい定理の証明をやるかというと、 RSAの暗号化/復号の操作の証明にはこいつをつかうからです なんならそのうちベズーの等式とかも証明しないと…

RSA完全理解 Advent Calendar について

はじめに これは RSA完全理解 Advent Calendar の1日目の記事だぞ 以前RSAの証明とかざっとよんで社内勉強会で以下のスライドを作った speakerdeck.com このスライドの内容は RSAの暗号化/復号の操作の説明 それで復号できる証明 素因数分解の困難性について…

ブロック暗号のCBCモードについてざっと調べた

はじめに 以前EBCモードかいて、CBCについて興味が出たので調べてみた そのうち実装もしてみたいけど今回はとりあえずやってることとかを理解するに留める CBCってなにやってるの ブロック暗号の暗号利用モードは、与えられたブロックをどう暗号化処理に引き…

Goでブロック暗号のECB暗号モード書いた

はじめに 暗号周りがなんとなく気になって、一番簡単そうな暗号利用モードのECB実装するかーという気持ちになったのでやった 色々調べたら ちょうどGoには実装されてないっぽく 、かつ単にブロックを順番に暗号化するだけでクソ単純でとっつきやすそうなので…