暗号

1/5ページ

Pythonで暗号:IND-CCA2とRSA-OAEP

暗号理論復習 適当な暗号を考えたとしてそれが安全なのかどうかはどうやって評価するのだろうか。 まず暗号を破る敵を考え、次に暗号がどの程度破られたのかを考えるのが暗号理論の教えるところ。 攻撃モデル CPA(任意の平文に対する暗号文が得られる) CCA1(任意の暗号文に対する平文が得られる) CCA2(攻撃対象の暗号文を見た後でもそれ以外の任意の暗号文に対する平文が得られる) 敵の攻撃能力は下の方が強い。 安全性 OW(一方向性:暗号文か […]

Python暗号モジュールmd5、sha、crypt使用例

MD5(メッセージダイジェストアルゴリズム5)モジュールは、情報暗号文(メッセージダイジェスト)を計算して128ビットの暗号文を得るために使用される。 shaモジュールはmd5と似ていますが、160ビットの署名を生成します。 使用方法は同じです。 次の例では、md5を使用しています。 コードを次のようにコピーします。 #/ usr / bin / python # – * – コーディング:utf-8 ̵ […]

SecureRandom.getInstanceStrong() で使われる乱数生成のアルゴリズムを調べてみた

概要 Java 8 から java.security.SecureRandom クラスに追加された getInstanceStrong() というメソッドについて調べてみました。 SecureRandom とは 暗号鍵の生成などで安全に使える乱数を生成するための java.security.SecureRandom というクラスがあります。 この SecureRandom を使う場合、Java 7 以前はプラットフォームごとのデフォルト […]

楕円曲線暗号の署名検証をJavaで実装してみる

暗号理論の中で、RSAと同じ公開鍵暗号に属する楕円曲線暗号(Elliptic Curve Cryptography: ECC)ですが、RSAちゃんよりできる子と言われ続けて早15年くらい? このまま秘密兵器のまま終わるのかと思いきや、ようやっと使われ始める兆しがあったりなかったりなので、Javaでの実装方法について調べてみました。 Javaでは、JDK 7以上で楕円曲線暗号のネイティブ・プロバイダが追加されたようです。 サンプルコード […]

AES256による暗号化/復号をPHPとJavaでやる

お疲れ様です! GMOリサーチの石黒です! さて、皆さんも急にAESで暗号化したくなる衝動に駆られることがあると思います。 そんな皆さんのために今回は、JavaとPHP、PHPはOpenSSLとMcryptの、計3種類の方法で暗号化/複合のコードを書いていきます。 AES256アルゴリズム、ECBモード、PKCS5パディングで実装しています。 バージョン Java 1.8 PHP 5.6 Java Javaでは、デフォルトでAESの鍵の […]

サンタさんも入れないくらいPasswordを堅固に暗号化(所要時間3分)

springframework.securityを使って簡単にPasswordを暗号化(所要時間3分) もうすぐクリスマスですね💫 サンタさんがあなたのお家にやって来る季節でもあります😩💦 でも、、サンタさん以外が侵入して来たら困りますよね➰ 戸締まりはしっかりしないといけないですよ。 そう。情報もね。 1. springframework.securityを使って簡単にPasswordを暗号化説明 そんな時におすすめなのはspring […]

【Java】標準ライブラリで暗号技術を使う

この記事で紹介する暗号技術一覧 以下の暗号技術をJavaの標準ライブラリで扱う方法をまとめました。 各暗号技術について簡単に説明し、実装例を紹介します。 対称暗号(AES) 公開鍵暗号(RSA) 一方向ハッシュ関数(SHA-256) メッセージ認証コード(HMAC) デジタル署名(RSA + SHA-256) Diffie-Hellman鍵交換 PBE -Password Based Encryption- 実装例で使用するアルゴリズム […]

中国剰余定理 (CRT) の徹底解説と応用例紹介 〜 RSA 公開鍵暗号や高速剰余変換も 〜

はじめに NTT データ数理システムでアルゴリズムの探求をしている大槻 (通称、けんちょん) です。最近のマイブームなアルゴリズムは NTT (Number-Theoretic Transform) です。 NTT は FFT (高速フーリエ変換) の亜種です。日本語では高速剰余変換と呼ばれることが多いです。FFT ではどうしても登場しがちな「計算途中での丸め誤差」を回避するテクニックとして有効です。NTT を実運用する際には以下のよう […]

JAVA暗号化アルゴリズム(5) – デジタル署名アルゴリズム(RSA、DSA)

デジタル署名プロセス (1)署名を生成する:ソースファイルの「デジタルダイジェスト」は、「暗号化されたデジタルダイジェスト」を生成するために秘密鍵を使用して暗号化されます。 (2)検証署名:「暗号化されたデジタルダイジェスト」を公開鍵で復号して「デジタルダイジェスト2」を生成し、「デジタルダイジェスト」と「デジタルダイジェスト2」とを比較し、同じであれば署名の検証をパスする。 概念:「公開鍵」と「秘密鍵」を持つメッセージダイジェストアル […]

JAVA暗号化アルゴリズム(4) – 非対称暗号化アルゴリズム(DH、RSA)

非対称暗号化の概念 送信者は受信者の公開キーを使用して暗号化し、受信者は自身の秘密キーを使用して復号化します。 暗号化または復号化のために公開鍵と秘密鍵に分割された2つの鍵が必要 特徴:高いセキュリティ、低速 一般的なアルゴリズム DHキー交換アルゴリズム RSAアルゴリズム ElGamalアルゴリズム アプリケーション 鍵交換(DH) 双方が共通鍵を決定しない場合、鍵が生成され、暗号化作業が提供されない。暗号化および復号化は、他の対称 […]

1 5