Qt Crypto - 如何验证RSA密钥?

时间:2014-12-12 03:54:07

标签: qt authentication rsa

我尝试使用Qt Cryptographic Architecture为节点生成公钥/私钥对,并希望拥有一个协议,其中节点通过以下方式确认消息来自给定的源(公钥)发出挑战以确保他们是相应私钥的所有者。我虽然有点坚持QCA的实际语法......

这应该给我一个私钥,我也可以从中获取公钥:

QCA::KeyGenerator generator;
QCA::PrivateKey privateKey = generator.createRSA(1024);

QCA是否已经内置了某种挑战协议?如果是这样,我该如何使用它?如果没有,我如何使用这些密钥应用一些标准的加密质询协议?我真的只是想演示一个简单的安全概念 - 我不是在寻找任何复杂甚至特别强大的东西。

此外,这是一个附带问题,但由于我不需要加密,我应该选择DSA而不是RSA吗?

1 个答案:

答案 0 :(得分:0)

这不止一个。但由于所有客户端都已具有非对称密钥对,因此您可以在建立连接时部署two-way TLS。 在该方案中,如果客户端和服务器信任彼此的证书(公钥),则它们仅允许建立连接。这可以保证客户端身份验证和不可否认性。

您需要将服务器证书提供给所有客户端,并将所有客户端证书提供给服务器。为避免与证书颁发机构打交道,证书可以自签名。

QCA提供了TLS clientserver的示例。