ウォンツテック

そでやまのーと

STL

多倍長整数の乱数を生成する方法についてもう少し詳しく考えてみた。 生成した乱数を桁数をLとする 種を生成する(srand(),rand()を16回行い64バイトの整数を生成) 種を初期カウンタ値としてセットする while (true) { カウンタ値をハッシュ関数(md5)にかけ…

前回平文を1バイトずつ暗号化すると書いたけど、これだとECBといわれる方式であり単なる巨大な変換表を作成するだけとなってしまうので、CBCというわれるブロック方式を採用する。CBC(Cipher Block Chaining)の概要を書くと以下のようになる。 平文をRSAで使…

STLの勉強をするのにただつまらないコードを書いてもあれなのでRSAの暗号アルゴリズムによるkey(公開鍵、秘密鍵)の生成とファイルの暗号、復号化のコードを書いてみようと思う。 ざっくり調べてみたところRSA Algorithmとその周辺には以下の要素がある。 1…

STL勉強メモ 汎用アルゴリズムとかのfindとかfind_ifとかadjacent_findとかに渡す引数でconst_iteratorとiteratorを混ぜてはいけない。たとえば以下のようなのはerror vector vec; ... vector::const_iterator i = vec.begin(),j; j = adjacent_find(i, vec.…

STLの勉強メモ 入力反復子 InputIterator 出力反復子 OutputIterator 前方向反復子 ForwardIterator 双方向反復子 BidirectionalIterator ランダムアクセス反復子 RandomaccessIterator 挿入反復子 insert_iterator back_insert_iterator ⇒ back_inserter(Co…