Bouncy城​​堡中的Elgamal或RSA加密并没有大量投入

时间:2012-07-04 12:04:58

标签: cryptography rsa bouncycastle elgamal

  

可能重复:
  RSA Encryption Problem [Size of payload data]

我需要一个系统,在这个系统中我使用充气城堡中的ECDSA生成一些数据上的数字签名。 &安培;然后使用相同的签名文本&进一步使用Elgamal或RSA在充气城堡中加密相同的文本。 主要问题是在使用ECDSA签署一个小数据(比如说“Hello world”)之后,我得到了非常大的输出,即54字节数字。

现在在签名数据之后我使用Elgamal或RSA进行数据加密......所以这里RSA或者Elgamal没有采用54字节的整个输入字符串..它只需要32个字节&进一步的文字被截断......

我提到过的链接:

用于ECDSA签名:

http://mytenpennies.wordpress.com/2009/04/18/using-bouncycastle-net-library-for-elliptical-curve-cryptography/#comment-30

对于RSA或Elgamal: http://ox.no/posts/rsa-using-bouncycastle

示例代码:

Public Function Encrypt(ByVal data As Byte(), ByVal key As AsymmetricKeyParameter) As Byte()
    Dim e As New ElGamalEngine()
    e.Init(True, key)
    Dim blockSize As Integer = e.GetInputBlockSize()
    Dim output As New List(Of Byte)()
    Dim chunkPosition As Integer = 0
    While chunkPosition <= data.Length
        Dim chunkSize As Integer = Math.Min(blockSize, data.Length - (chunkPosition * blockSize))
        output.AddRange(e.ProcessBlock(data, chunkPosition, chunkSize))
        chunkPosition += blockSize
    End While
    Return output.ToArray()
End Function


Public Function Decrypt(ByVal data As Byte(), ByVal key As AsymmetricKeyParameter) As Byte()
    Dim e As New ElGamalEngine()
    e.Init(False, key)
    Dim blockSize As Integer = e.GetInputBlockSize()
    Dim output As New List(Of Byte)()
    Dim chunkPosition As Integer = 0
    While chunkPosition <= data.Length
        Dim chunkSize As Integer = Math.Min(blockSize, data.Length - (chunkPosition * blockSize))
        output.AddRange(e.ProcessBlock(data, chunkPosition, chunkSize))
        chunkPosition += blockSize
    End While
    Return output.ToArray()
End Function
你可以告诉我这件事吗......

而不是使用RSA或ELgamal ..我可以自己去ECDSA进行加密吗?...但据我所知,ECDSA只适用于数字签名&amp;不适用于加密。如果我们像上面那样使用ECDSA进行加密......那么我们如何解密数据???

非常感谢..

0 个答案:

没有答案