素数を用いての暗号化、RSA暗号についての理解

Writer: admin Type: regalmach Date: 2019-01-08 00:00
素数を用いての暗号化、RSA暗号についての理解が正しいかの質問です。とある素数P、Qを選び、掛け合わせたPQそしてP-1、Q-1の最小公倍数の約数でない任意の数字を用意PQと任意の数字を公開しパスワードなど送りたい文字等を何かしらの規則性に従って1文字ごとに数字にし、さらにPQと任意の数字で暗号化して発信してもらう(各数字を「任意の数字」乗したものをPQで割った余りを求め、それを暗号とする)PQと任意の数字は公開しているので誰にでも暗号化して発信出来るが、暗号化された数字(割った余り)を公開されたPQと任意の数字だけで元の形へ戻すのは至難な為、実質PQの原型を知っている人しか解読できない(解読の際はP-1、Q-1の最小公倍数とnを掛け合わせたものに1を足し、「任意の数字」で割った時に整数となる様なnを求め、nとPQを用いて暗号化された数字を元に戻す)PQを素数Pと素数Qへ素因数分解することが困難であることを安全性の根拠としており、PQから素因数分解が容易に出来てしまう場合、このシステムは成り立たなくなる。この解釈で合っているでしょうか?ネットでざっくりと見て回っただけなので、何が間違って何が正しい理解なのか分かっていません。大きな間違いがあれば指摘をお願いします。それと、このRSA暗号ってどんな感じに使われるんでしょうか?私がyahoo知恵袋にログインする時のパスワードも、一度yahooサーバーが開示するPQと約数でない数字の2つを用いて加工して発信し、yahooサーバーが解読してやり取りしてるって感じでしょうか?私側もPQと約数でない数字を常に世界中に公開してる状態なんですかね?イマイチ使用例が分からないので出来ればそっちも回答お願いします。共感した0###ほぼ正しいと言えますが,言葉で書くより数式で表現した方が正確です. 暗号化: C = M^e mod n復号: M = C^d mod nM は平文,C は暗号文,n, e は公開鍵,d は秘密鍵です.M も C も n 以下の整数です.鍵は次のように作ります.1. 大きな素数p,q をを選び,n = pq とする.2. λ = LCM(p-1, q-1) LCM: 最小公倍数 λ と互いに素で λ より小さな任意の整数 e を選ぶ. 3. ed = 1 mod λ を満たす d を求める.4. n,e を公開鍵,d を秘密鍵とする.暗号文 C と公開鍵 n, e が与えられたとき,平文 M を求めるには,秘密鍵 d が必要です.ただし,公開鍵 n が素因数分解できれば解読できます.すなわち,n を素因数分解し,p, q を求めれば,λ が求まり, d = 1/e mod λより d が求まります(d は,e の法 λ における逆元).>(各数字を「任意の数字」乗したものをPQで割った余りを求め、それを暗号とする)各数字(各文字)というより,文字列全体が対象です.文字列は何らかの文字コードで表されており,そのビット列をそのまま1つの数字とみなすことができます.但し,その数字が n 以下である必要があります.RSA暗号は n 以下の数しか暗号化できないので大きなデータの暗号化には向きません.勿論,n 以下に分割して繰り返し暗号化すればできるのですが,RSA暗号は処理時間がかかるので通常そのようなことはしません.RSA暗号の利用例としては,・Webブラウザにおける暗号化通信(HTTPS)・SSH(セキュアシェル)によるリモートマシンの操作・暗号化メールなどがあります.これらにおいて,RSA暗号は共通鍵を暗号化して鍵交換を行うために用いられます.暗号化通信自体は高速な共通鍵暗号が用いられます.公開鍵を開示する必要があるのは,自分が秘密鍵を作った場合(ディジタル署名や暗号データを受信する場合)です.公開と言っても,必要な相手にその都度送ればよいので世界中に公開する必要はありません.やり方は色々です.必要な人にのみ事前に送る,自身のWebサイトで公開するなど.ナイス0
###RSAに関して詳しくお知りになりたいのでしたら、専門書等を読まれることをお勧めします。私自身、以前業務で暗号通信に関する業務を行っていましたが、RSAが素数とその積を利用していることは知っていますがそれ以上は詳しくないですよ。システム全体では鍵の生成を行っていましたが・・・。(乱数の組の管理は行っています。重複しないように、と言う理由です)また、”PQを素数Pと素数Qへ素因数分解することが困難であることを安全性の根拠としており・・・”これは正しいです。RSAに限定しない公開鍵の使い方ですが、公開鍵で暗号化して秘密鍵で復号、秘密鍵で暗号化して公開鍵で復号。この特性を使って相手の確認や文書等が改ざんされていないことの確認等に使われています。一般的な暗号通信では、乱数を相互に公開鍵暗号を使って送って相手を確認、送られた乱数を使って共通鍵を生成し、共通鍵暗号で通信することが多いです。ナイス0

 

TAG