Java JPBC中,若要加密消息M,计算M和双线性对e的乘积,M是否一定要取自GT?

如果M为字符串,数字,文件?是不是就不能用这种方式加密?那应该如何加密?

M如果是字符串,数字,文件等,就不能用这种方式加密,因为这种方式只能用于GT中的元素。如果要加密这些信息,可以使用哈希函数将其转换为GT中的元素,然后再进行加密。例如,可以使用SHA-256哈希函数将字符串转换为GT中的元素,然后再进行加密。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7723809
  • 除此之外, 这篇博客: 【密码学原理与实践】(一)移位密码 附java代码实现中的 模m上的算术运算 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    令Zm表示集合{0,1,2,…m-1},在其上定义两个运算,加法(+)和乘法(×)其运算类似与put的实数域上的加法和乘法,所不同的只是所得的值是取模以后的余数。

    举个栗子:

    在Z16上计算11×13,因为11×13=143 = 8×16+15,故在Z16上11×13=15.


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^