【发布时间】:2015-06-04 15:06:09
【问题描述】:
您好,我正在用 java 编写一个程序来测试 elgamal 加密的变体,但是我的问题不是 encryption/decryption 链本身,而是如何对给定的输入执行操作:文本文件。我有一个包含一些单词的文本文件(例如内容可以是:"Hello world, this is a test"),我需要像这样对它们执行数字运算:
ciphertext= (message * y) mod p
其中y 和p 是两个biginteger。我试过这个转换链:(一次读取一个字符串):
字符串->十六进制->十进制
然后执行加密操作,再逆向:
十进制->十六进制->字符串
但这并不总是有效(我目前正在调查这个问题)。已修复。
我的问题是,有更好的方法吗?我正在阅读有关 byte array 的信息,但我不确定如何使用它们。
[如果需要,我可以发布加密/解密链的示例]
【问题讨论】:
-
“但这并不总是有效”- 我们如何知道哪个时间有效,哪个时间无效?显示您的代码,以便我们了解问题出在哪里。
-
@rakeb.void 我目前正在调查这个问题,但是对于大素数(>1024 位),它的测试速度并不快(请记住,即使是纯文本中的一个简短单词也很漂亮转换为整数时的大数。例如,单词“hello”等于“448378203247”)。我不认为我的转换链很好,但这是我想到的唯一解决此问题的方法,但是我的问题仍然悬而未决。
标签: java encryption elgamal