RSA
Le système RSA est un système de cryptographie utilisant des "clés". ces clés sont des nombres entiers de grande taille.
Texas Instruments (et beaucoup d'autres entreprises) utilisent le système RSA pour protéger les calculatrices de l'installation de systèmes d'exploitation (OS) ou de logiciels (applications) tiers. C'est à dire que l'on pouvait très bien développer son propre système ou sa propre application, mais que l'on ne pouvait pas l'installer, car l'on ne pouvait pas signer les fichiers correctement...
Sont concernées les familles TI-73, TI-83 Plus, TI-84 Plus, les TI-89, TI-89 Titanium, TI-92 Plus, TI-Voyage 200, et la gamme TI-Nspire.
Principe
Dans le système RSA, les clefs vont par paire (comme si l'une des deux était un verrou - mais en pratique on dira clef pour les deux). Il y a donc en RSA une clef publique et une clef privée.
- La clef publique (1 seul nombre) est connue de tous (la clé publique est inscrite dans la mémoire de la calculatrice à une adresse précise).
- La clef privée (2 nombres premiers) est gardée au secret par Texas Instruments.
L'une sert à crypter, l'autre à décrypter.
La clef publique est un gros entier, produit de 2 nombres premiers (qui constituent la clef privée).
Connaissant la clef privée, un calcul très simple (multiplication) permet de retrouver la clef publique associée. Partant de la clef publique, il est possible de retrouver la clef privée, mais c'est très difficile et très long... c'est une factorisation.
Clefs RSA 512 bits
Modèle | Id de la clé | Clé |
---|---|---|
Système TI-92 Plus | 01 | n=AD49CA3CFEF1F2DE400B5D3790813BF3822CB0BD83E3F565CE81B3A6CEF36FB833D932596D0E979615BAB6811ABE68834CA7CEBF46145C1DD1920AA4E9558DF7
|
Système TI-73 | 02 | n=F3FA1D8F06918D7CAA2A3D1EE76563E96F9FD0D6068647A7C17CFE427F8B0BE1B8347669EFDD16EE9EE8D02738DC1E44C961FE1F8230FA49C99B98C0556D3981
|
Système TI-89 | 03 | n=8976D4B5045A8988FB2BBAF8BADAFAFA4C5F8ABD5A9453D46790B33A03F6C225AAF31500E8246E63498D85A1C7C8240E0630331F1291F6F4F21611BD661FC2E7
|
Système TI-83 Plus | 04 | n=82EF4009ED7CAC2A5EE12B5F8E8AD9A0AB9CC9F4F3E44B7E8BF2D57A2F2BEACE83424E1CFF0D2A5A7E2E53CB926D61F347DFAA4B35B205B5881CEB40B328E58F
|
Système TI-Voyage 200 | 08 | n=8307B022CEC848E14CA5D57C0C148A4803FEB19F7EEEC4493C860DF89594250E8F0F80B7AB18CF03C27A07C1BA41B5ED4368261F4427BBE200A3B017EE100511
|
Système TI-89 Titanium | 09 | n=D65139FA0ADA452B80CD35C0F9ACA3604EFE1915F0D3A4232C2C3B1FFEDDF2D7B0A4572A12B0F86C92D7E69F9DB102B1C27A551AD128BB6AF9321784FD8EAFD1
|
Système TI-84 Plus OS 2.43 ou inférieur | 0A | n=EF5FEF0B0AB6E22731C17539658B2E91E53A59BF8E00FCC81D05758F26C1791CD35AF6101B1E3543AC3E78FD8BB8F37FC8FE85601C502EABC9132CEAD4711CB1
|
Application TI-92 Plus et TI-Voyage 200 | 0101 | n=BC747C4065E96E3B79B9BCC1A441BC3692E264CF681C9962B763C19824D84FB0474D567CF2FE55473378A18DB2E875BCE87F0022B6B9CC1E1FD455D9FACD0461
|
Application TI-73 | 0102 | n=FCBE6045900704759799BE325EA9B0E74C6541FDB9BEE21A55A8D2C85D370EC8CC0F42718C1265FF8C6ED77E9B3A23DD1C96A5924CDE5F87841B5910F81FF185
|
Application TI-89 et TI-89 Titanium | 0103 | n=916BDE593CC9F21B07F72033A92D6DC6DCCE8622705E9F7B4C4235A00B0A0DEA4F9827960CF2676C3F25F987C4BACD38A8F849A5CFCEC188BA0C8B3DFD3602ED
|
Application TI-83 Plus et TI-84 Plus | 0104 | n=878E894D2CBA39ED8191EFB30A0DF25B4DC3E5E585A80D8AEDBCD73B74167CEA5F19DAFE59BA36FFB70A33DD94571147D8A34F15A361AC5E17E49722DA3124AD
|
Application TI-Voyage 200 uniquement | 0108 | n=B53225EE518E9EAE0239DE47B9C3BB7F1D2647A3BB95AC6BA3E2B0FB21116BE47FDA55F33F01B046A201800526DF4712E17F1AA7DF15447549D5A317F954077F
|
Application TI-89 Titanium uniquement | 0109 | n=85421ED0805812E8255F7F8565D86CE20F35C3D6676797C9D73EB7CF1FF03AAF0180A6FBBE8DA95F246E8B08BC4E6DC93EA27BEB7BA5BA9F4485699DA6C1145D
|
Application TI-84 Plus uniquement | 010A | n=8F44CF7BA748D305139C11560ED3CF4D80212FA135AA5B32B7FE142EDD3B17E1DF3309DE483F353A60FE81417F3D0C95897CB23140A0FF83C914AA8584EBD105
|
Date Stamp sur tous les modèles | STMP | n=A3E337A7BB1A47198D79FC393AB0A7898FFD714E1FC80314FB61CE71481B8B40B51BFF332E7594A6AC847AE38354C74D022E0971D7DFB70D252F144105D11E15
|
Des fichiers .key utilisables avec des les logiciels pour signer les Apps ou les OS (comme RabbitSign, resign68k ou Build8xu ) sont disponibles en téléchargement sur le site de Brandon Wilson.
Les clés RSA 512 bits ont été factorisées par la communauté en 3 semaines pendant l'été 2009, beaucoup de passionnés ont fait travailler leurs ordinateurs simultanément et de façon complémentaire, 24h/24 et 7j/7 au sein d'un projet distribué.
Le résultat est qu'au 12 septembre 2009, les 15 clefs ont été factorisées.
Il en résulte des projets permettant d'installer des OS tiers ou normalement imprévus sur les calculatrices, en particulier des échanges sur la gamme des TI-Flash (TI-73, TI-83 Plus, TI-83 Plus Silver Edition, TI-84 Plus, TI-84 Plus Silver Edition ), dans les limites imposées par le matériel. Des projets d'OS tiers ont également vu le jour, la plupart assez inutiles (PongOS), et certains plus prometteurs mais inachevés (BaOS, KnightOS, OS2...)
Clefs RSA 1024 bits
Ces clefs concernent la gamme TI-Nspire. Les nombres étant deux fois plus grands que sur les clés 512 bits précédentes, personne n'a réussi a les factoriser (et personne n'a essayé).
Cependant, des OS modifiés ou improbables peuvent tout de même être lancés sur TI-Nspire, non pas en modifiant la signature RSA des OS, mais en contournant la vérification grâce à une faille du boot2 1.4.1571 (sur Clickpad/Touchpad) ou 3.0.1.16 (tous modèles).
Clefs RSA 2048 bits
Ces clés super-lourdes ont été rajoutées sur les OS MathPrint des TI-z80, à savoir la version 2.55 pour la famille TI-84 Plus et la version 4.0 pour TI-84 Plus C Silver Edition.
Elles rajoutent un important temps de chargement à l'installation de l'OS (environ 6 minutes) le temps que le petit processeur z80 effectue la multiplication.
Ces clés n'ont pas été factorisées bien entendu, mais des logiciels comme Make103 permettent de modifier les anciens OS à clé 512bits pour les rendre installables sur le bootcode 1.03 qui exige la clé 2048 bits. Des programmes comme Flashy arrivent même à contourner la protection en écriture de la zone stockant ce bootcode 1.03 (fin de la puce ROM) pour le reprogrammer.