Cryptography
RSAの基本的な解説. 巨大な合成数の素因数分解が困難であることを安全性の根拠としたアルゴリズム. \( (p, q) \rightarrow N (= pq) \): 易しい \( N \rightarrow (p, q) \): 難しい [追記 (2019.09.27)] RSAが巨大な合成数の素因数分解が困難であることを安…
第4話に追記するには少々長く, また第5話として書くような内容でもない気がしたため番外編とした. 前回, 楕円曲線上でのデジタル署名(ECDSA)の解説をした. ECDSAでは, 署名にある適当な乱数\(k\)を使用するが, この\(k\)が乱数ではなく全て固定値として署名…
前回(第3話)までで基本的な楕円曲線の解説を終えた(多分). 本稿では, 楕円曲線を用いた署名アルゴリズムについて解説する. Elliptic Curve Digital Signature Algorithm 楕円曲線を使ったデジタル署名(DSA)のアルゴリズム. まずはデジタル署名とは何か, また…
前回の楕円曲線入門 (2)では曲線上の点のスカラー倍について, 群構造を持つことを示した. 第一話と合わせて, 楕円曲線における計算が可能になった. 本稿では, 前提となる数学知識などを踏まえながら, どのようにして楕円曲線が暗号として利用されるかを解説…
前回の楕円曲線入門では曲線上における演算について解説した. 今回は点のスカラー倍と群構造について解説する. スカラー倍 前回は足し算と2倍について解説したが, 任意の定数倍はどうすればいいだろうか. たとえば, Pの100倍である100Pを得るには2PにPを98回…
楕円曲線 暗号分野においてかなりの強度を持つとされている楕円曲線について紹介する. 楕円曲線は $$ \frac{x^{2}}{a^{2}} + \frac{y^{2}}{b^{2}} = 1 $$ の式で知られている楕円とは違い, グラフのイメージはどちらかというと3次曲線 $$ y = ax^{3} + bx^{2…
セキュリティキャンプ 修了生進捗 #seccamp OB/OG Advent Calendar 2018 2日目. この記事はセキュリティ・キャンプ全国大会2018で実装したTLS1.3(の筆者が担当した暗号部分)の再実装と解説を目的としている. なんだこれは を読み返すと意味がわからなくなっ…
おなじみのRSA暗号について. 今回はRSAでも特に暗号化オラクルに焦点を当てる. 単体で記事にするようなトピックでもないが面白いと思ったので. 暗号化オラクルとは簡単にいうとユーザが自分の好きな平文を暗号化して(平文を送ると暗号文が返ってくる)遊ぶこ…
公開鍵暗号の1つであるElGamal暗号について. ElGamal暗号 - Wikipedia 一般ElGamal暗号については後述する. 詳しく知りたい人は 暗号技術のすべて を買おう. 余談だが私はほしい物リストに入れてたら誰かが買ってくれた. 誰なのかは未だわからない. Key Gene…
Pascal Paillierが提案した加法準同型をもつPaillier暗号について. 元論文を読んだのでまとめてみる. が, 基本的な内容に関してはelliptic-shiho先生の記事を読むことで理解できる. elliptic-shiho.hatenablog.com カーマイケルの定理 Paillier暗号ではカー…
ブロック暗号で使われるECBモードについて(AESに限った話ではないけれど). 暗号利用モード - Wikipedia Wikipediaでも言及されているが, 平文ブロックが同じであれば暗号ブロックも同じになるという弱点がある. 今回はその弱点を突いた攻撃について考える. …
あるCTFでこれを使った問題が出ていたので勉強のために. zlibで圧縮したものを暗号化する場合, 平文と暗号文の長さが同じになるアルゴリズムを使うのは危ないよという話. 例えばAES-CTRとかRC4とか. 16bytes等のパディングをした方が良さそう. 基本的な内容…