Depuis la mise sur le marché du microprocesseur SPARC T4, les nouvelles instructions permettant de tirer profit des fonctions cryptographiques sont disponibles directement dans le matériel. Ces instructions ne nécessitent pas de privilèges. Ainsi, tous les programmes peuvent utiliser ces instructions sans être tenus de posséder un environnement de noyau quelconque, des autorisations root ni une autre configuration spéciale. La cryptographie est effectuée directement sur le matériel au lieu d'utiliser de nombreuses instructions de bas niveau. Par conséquent, les opérations de cryptographie sont plus rapides que les opérations sur les systèmes dont les processeurs SPARC précédents possédaient des unités centrales distinctes pour la cryptographie.
La comparaison suivante montre les différences dans le flux de données entre des systèmes SPARC T-3 et des systèmes SPARC T-4 avec optimisations cryptographiques.
Figure 2-1 Comparaison du flux de données entre des systèmes SPARC T
Le tableau suivant fournit une comparaison détaillée des fonctions cryptographiques dans des unités à microprocesseurs SPARC T associées à des versions d'Oracle Solaris spécifiques.
|
Les instructions de chiffrement T4 incluent ce qui suit :
aes_kexpand0, aes_kexpand1, aes_kexpand2
Ces instructions permettent d'effectuer une extension de clé. Elles permettent d'étendre la clé 128 bits, 192 bits ou 256 bits fournie par l'utilisateur en une planification de clé utilisée en interne au cours du chiffrement et du déchiffrement. L'instruction aes_kexpand2 est utilisée uniquement pour AES-256. Les deux autres instructions aes_kexpand sont utilisées pour les trois longueurs de clé : AES-128, AES-192 et AES-256.
aes_eround01, aes_eround23, aes_eround01_l, aes_eround_23_l
Ces instructions sont utilisées pour les cycles de chiffrement AES ou les transformations. Conformément au standard AES dans FIPS 197, le nombre de cycles utilisés (par exemple 10, 12 ou 14) varie en fonction de la longueur de clé AES, car l'utilisation de clés de plus grande taille indique le souhait d'un chiffrement plus puissant, au prix de calculs supplémentaires.
aes_dround01, aes_dround23, aes_dround01_l, aes_dround_23_l
Ces instructions sont utilisées pour les cycles de déchiffrement AES de façon similaire à leur utilisation pour le chiffrement.
Instructions pour DES/DES-3, Kasumi, Camellia, la racine carrée/multiplication de Montgomery (pour RSA Bignum) et les sommes de contrôle CRC32c
Instructions de synthèse MD5, SHA1 et SHA2
Les instructions cryptographiques du matériel SPARC T4 sont disponibles et utilisées automatiquement sur les systèmes SPARC T4 qui exécutent Oracle Solaris 11 par le biais du moteur t4 intégré sur le microprocesseur T4 du système. A partir de Oracle Solaris 11.2, ces instructions sont désormais intégrées dans le code en amont OpenSSL. Ainsi, dans cette version, OpenSSL 1.0.1e est fourni avec un patch lui permettant d'utiliser ces instructions.
Pour plus d'informations sur les instructions T4, reportez-vous aux articles suivants.
"Exciting Crypto Advances with the T4 processor and Oracle Solaris 11"
Pour déterminer si les optimisations T4 sont utilisées, utilisez la commande isainfo. L'inclusion de sparcv9 et d'aes dans la sortie indique que le système utilise les optimisations.
$ isainfo -v 64-bit sparcv9 applications crc32c cbcond pause mont mpmul sha512 sha256 sha1 md5 camellia kasumi des aes ima hpc vis3 fmaf asi_blk_init vis2 vis popc
Pour vérifier la version d'OpenSSL qui est en cours d'exécution sur votre système, saisissez openssl version. La sortie se présente de la manière suivante :
OpenSSL 1.0.0j 10 May 2012
Pour déterminer si votre système prend en charge OpenSSL avec les optimisations SPARC T4, consultez la bibliothèque libcrypto.so comme suit :
# nm /lib/libcrypto.so.1.0.0 | grep des_t4 [5239] | 504192| 300|FUNC |GLOB |3 |12 |des_t4_cbc_decrypt [5653] | 503872| 300|FUNC |GLOB |3 |12 |des_t4_cbc_encrypt [4384] | 505024| 508|FUNC |GLOB |3 |12 |des_t4_ede3_cbc_decrypt [2963] | 504512| 508|FUNC |GLOB |3 |12 |des_t4_ede3_cbc_encrypt [4111] | 503712| 156|FUNC |GLOB |3 |12 |des_t4_key_expand
Si la commande ne génère aucune sortie, votre système ne prend pas en charge les optimisations SPARC T4 pour OpenSSL.