暗号化ソフトウェア

暗号化ソフトウェア（あんごうかソフトウェア）は、暗号を用いてデジタル情報への不正アクセスを防止するために使用されるソフトウェアである。デジタル情報だけでなく、コンピューター上の情報や、インターネットを通じて送受信された情報の保護にも、暗号が用いられる。
分類.
暗号化を提供する多くのソフトウェア製品がある。ソフトウェア暗号化では、ある種の暗号手法を使用してコンテンツを暗号文として隠蔽する。このタイプのソフトウェアを分類する1つの方法で、よく使用される暗号のタイプである。暗号は、公開鍵暗号（非対称暗号とも呼ばれる）と対称鍵暗号の2つのカテゴリに分けることができる。暗号化ソフトウェアは、公開鍵暗号化または対称鍵暗号化のいずれかに基づくことができる。
ソフトウェア暗号化を分類する別の方法は、その目的を分類することである。この手法を用いると、ソフトウェアの暗号化は、"転送中データ"と暗号化するソフトによる"保存データ"となり、転送中のデータには、一般に公開鍵暗号を使用し、保存中のデータには、一般に対称鍵暗号を使用する。
対称鍵暗号は、ストリーム暗号とブロック暗号にさらに分けることができる。ストリーム暗号は、通常、平文を一度にビットまたはバイト単位で暗号化し、オーディオやビデオ情報などのリアルタイム通信を暗号化するために最も一般的な手法として使用さる。暗号キーはキーストリームジェネレータでの初期状態を確立するために使用され、そのジェネレータ出力は平文へ複合化にも使用された。ブロック暗号アルゴリズムは、平文を固定サイズのブロックに分割し、一度に一つのブロックを暗号化する。例えば、AESは16バイトのブロックを処理し、その前身であるDESは8バイトのブロックを暗号化する。
転送中のデータ.
転送中のデータは、暗号化を介して送受信されるデータである。コンピュータネットワーク上のデータが2つの拠点間にある場合、機密情報が脆弱になる可能性がある。ペイロード（機密情報）は、その機密性だけでなく、その完全性と有効性を確保するために暗号化することができる。
多くの場合、転送中のデータは、ウェブサイトを訪問する場合のように、お互いを知らない二つのエンティティの間にあり、交換される情報を保護するための関係を確立して、暗号化キーが安全に共有されるように、これを達成するため一連の役割とポリシーおよびに手順が開発され、公開鍵基盤、またはPKIと呼ばれる。PKIが安全な接続を確立すると、エンドポイント間で対称キーを共有できる。対称暗号は非対称暗号よりもはるかに効率的である（CPUサイクルが少ない）ため、対称鍵は秘密鍵と公開鍵よりも優先される。転送中のデータを暗号化するには、次のようないくつかの方法がある IPsec, SCP, SFTP, SSH, OpenPGP と HTTPS://.
保存中のデータ.
保存中のデータとは、永続性のあるストレージ装置において、保存されたデータを指す。保存中のデータは、一般的に対称キーで暗号化される。
暗号化は、ストレージスタック内の異なるレイヤーで適用できる。例えば、暗号化は次の場所で設定される。ディスク層、と呼ばれるディスクのサブセット上のパーティシン、上記ボリュームディスクまたはパーティションの組み合わせであり、一つの層ではファイルシステム、またはユーザー空間内で適用されるデータベースまたはホスト上で実行される他のアプリケーションオペレーティングシステムにて提供する。
ディスク全体の暗号化では、ディスク全体が暗号化される(暗号化されていないブート/プリブートパーティションを使用していない場合は、ディスク利用出来ない）ディスクを複数のパーティションに分割することができるため、パーティション暗号化を使用して個々のディ少の暗号化による複数のパーティションを結合して作成されたボリュームは、ボリューム暗号化.のように暗号化できる。また、一つ以上のパーティションで構成されるファイルシステムは、以下を使用して暗号化できる。ファイルシステムレベルの暗号化. ディレクトリ内のファイルが暗号化される場合、暗号化ディレクトリと呼ばれる。ファイル暗号化は、単一のファイルを暗号化する。データベースの暗号化は、格納されるデータに作用し、暗号化されていない情報を受け入れ、データを暗号化した後にのみ、その情報を永続ストレージに書き込み、デバイスレベルの暗号化は、暗号化テープドライブを含む、やや曖昧な用語であるが、CPUから切り離した暗号化を構成可能である。
保存中のデータの転送.
安全な接続を作成する機能が必要でない条件下で、保管中のデータを安全に送信する必要がある場合、これら必要性から、サポートするユーザーツールが開発された。これらのツールは、受信者において公開鍵が公開され、送信者がその公開鍵を取得している事に依存する。送信者は、情報を暗号化するための対称キーを作成し、受信者の公開キーを使用して情報と対称キーの安全な送信を保護することができる。これにより、ある当事者から別の当事者への情報の安全な送信が可能となる。
パフォーマンス.
暗号化ソフトウェアのパフォーマンスは、CPU速度により相対的に測定される。したがって、バイトあたりのサイクル（cpbと略記されることもある）は、数を示す単位である。クロックサイクルはマイクロプロセッサの1命令が必要となる。バイト処理されたデータのうち、通常は測定単位.バイトあたりのサイクル数は、現実世界の部分的暗号化関数のパフォーマンス指標として機能する。Microsoft SQL、Oracle、MongoDBなどのデータベースアプリケーションを含むネイティブ暗号化と呼ばれる独自の暗号化を提供することができ、通常CPUサイクルに依存する。これは、多くの場合、組織内のデータがパートナーに到達する速度と規模に影響を与えることになる。企業間における、より高いセキュリティとコンプライアンスを容易に満たす要求がある暗号化に影響する。
違法な暗号化.
メインページ: ランサムウェア
暗号化は違法行為に使用することができる。詐欺師は、ユーザーファイルを暗号化（ロック）し、通常は時間制限付きでファイルを復号するために身代金（多額の金額）を支払うことを要求するランサムウェアを使用して拡散することができうる。WannaCryランサムウェアはユーザーに支払うために3日を与え、価格が倍増される。7日で支払う事が無ければ、そのファイルは永遠に破壊される。