您是否知道有关在C++或C中演示公钥私钥加密(PPKE)的教程?
我正在尝试学习它的工作方式,最终使用Crypto++创建自己的使用公共和私人钥匙的加密。也许有Crypto++ PPKE教程吗?
也许有人可以解释一下公钥和私钥之间的关系(如果有的话)? 有人能否建议我一些非常简单的公钥和私钥值(例如'char*32','char / 32'),以便创建我的简单PPKE程序来理解概念?
您是否知道有关在C++或C中演示公钥私钥加密(PPKE)的教程?
我正在尝试学习它的工作方式,最终使用Crypto++创建自己的使用公共和私人钥匙的加密。也许有Crypto++ PPKE教程吗?
也许有人可以解释一下公钥和私钥之间的关系(如果有的话)? 有人能否建议我一些非常简单的公钥和私钥值(例如'char*32','char / 32'),以便创建我的简单PPKE程序来理解概念?
www.muppetlabs.com/~breadbox/txt/rsa.html
该文章适合想要理解 RSA 的程序员,但数学基础不够扎实的人阅读。这是唯一一篇让我真正理解 RSA 的文章。虽然它不包含 C 或 C++ 代码,但一旦你理解了它的工作原理,就应该能够自己编写代码。(虽然我同意其他人的观点,不建议自己编写实现,但它仍有助于清晰地理解 RSA)。希望对您有所帮助!
#include <iostream>
#include <iterator>
#include <algorithm>
#include <vector>
#include <functional>
const int e_key = 47;
const int d_key = 15;
const int n = 391;
struct crypt : std::binary_function<int, int, int> {
int operator()(int input, int key) const {
int result = 1;
for (int i=0; i<key; i++) {
result *= input;
result %= n;
}
return result;
}
};
int main() {
std::string msg = "Drink more Ovaltine.";
std::vector<int> encrypted;
std::transform(msg.begin(), msg.end(),
std::back_inserter(encrypted),
std::bind2nd(crypt(), e_key));
std::transform(encrypted.begin(), encrypted.end(),
std::ostream_iterator<char>(std::cout, ""),
std::bind2nd(crypt(), d_key));
std::cout << "\n";
return 0;
}