Je mets en œuvre des fonctions avec les mécanismes PKCS11 - CKM_RSA_PKCS et CKM_RSA_X_509. Je sais que les deux sont implémentés dans la bibliothèque Botan C++, mais je dois trouver des équivalents en Java. Le deuxième problème est quelle est la différence entre les deux?PKCS11 Différence de mécanismes + JAVA
Répondre
CKM_RSA_PKCS
fait référence à la norme PKCS # 1 v1.5 (voir RFC3447) pour le chiffrement RSA et les signatures numériques. Dans Java JCE, il s'agit généralement du choix par défaut pour RSA.
- Pour les signatures numériques, passer "MD5WithRSA", "SHA1WithRSA", etc à
Signature.getInstance()
- Pour le cryptage, passez "RSA/Aucune/PKCS1Padding" à
Cipher.getInstance()
.
CKM_RSA_X_509
fait référence à l'algorithme RSA de manuels (ou brut), c'est-à-dire, celui où aucun bourrage n'est défini. Dans ce cas, vous pouvez simplement passer "RSA/None/NoPadding" à Cipher.getInstance()
. La signature peut être faite avec le décryptage, où la vérification peut être faite avec le cryptage (suivi de la comparaison).
J'éviterais d'implémenter et d'utiliser du RSA brut, sauf si vous avez des cas d'utilisation spécifiques en tête. Les signatures PKCS # 1v 1.5 sont plus sécurisées. Pour chiffrer cependant, je ne recommanderais pas vraiment d'utiliser l'un ou l'autre, car ils sont tous deux non sécurisés. Il est préférable de ne compter que sur PKCS # 1 OAEP (CKM_RSA_PKCS_OAEP
); pour cela, vous passez "RSA/None/OAEPWithSHA1AndMGF1Padding" à Cipher.getInstance()
.
- 1. Java - PKCS11 et MSKeyStore
- 2. Différence entre les mécanismes de sécurité WS
- 3. Jeton d'accès Java PKCS11 Non trouvé Fournisseur
- 4. java.security.KeyStoreException: PKCS11 non trouvé
- 5. Mécanismes matériels
- 6. gnome porte-clés pkcs11 avertissement
- 7. Comprendre les mécanismes de IntentService?
- 8. Utilisation du fournisseur PKCS11 personnalisé avec jarsigner
- 9. Mécanismes de synchronisation - Windows CE
- 10. mécanismes d'authentification multiples dans une seule application utilisant java config
- 11. Mécanismes de synchronisation dans le système distribué
- 12. quels sont les différents mécanismes de téléchargement
- 13. Génération de la clé principale TLS avec carte à puce en utilisant PKCS11
- 14. Pilote PKCS11 pour lecteur de carte/carte CAC
- 15. Dll Open Source Microsoft.Xades à l'aide de PKCS11
- 16. java contrôle null différence
- 17. Tomcat Java Compiler différence
- 18. Différence entre téléchargements java
- 19. Mécanismes PHP/Zend pour la réécriture
- 20. Java - Calendrier/Différence de date - Trouver différence en quelques secondes
- 21. Mécanismes de protection de dépassement de tampon en Python
- 22. Options de conception requises: Gestion de divers mécanismes de stockage
- 23. mécanismes d'accès aux données de base de données Comprendre oracle
- 24. Bad Rembourrage Exception - RSA/BCE/OAEPWITHSHA-256ANDMGF1PADDING dans pkcs11
- 25. Différence entre 2 dates Java
- 26. Différence regex Java et Android
- 27. L'authentification du client avec le jeton PKCS11 (carte à puce)
- 28. Java différence entre deux fois
- 29. Java - System.currentTimeMillis(); Non retour Différence
OK, merci beaucoup pour votre réponse. Bien sûr, cela fonctionne, mais aujourd'hui, je reconnais que je dois ajouter un remplissage avant de faire des opérations de chiffrement, c'est-à-dire du texte brut avec un remplissage supplémentaire. J'ai essayé de le google, mais tous les résultats que j'ai trouvés concernaient toutes les opérations de cryptage. –
Ok, enfin je l'ai trouvé! Si ce serait utile pour quelqu'un - j'ai trouvé la classe java - classe RSAPadding qui pourrait être utilisée pour générer du texte matelassé à partir de plain. Le seul problème que j'ai trouvé est que pad de méthode (octet []) génère du texte rembourré avec 0 qui dans mon cas devrait être rogné. –