如何在 Miracl 库中进行序列化?
How to do serialization in Miracl library?
有没有办法在 C++ Miracl 库中进行序列化?
通常,在加密世界中,我们会在两个不同的程序中执行加密例程和解密(如 AES、RSA)例程,我希望在这些基于配对的加密中使用相同的结构,如基于属性的加密和广播加密,即在一个程序中实现加密功能,在另一个程序中实现解密。 Miracl repo this and this 中有一些示例程序。但是他们在一个程序中进行加密,密钥生成和解密。
所以我需要将加密中产生的密码(主要是G1和GT中的元素,有时是大对象)转储到文件中,然后在解密程序中重新加载它,有没有办法做这种工作? Miracl 或其他库中的函数?
更具体地说,我可以只将 G1 中的元素保存到 bytes 中吗?致电
G1 a;
std::cout << sizeof(a) << std::endl;
输出了40个字节,我可以只保存40个字节并重新加载吗?可能吗?
在 G1、G2 和 GT 中有一个构建函数溢出和恢复 类。您可以使用它们将 G1 溢出到 char* 并使用 char*.
恢复 G1
For example:-
pfc.precomp_for_mult(Q); // precomputation based on fixed point Q
char *bytes;
int len=Q.spill(bytes); // allocates byte array of length len
.. // ..and spills precomputation into it
Q.restore(bytes); // restores Q from byte array (and deletes array)
有没有办法在 C++ Miracl 库中进行序列化?
通常,在加密世界中,我们会在两个不同的程序中执行加密例程和解密(如 AES、RSA)例程,我希望在这些基于配对的加密中使用相同的结构,如基于属性的加密和广播加密,即在一个程序中实现加密功能,在另一个程序中实现解密。 Miracl repo this and this 中有一些示例程序。但是他们在一个程序中进行加密,密钥生成和解密。
所以我需要将加密中产生的密码(主要是G1和GT中的元素,有时是大对象)转储到文件中,然后在解密程序中重新加载它,有没有办法做这种工作? Miracl 或其他库中的函数?
更具体地说,我可以只将 G1 中的元素保存到 bytes 中吗?致电
G1 a;
std::cout << sizeof(a) << std::endl;
输出了40个字节,我可以只保存40个字节并重新加载吗?可能吗?
在 G1、G2 和 GT 中有一个构建函数溢出和恢复 类。您可以使用它们将 G1 溢出到 char* 并使用 char*.
恢复 G1For example:-
pfc.precomp_for_mult(Q); // precomputation based on fixed point Q
char *bytes;
int len=Q.spill(bytes); // allocates byte array of length len
.. // ..and spills precomputation into it
Q.restore(bytes); // restores Q from byte array (and deletes array)