我目前正致力于ECDH密钥交换的实施。我正在使用P-384曲线。其他曲线也是可能的,但我认为实现应该非常相似。

客户端(Javascript)和服务器(Java)想要找到共享密钥,因此

1)服务器创建公钥和私钥。

2)服务器将公钥发送给客户端。

注意:公钥长120字节。

3)客户端创建私钥和公钥。

注意:公钥97字节长,私钥有48个字节。

4)客户端尝试计算共享密钥。但是,我得到了一个错误的论点"错误。

为了实现,我查看了ecdh.js和ecdh_test.html文件。

我在客户端的实现看起来像这样:

var serverPublicKeyStringAsHex = "3076301006072a8648ce3d020106052b8104....." //*

var serverPublicKey = goog.crypt.hexToByteArray(serverPublicKeyStringAsHex)

var bobKeyPair = e2e.ecc.Protocol.generateKeyPair("P_384");

var bobECDH = new e2e.ecc.Ecdh("P_384");

var bobMessage = bobECDH.bob(serverPublicKey, bobKeyPair['privKey']);

如前所述,我得到了一个不好的论点"控制台中出错。

更详细:

我想知道是否可能出现此错误,因为服务器公钥长度错误?如果是这个原因,我的实施中可能出现什么问题?我在服务器端使用相同的EC。

我发现这个"public-key-length"问题,有未压缩和压缩的密钥表示。但是,我不认为这可能是我的问题,因为关键长度(服务器公钥:120字节,客户端公钥:97字节)与所描述的模式不匹配(字段大小+ 1对比2 *字段大小+ 1)

感谢您提供任何帮助,因为我已经花了这么多时间解决这个问题而且不知道接下来会尝试什么......

*如果知道重要的话,那就是完整的公钥:

3076301006072a8648ce3d020106052b8104002203620004f87dc79943b20e0f57d61f8b7d02425baa4d1220b8b8c1e3596f5ab49ae6ad2acffad95e5860231821b4aedefe5cf1d0262563cffdc8dbe4f28973ebebf3985ba50c7b275888934dcd607007c288a5afaf196834395983cd7f01c548e5edca0b

java ecdh秘钥交换_ECDH密钥交换使用不同长度的公钥?相关推荐

  1. java ecdh秘钥交换_ECDH密钥交换的C程序

    由于项目需要,使用openssl编写一段ECDH代码实现网络两端实体的密钥交换. 虽然对openssl不熟悉,但也开始做. 最先参照的是openssl官方wiki上的Elliptic Curve Di ...

  2. java ecdh秘钥交换_DH密钥交换和ECDH原理(转)

    下面我们以Alice和Bob为例叙述Diffie-Hellman密钥交换的原理. 1,Diffie-Hellman交换过程中涉及到的所有参与者定义一个组,在这个组中定义一个大质数p,底数g. 2,Di ...

  3. java ecdh秘钥交换,ECDH密钥协商算法

    ECDH是EC是"elliptic curves"的意思,DH是"Diffie-Hellman"的意思.它实际上是密钥协商算法,而不是加解密算法. 该算法可以用 ...

  4. java ecdh秘钥交换_了解一下密钥交换算法ECDH

    https://www.jianshu.com/p/b26cd2bfdc28 搬一下别人的解释: 下面我们以Alice和Bob为例叙述Diffie-Hellman密钥交换的原理. 1,Diffie-H ...

  5. Diffie-Hellman(迪菲-赫尔曼)秘钥交换协议

    1. 协议背景 对称密码体制: Bob利用对称密钥K对信息进行加密并将加密结果发送给Alice,Alice收到信息之后,用同样的密钥进行解密. 问题1:Alice是如何知道对称密钥K的?------即 ...

  6. ECDH秘钥协商算法原理(ECDH Key Exchange)

    ECDH全称是椭圆曲线迪菲-赫尔曼秘钥交换(Elliptic Curve Diffie–Hellman key Exchange),主要是用来在一个不安全的通道中建立起安全的共有加密资料,一般来说交换 ...

  7. java中secretkey,java生成秘钥key,并保存秘钥到文件中

    本例子采用的是Java的对称加密其中的一种方式(3DES),其他的加密方式也类似.生成一个key秘钥,发送方使用生成的key秘钥进行加密操作,然后把生成的key秘钥保存到文件中,提供给需要解密的一方使 ...

  8. java用秘钥实现试用期_Android - 如何实现免费试用期,无需提前付费

    我已经开发了一个Android trial library,您可以将其放入项目中,它将为您处理所有服务器端管理(包括脱机宽限期),因此您不需要自己的服务器. 要简单地使用它 将库添加到主模块的buil ...

  9. Java加解密(十)持久化秘钥

    目录 Java持久化秘钥 1 保存PEM文件 2 保存文本文件 3 Java序列化 Java持久化秘钥 加密算法的秘钥持久化是是一个不可避免的话题,如何安全的存储更是重中之重.将秘钥保存在文件中是最简 ...

最新文章

  1. pythonmysql数据库系统实战_Python实战之MySQL数据库操作
  2. VUE+WebPack游戏开发:神庙逃亡的游戏设计
  3. NVIDIA DIGITS-2.0 + Ubuntu 14.04 + CUDA 7.0 + cuDNN 7.0 + Caffe 0.13.0环境配置
  4. cuda第一次计算耗时_CUDA优化的冷知识10 | GPU卡和Jetson上显存优化的特色
  5. 当你伤心时的飞鸽传书
  6. Acticity 启动 AMS
  7. 红橙Darren视频笔记 万能Dialog builder设计模式
  8. 面向对象,MATLAB的自定义类
  9. windows中PLSQL/Developer、Oracle InstantClient的安装与配置
  10. 泄漏计算机网络安全法情节,第十一章网络安全法第十二章电子商务纠纷的法律解决详细分解.doc...
  11. 在InstallShield中发布单一的Setup.exe文件
  12. Web前端性能优化全攻略
  13. 【JavaEE】Spring 事务传播机制
  14. css背景颜色渐变 从左到右 从下到上
  15. 慕课2022沟通心理学答案
  16. 最新上架 App Store 全流程
  17. c语言编程照抄能学好吗,电子信息类专业学生必看:一位老电子工程师十年感悟...
  18. 分享16个经典面试问题回答思路
  19. 邮政储蓄银行厦门分行经营管理系统 项目总结
  20. pygame 窗口标题和图标设置

热门文章

  1. 成都计算机专科学校有哪些,成都计算机专科大学
  2. php hmac,PHP签名验证之hash_hmac sha1
  3. 估计参数的方法:最大似然估计、贝叶斯推断
  4. 使用Rviz完成摄像头(camera)的视频采集
  5. 项目Beta冲刺(团队)——05.28(6/7)
  6. jquery.html加换行符,在使用jQuery时添加元素间的换行符或空格.append()
  7. 计算机启动按钮不灵如何维修,电脑开机按钮的修理妙招与技巧
  8. 动态规划总结三01背包问题
  9. C语言循环结构和分支
  10. 索尼便携无线随身存储服务器,新玩意儿!!索尼的黑科技 便携式个人空调设备,只为怕热的你们...