Bouncy Castle Cryptography Library 1.79

org.bouncycastle.pqc.legacy.crypto.mceliece
Class McElieceFujisakiCipher

java.lang.Object
  |
  +--org.bouncycastle.pqc.legacy.crypto.mceliece.McElieceFujisakiCipher
All Implemented Interfaces:
MessageEncryptor

public class McElieceFujisakiCipher
extends java.lang.Object
implements MessageEncryptor

This class implements the Fujisaki/Okamoto conversion of the McEliecePKCS. Fujisaki and Okamoto propose hybrid encryption that merges a symmetric encryption scheme which is secure in the find-guess model with an asymmetric one-way encryption scheme which is sufficiently probabilistic to obtain a public key cryptosystem which is CCA2-secure. For details, see D. Engelbert, R. Overbeck, A. Schmidt, "A Summary of McEliece-Type Cryptosystems and their Security", technical report. https://www.degruyter.com/document/doi/10.1515/JMC.2007.009/html


Field Summary
static java.lang.String OID
          The OID of the algorithm.
 
Constructor Summary
McElieceFujisakiCipher()
           
 
Method Summary
 int getKeySize(McElieceCCA2KeyParameters key)
           
 void init(boolean forEncryption, CipherParameters param)
           
 byte[] messageDecrypt(byte[] input)
           
 byte[] messageEncrypt(byte[] input)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

OID

public static final java.lang.String OID
The OID of the algorithm.
Constructor Detail

McElieceFujisakiCipher

public McElieceFujisakiCipher()
Method Detail

init

public void init(boolean forEncryption,
                 CipherParameters param)
Specified by:
init in interface MessageEncryptor
Following copied from interface: org.bouncycastle.pqc.crypto.MessageEncryptor
Parameters:
forEncrypting - true if we are encrypting a signature, false otherwise.
param - key parameters for encryption or decryption.

getKeySize

public int getKeySize(McElieceCCA2KeyParameters key)
               throws java.lang.IllegalArgumentException

messageEncrypt

public byte[] messageEncrypt(byte[] input)
Specified by:
messageEncrypt in interface MessageEncryptor
Following copied from interface: org.bouncycastle.pqc.crypto.MessageEncryptor
Parameters:
message - the message to be signed.

messageDecrypt

public byte[] messageDecrypt(byte[] input)
                      throws InvalidCipherTextException
Specified by:
messageDecrypt in interface MessageEncryptor
Following copied from interface: org.bouncycastle.pqc.crypto.MessageEncryptor
Parameters:
cipher - the cipher text of the message
Throws:
InvalidCipherTextException -  

Bouncy Castle Cryptography Library 1.79