![]() |
安静的水龙头 · SQL Server 排序的时候使 ...· 8 月前 · |
![]() |
爱喝酒的篮球 · 一小时搞定 简单VBA编程 ...· 9 月前 · |
![]() |
没读研的油条 · selenium基于登录HTTP ...· 11 月前 · |
![]() |
奔跑的斑马 · python将字符串写入文本文件_mob64 ...· 1 年前 · |
![]() |
小胡子的匕首 · 使用Databricks ...· 1 年前 · |
如何在C#中使用ECC?我认为我应该使用ECDiffieHellman (虽然我不确定,因为它可能不是我想要使用的非对称加密算法,但在互联网上,我没有通过搜索短语ECC找到任何其他推荐的加密算法),但是没有任何加密方法,而且我自己的密码学也不够好。我也没有看到任何允许我使用ECC加密的NuGet包。但我认为这是必须要做的,但是怎么做呢?
ECDiffieHellman
是一个抽象类,因此您需要使用
ECDiffieHellmanCng
。
an official example in the docs
提供了它是如何工作的,它演示了消息加密和解密。
如果您需要更多关于执行情况的信息,请详细说明您的问题。
来自WIKI -几种基于离散对数的协议已经适应于椭圆曲线,将群Zp^x替换为椭圆曲线:
椭圆曲线差分-Hellman(
H 111
椭圆曲线数字签名算法(
E 112
ECDSA
E 213
)基于数字签名算法,采用哈里森的p-曼哈顿度量
ECDH
ECDSA变形方案,
H 127E 128ECQVE 229隐式证书方案。H 230F 231
在2005年的RSA会议上,国家安全局(NSA)宣布
Suite B
专门用于数字签名生成和密钥交换。该套件旨在保护机密和非机密的国家安全系统和信息。
以下是可供选择的C#收养清单:
ECDH
(RFC6239,NSA的一部分)
https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography.ecdiffiehellmancng?view=net-6.0
ECIES
(可在OpenCrypto项目中获得)-参见单元测试
https://github.com/kazuki/opencrypto.net/blob/master/UnitTests/ECIESTest.cs
ECDSA
(RFC5759 )中的使用示例有一个轻量级的工具,例如
https://github.com/starkbank/ecdsa-dotnet
EdDSA
可以做BouncyCastle
https://www.scottbrady91.com/c-sharp/eddsa-for-jwt-signing-in-dotnet-core
ECMQV
(密钥协议),可以用BouncyCastle
https://github.com/bcgit/bc-csharp/blob/93b32a75656955faf7996d0f3e0ed391968d2ac6/crypto/src/crypto/agreement/ECMqvBasicAgreement.cs
ECQV
找出
https://github.com/Trustpoint/tpm2m/tree/master/java/src/ca/trustpoint/m2m/ecqv
实现(至少给出一些参考,算法是公开的)
https://github.com/Trustpoint/tpm2m/tree/master/java/src/ca/trustpoint/m2m/ecqv
。
概括地说,在所有
ECC算法中,ECDH和ECDSA是使用最广泛的,并且具有MS支持
,其余的都是可用的,但可能更棘手。
变形方案使用哈里森的p进位曼哈顿度量
-这是一个文件很少,似乎是一个科学问题(不是活的/广泛使用的算法)。
您需要一个名为Security的工具,它可以是具有相关软件接口的硬件-安全模块,也可以是软件-安全模块。软件安全模块的核心是 PKCS#11InterOp for C# 。这里有GitHub ( for RSA key generation )示例代码,对于椭圆曲线,必须进行搜索。然而,它的社区并不丰富(您可以在堆栈溢出中找到#pkcs11interop或#interop的问题)。PKCS#11是为安全模块定义的标准,而PCKS11Interop是C#上的C++库的包装器。
用法如下:
library.
收到的密钥名称执行函数。
在你的系统中:
Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
扫码关注腾讯云开发者
领取腾讯云代金券