2017-05-03 13 views
1

私はPHPとAndroid上で楕円曲線暗号を理解する上で助けを必要とするが..私は海綿状城や弾む城について読んだことがある...私はこれまで理解することは、各側がペアを生成する必要があるということです鍵(公開鍵と秘密鍵)と共有秘密鍵を暗号化と復号化に使用します。そうですか?または別のキーだけでなく...私は少し混乱していますが..ですまた、私はPHPのために何かを見つけることができません...任意のヘルプは高く評価され...楕円曲線暗号とAndroid

私もECDSAのみを生成するために使用されていることを知っています署名とそのECDHは私が必要なものであるメッセージの暗号化/復号化のために使用されている。..

+1

ECDHが鍵交換に使用されます。 RSAと同様に使用できるECIESなどを意味します。とにかく、HTTPSやTLSで十分ではないのはなぜですか? –

+0

私たちは、非対称暗号化を使用する必要があるセキュリティプロトコルを実装している...私たちは、RSAを使用しますが、我々はパフォーマンスを向上させるために、楕円曲線を使用したいと思います... ECIESを使用する方法についてのチュートリアルがありますか?また、鍵交換によって..あなたは秘密の共有鍵を意味しますか? ..この鍵はECDHを使用して生成され、暗号化のためにECIESで使用されますか?または別のキーがあります... –

+0

私は本当に助けたこのコードの例を見つけました..私たちは両方の当事者の共有キーを取得し、我々はそれが同じであることをテストする必要があります暗号化と復号化は、キー.. https://gist.github.com/zcdziura/7652286 .. bcprov-jdk15が必要とUnlimitedJCEPolicyは同様にそのgithubのコードにセキュリティ上の問題があり –

答えて

1

私がこれまで理解各側は(パブリックとプライベート) 鍵のペアを生成する必要があることは何かと共有彼らは暗号化と復号化のために を使用する秘密鍵..私はそうですか?

はい。各側は鍵ペアを生成し、それらの公開鍵を互いに送信する。秘密鍵は安全に保管され、開示されていないことが必要です。

秘密鍵は、受信者の秘密鍵と送信者の公開鍵およびその逆から生成されます。

Elliptic Curve Digital Signature Algorithm (ECDSA)は秘密鍵でデータに署名し、公開鍵を対応することを確認するために使用されます。

Elliptic curve Diffie–Hellman (ECDH)

は、各 が安全でないチャネルを介し 共有秘密を確立するために、楕円曲線公開鍵と秘密鍵のペアを有する2つの政党を可能に匿名の鍵合意プロトコルです。

データを暗号化して復号化するには、ECDHが必要です。

+0

重要なポイントは、受信者が相手から適切な公開鍵を取得していることを確認する必要があることです。そうしないと、中間者攻撃が可能になります。これは通常、証明書で行われます。 – TheGreatContini