第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

BouncyCastle 如何生成 ECDH“密鑰”?

BouncyCastle 如何生成 ECDH“密鑰”?

月關(guān)寶盒 2023-02-16 16:03:09
我有一個(gè)使用 BouncyCastle 作為安全提供程序的應(yīng)用程序,但我想切換到另一個(gè)直接使用 OpenSSL (Conscrypt) 的應(yīng)用程序。我遇到的問題是我使用的是 BouncyCastle 提供的 KeyGenerator 中的 ECDH“密鑰”,但我的其他庫(kù)中沒有類似的 KeyGenerator。為了比較兩者,我將使用兩種方法和以下輸入來解碼這些點(diǎn) -添加換行符以提高可讀性BADX_GAXp03z_5p05O1-op61KJAl4j9U2sBnAnJ4p_6GSAIyFGU3lMoC4aIXw_2qlTnplykArgjvwCWw-2g6L44使用 BouncyCastle 方法-public org.bouncycastle.jce.interfaces.ECPublicKey loadECPublicKeyBC(String encodedPublicKey) throws NoSuchProviderException, NoSuchAlgorithmException, InvalidKeySpecException, IOException {    Base64.Decoder base64Decoder = Base64.getUrlDecoder();    byte[] decodedPublicKey = base64Decoder.decode(encodedPublicKey);    KeyFactory keyFactory = KeyFactory.getInstance("ECDH", "BC");    ECParameterSpec ecParameterSpec = ECUtil.getECParameterSpec(openSSLProvider, "prime256v1");    ECPoint ecPoint = ECUtil.decodePoint(decodedPublicKey, ecParameterSpec.getCurve());    ECPublicKeySpec pubSpec = new ECPublicKeySpec(ecPoint, ecParameterSpec);    org.bouncycastle.jce.interfaces.ECPublicKey ecPublicKey = (org.bouncycastle.jce.interfaces.ECPublicKey)keyFactory.generatePublic(pubSpec);    return ecPublicKey;}返回getAlgorithm的是EC。返回getFormat的是X.509。getEncoded這個(gè)的價(jià)值是——[48,-126,1,51,48,-127,-20,6,7,42,-122,72,-50,61,2,1,48,-127,-32,2,1,1,48,44,6,7,42,-122,72,-50,61,1,1,2,33,0,-1,-1,-1,-1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,68,4,32,-1,-1,-1,-1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-4,4,32,90,-58,53,-40,-86,58,-109,-25,-77,-21,-67,85,118,-104,-122,-68,101,29,6,-80,-52,83,-80,-10,59,-50,60,62,39,-46,96,75,4,65,4,107,23,-47,-14,-31,44,66,71,-8,-68,-26,-27,99,-92,64,-14,119,3,125,-127,45,-21,51,-96,-12,-95,57,69,-40,-104,-62,-106,79,-29,66,-30,-2,26,127,-101,
查看完整描述

1 回答

?
浮云間

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊

這兩個(gè)公鑰表示本質(zhì)上是等價(jià)的。兩者都是RFC 5280中描述的 DER 編碼的 SubjectPublicKeyInfo 結(jié)構(gòu)的實(shí)例。該結(jié)構(gòu)不僅包含公鑰,還包含一些描述公鑰算法上下文的元數(shù)據(jù)。對(duì)于其中一種形式,元數(shù)據(jù)僅聲明上下文是“prime256v1”曲線。另一方面,提供了該曲線的所有參數(shù)。公鑰本身作為兩種形式的最后一部分出現(xiàn),如您所見,它們是相同的。

您擁有的是同一公鑰的 3 種不同表示形式。base-64 編碼字符串只包含一個(gè)類型 4(未壓縮)橢圓曲線點(diǎn),根據(jù)SEC 1第 2.3.3 節(jié)進(jìn)行編碼。您在類中找到了一個(gè)未記錄且不受支持的 APIsun.security.util.ECUtil來將其轉(zhuǎn)換為 PublicKey。

我不完全確定你的問題是關(guān)于私鑰的。對(duì)于包括 ECDH 在內(nèi)的 DH 方案,私鑰只是從基礎(chǔ)組訂單范圍中“安全地”選擇的一個(gè)整數(shù)。然后通過將這個(gè)整數(shù)乘以曲線的基點(diǎn)(在橢圓曲線意義上)來計(jì)算公鑰。結(jié)果公鑰也是曲線上的一個(gè)點(diǎn)。


查看完整回答
反對(duì) 回復(fù) 2023-02-16
  • 1 回答
  • 0 關(guān)注
  • 281 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)