草庐IT

elliptic-curve

全部标签

Ruby/openssl:将椭圆曲线点八位字节字符串转换为 OpenSSL::PKey::EC::Point

我正在尝试编写Ruby代码来检查我发现的特定消息上的椭圆曲线数字签名算法(ECDSA)签名here.问题是我不知道如何将公钥的八位字节字符串转换为OpenSSL::PKey::EC::Point目的。如果我用C写这个,我会把八位字节字符串传递给OpenSSL的o2i_ECPublicKey,它做的事情接近我想要的,实际上被referenceimplementation使用.但是,我搜索了sourcecodeofRuby(MRI)而且它不包含对o2i_ECPublicKey的调用,所以我不知道如何在不编写C扩展的情况下使用Ruby中的该函数。这是十六进制的八位字节字符串。它只是一个0x0

javascript - Google 的气泡提示和类似的 "learning curve"/"getting started"气泡提示用什么?

今天我进入我的Google日历,有一个小框(气泡提示)说明他们已经为日历事件实现了一个新的调色板。该框的右上角有一个小的关闭按钮。这些天在网络上很常见的东西。我希望我的(RubyonRails)网站上有类似的东西,以帮助新用户了解网站的功能,而不会在用户熟悉该功能后在页面上保留气泡提示。有谁知道这样的“入门”泡泡提示是怎么做出来的?是否只是一个简单的cookie存储在用户计算机上,关于他是否看到(关闭)提示?有人知道可以轻松制作这些提示的Rails插件/gem吗?谢谢:-) 最佳答案 这不是特定于平台的东西,但通常在前端完成。服务器

javascript - 椭圆曲线点压缩算法

我正在使用Javascript生成椭圆曲线,用于基于此示例代码的加密消息传递应用程序http://www-cs-students.stanford.edu/~tjw/jsbn/ecdh.html公钥会非常大,我知道可以压缩它们,但我一直找不到Javascript或大纲算法来执行此操作。这是一篇文章http://nmav.gnutls.org/2012/01/do-we-need-elliptic-curve-point.html概述了数学。 最佳答案 我想他们会增加对JavaScript椭圆曲线点压缩解决方案的兴趣,WebCrypt

security - 为什么P-521公钥X,Y有时是65字节有时是66字节

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭4年前。Improvethisquestion我使用golang生成P-521公钥。源代码看起来像这样:curve:=elliptic.P521()priv,x,y,err:=elliptic.GenerateKey(curve,rand.Reader)xBytes:=x.Bytes()yBytes:=y.bytes()//len(xBytes

Windows CNG ECDH secret 协议(protocol)结构

我花了几天时间搜索ECDHsecret协议(protocol)的结构,但没有成功。我在MSDN中发现NCryptSecretAgreement函数设置指向NCRYPT_SECRET_HANDLE变量的指针,该变量接收表示secret协议(protocol)值的句柄。我根本不熟悉WinAPI,所以除了阅读文档外我什么也做不了。我需要在基于Windows的桌面应用程序和网络应用程序之间交换key。我需要知道CNG的KDF究竟如何使用(在我的例子中是散列)secret协议(protocol)值。我正在使用SHA-256算法作为KDF并尝试散列secret的X和Y一致,但结果与CNG计算的结果

c# - .NET 中的 ECDiffieHellmanCng 是否具有实现 NIST SP 800-56A,第 5.8.1 节的 key 派生函数

我手头有一项任务需要使用NISTSP800-56A第5.8.1节中描述的key派生函数来派生keyMaterial。我不是密码学专家,所以如果问题很幼稚,请原谅。这是我到目前为止所做的:我有对方的公钥和我的私钥现在我尝试使用C#(.NET4)ECDiffieHellmanCng类使用ECDH1.3.132.1.12生成共享key,如下所示://TheGetCngKeymethodreadstheprivatekeyfromacertificateinmyPersonalcertificatestoreCngKeycngPrivateKey=GetCngKey();ECDiffieHel

c# - 使用 ECDiffieHellman P256 派生 key

我正在开展一个项目,以与Firefox中存在的新PushAPI集成,并且正在开发为W3C标准。其中一部分是加密数据。服务器会收到一条DiffieHellmanP256曲线(使用varkey=subscription.getKey('p256dh');在JS中生成)转换为.NETbase64的示例是BOAiqZO6ucAzDlZKKhF1aLjNpU8+R2Pfsz4bQzNpV145D+agNxvLqyu5Q2tLalK2w31RpoDHE8Sipo0m2jiX4WA=但是我在生成派生Material时遇到了问题。varkey1=Convert.FromBase64String("")

此 PHP 版本不支持 PHP openssl_sign() ecparam key 类型

openssl_sign正在返回签名字符串但打印此错误。我正在使用椭圆曲线键Warning:openssl_sign()[function.openssl-sign]:keytypenotsupportedinthisPHPbuild!in 最佳答案 已在php问题跟踪器中记录了一个问题:https://bugs.php.net/bug.php?id=66501 关于此PHP版本不支持PHPopenssl_sign()ecparamkey类型,我们在StackOverflow上找到一个类

php - 如何解密HTTPS(ECDHE)数据?

我正在尝试了解HTTPS的工作原理并进行一些实际测试。我有一个通过TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA加密的HTTPS通信捕获的数据。如果我没理解错的话,客户端在TLS握手期间会创建一个主key,然后使用服务器的公钥对其进行加密并发送到服务器。这个主key(作为纯文本)然后用作对称key来加密正在进行的通信。这是正确的吗?如果是,如果我知道主key,如何解密数据?起初对我来说这听起来很简单,所以我就写了这个脚本$masterKey='8ef36f0eb2c10ea6142693374f6c5c7ae65eee5f6bd45bd1990b08e6c1442

java - 根据 RFC 测试 vector 计算 Java 中的 ECDSA 签名

我正在用java为与ikev2协议(protocol)相关的程序编写测试工具。作为其中的一部分,我需要能够计算ECDSA签名(特别是使用NISTP-256曲线)。RFC4754描述了IKEv2中ECDSA的使用,并提供了一组测试vector(包括我需要的p256曲线)。我正在尝试使用以下代码通过java的ECDSA签名实现来运行ECDSA-256测试vector值(RFC中的Section8.1)://"abc"fortheinputbyte[]input={0x61,0x62,0x63};//UglywayofgettingtheECParameterSpecfortheP-256c