Шифрование Elgamal Or RSA в Bouncy Castle не требует большого участия
Возможный дубликат:
Проблема шифрования RSA [Размер данных полезной нагрузки]
Мне нужна система, в которой я генерирую цифровые подписи на некоторых данных, используя, например, ECDSA в надувном замке. & затем используйте тот же подписанный текст и далее зашифруйте тот же текст, используя Elgamal или RSA в оживленном замке. Основная проблема заключается в том, что после подписания небольших данных (скажем "Hello world") с помощью ECDSA я получаю очень большой вывод, то есть цифру 54 байта.
Теперь, после подписанных данных, я использую Elgamal или RSA для шифрования данных... Так что здесь RSA или Elgamal не принимает всю входную строку размером 54 байта... требуется всего 32 байта, а дальнейший текст усекается...
ссылки, на которые я ссылался:
для подписи ECDSA:
А для 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 предназначен только для цифровой подписи, а не для шифрования. Кроме того, если мы используем ECDSA для шифрования, как вы сделали выше... тогда как мы расшифровываем данные???
Большое спасибо..