2014-01-20 5 views
0

Ну,ECC Engine с BouncyCastle для Java

мне нужно сделать с помощью Java API для шифрования, дешифрования и еще вещи о Cryptografy. Я использую рамки bouncycastle. Но я не могу найти Elliptical Curve Cryptigrafy Engine в BC Framework, я нашел RSAEngine, IESEngine.

Я хочу зашифровать открытым ключом и дешифровать с помощью закрытого ключа, но для всех примеров, которые я нашел, нужны оба ключа для шифрования, поэтому я не понимаю. Нравится это:

Security.addProvider(new BouncyCastleProvider()); 

    KeyPairGenerator kpg = (KeyPairGenerator) KeyPairGenerator.getInstance("ECIES", "BC"); 

    kpg.initialize(192, new SecureRandom()); 

    KeyPair keyPair = kpg.generateKeyPair(); 
    PublicKey pubKey = keyPair.getPublic(); 
    PrivateKey privKey = keyPair.getPrivate(); 

    byte[] d = new byte[]{1, 2, 3, 4, 5, 6, 7, 8}; // 1. can someone tell me what this parameters does? 
    byte[] e = new byte[]{8, 7, 6, 5, 4, 3, 2, 1}; 

    IESParameterSpec param = new IESParameterSpec(d, e, 192); // 2. and this parameters? 
    IEKeySpec c1Key = new IEKeySpec(privKey, pubKey); 
    System.out.println(c1Key.getPublic()); 

    Cipher cipher = Cipher.getInstance("ECIES", "BC"); 
    cipher.init(Cipher.ENCRYPT_MODE, c1Key, param); 
    System.out.println(cipher.doFinal("test12345678900987654321".getBytes())); 

Но иногда у меня нет закрытого ключа, так как шифруется открытым ключом.

Кто-нибудь мне помогает?

ответ

0

Умм, насколько мне известно, для шифрования и дешифровки ECC нужен другой ключ. Вот почему это называется ассиметричным шифрованием.
Пусть Алиса хочет послать сообщение M (х, у) Бобу
1. Функция кривой y^2 = x^3 + ax + b mod p с опорной точкой G(x,y)
2. Алиса выбирает секретный ключ nA и вычисляет ее открытый ключ Qa = nA.G
3 . Боб выбирает секретный ключ nB и вычисляет его открытый ключ Qb = nB.G
4. Алиса шифрует сообщение D = M + na.Qb (D = шифрованный текст) и посылает (Qa, D) Бобу
5. для того, чтобы расшифровать сообщение, Боб вычисляет M = D + (-nb).Qa и он восстанавливает M

Надеюсь, это поможет.

Смежные вопросы