我是相當新的,在橢圓曲線密碼領域沒有經驗。經過一些研究,我已經確定不像傳統的DHE,ECDHE參數不應該生成,而是從預定義的曲線列表中選擇(例子包括'P-521','prime192v3')。ECDHE安全與充氣城堡
雖然創建一個基於網絡的安全敏感應用程序是更好的(甚至邏輯)在運行時隨機選擇不同的曲線vs使用單一的硬編碼曲線?
另外,是否有這樣的概念更強和更弱曲線之間的所有曲線可供選擇?
到目前爲止,這是我的代碼,以啓動ECDH交換:
//For readability purposes exception checking code not shown, all code is properly exception-handled
SecureRandom rnd = SecureRandom.getInstance("SHA1PRNG", "SUN");
X9ECParameters curve = ECNamedCurveTable.getByName("prime192v3");
ECDomainParameters domain = new ECDomainParameters(curve.getCurve(), curve.getG(), curve.getN(), curve.getH(), curve.getSeed());
ECKeyGenerationParameters ecgen = new ECKeyGenerationParameters(domain, rnd);
ECKeyPairGenerator kpgen = new ECKeyPairGenerator();
kpgen.init(ecgen);
AsymmetricCipherKeyPair kp = kpgen.generateKeyPair();
這有什麼不對的,到目前爲止這個代碼?
大多數問題更適合crypto.stackexchange.com。你至少應該在問題中加入一個通用的標記,例如密碼術,這個標籤會被置於雷達之下。 –