Qt Tech. OpenSSL通信、HTTPS通信を行うプログラムが簡単じゃない!対処方法 新しいページはコチラ
提供: yonewiki
(→概要) |
(→概要) |
||
3行: | 3行: | ||
− | 一般的に使われるのが公開鍵方式と呼ばれている方式です。大事なのは公開する鍵(公開キーワード文字列)が秘密の鍵(非公開キーワード文字列) | + | 一般的に使われるのが公開鍵方式と呼ばれている方式です。大事なのは公開する鍵(公開キーワード文字列)が秘密の鍵(非公開キーワード文字列)から生成されているということであり、この生成処理の逆が難しいということです。 |
− | + | 難しいというのは、一般人が自由に保有できるであろう演算装置で計算させても数年以上かかるくらい難しいのだけれど、生成処理は簡単であり、生成処理には法則が唯一に存在するという仕組みにある。例えば因数分解みたいな計算がその一例だ。学校で習った因数分解(例えばx^2+4x+3=(x+1)(x+3))は考えれば解ける程度の問題になっているが、桁数が増えると無理っ!ってなる。じゃコンピュータにやらせてみるか?ってなってプログラムを作ってみたら、a+b=4、axb=3となるようなaとbを求めるというのは桁数が増えるとコンピュータを使ってやっても時間がかかるということがわかってきたりした。そういうたぐいの演算は存在するということがわかったのがこの仕組みの大事なところでもある。(x+1)(x+3)のような分解された値を演算するのはスグだよね。手順通り計算すれば、x^2+4x+3だってわかる。数字だけを扱う因数分解の桁数が少し増えただけでも大変なのに文字列をキーワードにしたら短くまとめたような長さでも相当時間がかかる。そんなイメージがいいかなって思う。実際の演算アルゴリズムでは素因数分解のような演算ではありません。別のところで理解して下さい。 | |
− | + | やりとりの手順は以下のようなものです。 | |
+ | :1.Webサーバー側が秘密の鍵(非公開キーワード文字列)を所有している状態になります。 | ||
− | + | ||
+ | :2.ユーザはサーバにて計算された秘密鍵から生成された公開鍵(公開キーワード文字列)を受け取ります。 | ||
+ | |||
+ | |||
+ | :3.ユーザは送信するデータを公開鍵で暗号化して、サーバ側に送ります。公開鍵で暗号化されたデータを元のデータに戻すことは難しい状態になっている。 | ||
+ | |||
+ | |||
+ | :4.Webサーバは受け取ったデータを秘密鍵で複合化(元のデータ)して処理をする。 | ||
+ | |||
+ | |||
+ | こんな感じ。 |