- HOME >
- 管理人
管理人
SEとして働く「分かる君」がつ運営するサイトです。 ITの難しい用語や、仕事で感じた事などを中心に"わかりやすさ"を意識して記事にしています。少しでも共感や参考にしていただける人がいたら嬉しいです。
Java標準のMessageDigestクラスを使用する方法 Javaでハッシュ値を生成するには、Java標準機能であるMessageDigestクラスを使用することで生成することができます。 MD5のハッシュ値を生成 MD5とは、Message Digest 5の略で128ビット(16進数では32桁)のハッシュ値を生成するハッシュ関数です。MD5は脆弱性が見つかっている古いハッシュ関数のため、セキュリティ用途での使用は推奨されていません。 MessageDigestクラスでMD5のハッシュ値を生成する実 ...
MD5(Message Digest 5) MD5とは MD5(エムディーファイブ)とは、Message Digest 5の略でハッシュ関数の一つです。128ビット(16進数では32桁)のハッシュ値を生成します。 1991年にロナルド・リベストによって開発されたハッシュ関数で、前規格であるMD4の安全性を向上させた規格です。 上記図はMD5を利用してハッシュ値を生成する例です。ハッシュ関数により得られたデータのことを「ハッシュ値」と呼びます。 MD5の脆弱性 ハッシュ関数は、入力データが同じであれば、必ず ...
SHA-1(Secure Hash Algorithm 1) SHA-1とは SHA-1(シャーワン)とは Secure Hash Algorithm 1の略で、入力データを一定の手順で計算を行い、入力値のデータの長さに関わらず決まった長さの文字列を出力するハッシュ関数の一つです。SHA-1は、160ビット(16進数では40桁)のハッシュ値を生成します。 上記図はSHA-1を利用してハッシュ値を生成する例です。ハッシュ関数により得られたデータのことを「ハッシュ値」と呼びます。 ハッシュ関数は、入力データが ...
SHA-2(Secure Hash Algorighm 2) SHA-2とは SHA-2(Secure Hash Algorighm 2)とは、入力データを一定の手順で計算を行い、入力値のデータの長さに関わらず、決まった長さの文字列を出力するハッシュ関数の標準規格の一つで、前規格であるSHA-1(Secure Hash Algorighm 1)から多くの改良が加えられています。 ハッシュ関数により得られたデータのことを「ハッシュ値」と呼びます。ハッシュ関数は、入力データが同じであれば、必ず同じハッシュ値を ...
ハッシュ関数 ハッシュ関数とは ハッシュ関数とは、入力データを一定の手順で計算し、入力値のデータの長さに関わらず、決まった長さの文字列を出力する関数のことです。 ハッシュ関数により得られたデータのことを「ハッシュ値」と呼びます。 ハッシュ関数は、主に検索の高速化やデータ比較処理の高速化、改ざんの検出、パスワードの管理などで利用されています。 例えば、膨大なサイズのファイルが2つあるとします。この2つのファイルが同一の内容であるか比較するとき、端から順にすべてのデータを比較していると時間がかかります。 そこ ...
暗号化と復号 暗号化とは、通信データを第三者に見られないように、一定の計算手順に基いて元の状態が容易に推定できない形に変換すること、そして復号とは、暗号化したデータを元に戻すことです。 通信を行う際、何も加工しないそのままのデータを「平文」、そして「平文」を暗号化したデータを「暗号文」といいます。 上記図は暗号化と復号のイメージ図です。 「平文」のままインターネット上で通信を行うと、仮に通信内容が盗聴されていた場合、情報漏洩に繋がる危険性があります。そこで、第三者に見られても容易に解析できないような形に変 ...
JavaのDateクラスで日付の比較 JavaのDateクラスは、日付型のクラスです。 Dateクラスには、日付を比較するメソッド(compareTo/before/after)が用意されているため、かんたんに比較できます。 compareToメソッドの使い方 Dateクラスに用意されている「compareTo」メソッドで、日付の比較ができます。 compareToメソッドの戻り値は次のとおりです。 戻り値説明0メソッドの引数と同値-1メソッドの引数より小さい1メソッドの引数より大きい それでは、「com ...
RSA(Rivest-Shamir-Adleman cryptosystem) RSAとは RSA(Rivest-Shamir-Adleman cryptosystem)とは、桁数が大きい合成数の素因数分解を実用的な時間内に実行することは困難であることを安全性の根拠とした公開鍵暗号の一つです。 1977年に発明され、発明者である「ロナルド・リベスト」「アディ・シャミア」「レオナルド・エーデルマン」の原語表記の頭文字をつなげてRSAと呼ばれています。 RSAは鍵のペア(公開鍵と秘密鍵)を作成して一方で暗号化 ...
DES(Data Encryption Standard) DESとは DES(Data Encryption Standard)とは、1977年にアメリカ連邦政府標準の暗号方式として採用された共通鍵暗号アリゴリズムの一つです。 共通鍵暗号の特徴は「暗号化」と「復号」に使用する鍵が同じという点です。 上記は共通鍵暗号のイメージ図です。送信側で「共通の鍵」を使い「平文」を「暗号文」に暗号化して送信、受け取った受信側でも同じ「共通の鍵」を使い「暗号文」を「平文」復号しています。 DESの暗号化アルゴリズム D ...
AES(Advanced Encryption Standard) AES(Advanced Encryption Standard)とは、DES(Data Encryption Standard)に代わる新しい暗号方式として2000年にアメリカ連邦政府標準の暗号方式として採用された共通鍵暗号アルゴリズムの一つです。 1977年に制定されたDESは、長い間 共通鍵暗号のアルゴリズムとして用いられていたが、コンピュータの処理速度向上による強度不足などの問題が表面化し、NIST(アメリカ国立標準技術研究所)は ...
ハイブリッド暗号方式とは ハイブリッド暗号方式とは、公開鍵暗号方式と共通鍵暗号方式を組み合わせた暗号方式で、Webの暗号で広く普及しているHTTPS(SSL/TLS)などで用いられています。 ※HTTPSの場合は、サーバ証明書を使用します。詳しくは下記の記事をご覧ください。 公開鍵暗号方式で、共通鍵暗号方式の鍵を配送し、データのやり取りは共通鍵暗号方式で行います。 共通鍵暗号方式 共通鍵暗号方式とは「暗号化」と「復号」に同じ鍵を使う暗号方式です。 共通鍵暗号方式の特徴は「暗号化」と「復号」に同じ鍵を使うた ...
公開鍵暗号方式 公開鍵暗号方式とは 公開鍵暗号方式とは「暗号化」と「復号」に別の鍵を使い、「暗号化」の鍵を公開できるようにした暗号方式です。 公開鍵暗号方式では、送信者と受信者が異なる鍵を保持しているが特徴です。送信側は受信者が公開している公開鍵で「平文」を「暗号文」に暗号化して送信、「暗号文」を受け取った受信側は受信者の秘密鍵で「暗号文」を「平文」に復号する流れです。 「公開鍵暗号方式」は「共通鍵暗号方式」の課題を解消した暗号方式 1976年以前は、暗号といえば 共通鍵暗号方式 が利用されていました。し ...
共通鍵暗号方式 共通鍵暗号方式とは 共通鍵暗号方式とは、暗号化と復号に同じ「鍵」を使用する暗号方式のことです。 「平文」を「暗号文」に変換するときに使う「鍵」と「暗号文」を「平文」に戻すときに使う「鍵」は同じものを使用します。 共通鍵暗号アルゴリズムには、DES(Data Encryption Standard)とAES(Advanced Encryption Standard)があります。 従来はDESが主流だったが時代の変化に伴いDESは古い暗号方式となり、アメリカ国立標準技術研究所はより強力な暗号化 ...
シングルサインオン(SSO) シングルサインオン(Single Sign On)とは、1度のユーザ認証(ログイン)により複数のシステムが利用できる仕組みです。シングルサインオンを使うことで、利用者はシステムごとに「ログインID」と「パスワード」を管理する必要がなくなります。 シングルサインオンを利用しないユーザ認証 シングルサインオンを利用しない場合は、サービスごとにユーザ認証(ログイン)の機能を実装し、サービスを利用する利用者もサービスごとに「ログインID」と「パスワード」を管理する必要があります。 利 ...
OpenID(オープンアイディー) OpenIDとは、異なるシステム間で利用者の識別情報を共有して使用できる仕組みです。 会員制のWebサイトなどの各サービスを利用する場合、各サービスごとに「ログインID」と「パスワード」を登録する必要があります。そのため、登録するサービスが増えれば増えるほど、利用者は各サービスのログイン情報を管理するのが大変であり、たまにしか使用しないサービスであれば、パスワードを忘れてしまうことも。 そこでOpenIDを利用すると、1つのログイン情報でOpenIDに対応 ...
OAuthとは(オーオース) OAuthとは、異なるシステム間でデータや機能へのアクセス権限の許可を行う仕組みです。 例えば、ある利用者が「Aサービス」と「Bサービス」に加入している場合、各サービスのリソース(機能や保管しているデータなど)は利用者本人しか利用することはできません。 次の図のように「Aサービス」のリソースを利用できるのは 利用者本人。そして「Bサービス」も同様に「Bサービス」のリソースを利用できるのは 利用者本人です。 OAuthは、この異なるサービス間のリソースへのアクセス権限を付与する ...
IP-VPN(IP Virtual Private Network) VPN(ブイピーエヌ)とは VPNとはVirtual Private Networkの略で、遠隔地間で仮想的なプライベートネットワークを構築する技術です。 VPNでは、トンネリングとカプセル化と呼ばれる技術を使い、まるでプライベートネットワークのような安全な環境を提供します。 上記図は、VPNのイメージ図です。 外部から見えないトンネリングで作られたVPNトンネル(仮想的なプライベートネットワーク)を使用することで遠隔地間 ...
テレワーク(telework) テレワーク(telework)とは、「tele = 離れた場所」「work = 働く」を繋げた言葉で、情報通信技術(ICT)を活用し場所や時間にとらわれない柔軟な働き方のことです。 テレワークには次のような種類が存在します。 名称 説明 在宅勤務 会社には出社せず、自宅からパソコンや携帯電話などを利用して仕事をする働き方。 モバイルワーク 会社には毎日出勤することはせずに、顧客先や移動中にノートパソコンや携帯電話などを利用して仕事をする働き方。 サテライトオフィス 勤務先以 ...
VPN(Virtual Private Network)とは VPN(Virtual Private Network)とは、遠隔地間で仮想的なプライベートネットワークを構築する技術です。 VPNでは、トンネリングと呼ばれる外部から見えない仮想通路を作り、その仮想通路をカプセル化したパケットで送受信を行うことで、まるでプライベートネットワークのような安全な環境を提供します。 VPNは大きく分類すると「インターネットVPN」と「IP-VPN」の2つに分けられます。 名称 悦明 インターネットVPN インターネ ...
VPNのトンネリングとカプセル化 トンネリング(tunneling)とは トンネリング(tunneling)とは、通信ネットワーク上の拠点間で通信するために作られた仮想的な通信通路のことです。 遠隔地間で仮想的なプライベートネットワークを構築する VPN(Virtual Private Network)で使用される技術で、トンネリングにより作られた仮想通路のことをトンネルとも呼びます。 トンネリングで作られた仮想通路(トンネル)は、ネットワーク上から見えないため、悪意のある攻撃者など外部からの不正侵入を防 ...