RSA w akcji, czyli Parasoft vs Ivanopulo

Algorytm RSA często jest używany w aplikacjach do sprawdzania poprawności danych licencyjnych. Zwykle ma to na celu uniemożliwienie utworzenia generatora kluczy i zwykle to tylko złudne poczucie bezpieczeństwa.

Taki przykład można znaleźć w oprogramowaniu firmy Parasoft C++Test i ich systemie licencyjnym, który opiera się właśnie na bezpieczeństwie kluczy RSA.

Poniżej lista kluczy RSA z niespodzianką na końcu:

package com.parasoft.xtest.lic.client.validator;

public class ParaSoftKeys
{
  private static final ToolKey[] _PUBLIC_KEYS = { 
    new ToolKey(
    0, 6, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAMJQQ8H19ab/HxBrnwAoMq3CrpxrA1jwQSAS7CX1LDuYk5pep2HF5UXYPZjyN6UzzsKMJ22LW9vtg04mJ3XKtycCARE="), 
    new ToolKey(
    0, 6, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAPKRujlYE4lfyii9A1Oq4BONJrej3z9//F5OIa20XJXRsu6HA26fpK572r1ttzvtQFIkaBWCeOATsAWPXHBihYkCARE="), 
    new ToolKey(
    0, 7, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALoOD6TbcA6aXSObEzKl9HPWbI2QU5XclIWjFmz4SQpQvbjWMzRzPOqj1+MrNJJz1n0qkIGbNTxluBGLWyTen5ECARE="), 
    new ToolKey(
    0, 7, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKWhmAo0yXMR04/7qxUdVSuwXLc6XNSbahLjo3VFS+4W+KM2eGRBLKHjubUOWFeO80IG5ZsgnPJyUd3jynV4jNUCARE="), 
    new ToolKey(
    2, 4, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALyP3jvS1g6XCevjZULv+eYf9beybHrtffUEQezE577+8CiQUDAV569X4VDO/x5ojwoEmwzlX3Q53vGPaLoaqY0CARE="), 
    new ToolKey(
    2, 4, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAL2wKCGElUQ1dTTD/56RSEDPEpM3l+0cgxMvbvmqmU17lkaUt1w/PQmN/Kl3vbFoEWQtR3+6Gd1GUF+pxYcPmH0CARE="), 
    new ToolKey(
    2, 4, 2, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAO6hT4tYSUKYOFui11S1vHmnEu9cryuM3f07bpcgAhkoz9EaheDxTWlpz9DeAuJQrRx/hnP1elLKn+/av51qgQECARE="), 
    new ToolKey(
    2, 4, 3, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBANlMqCyUp3uPRSC6yiYTmYvS24gn5Bd2AGdq6tf5QLRpL9AuvMcrSKcZT5g2/j7z38xkO4SOgHyskXBe9qMG+A0CARE="), 
    new ToolKey(
    2, 5, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAMbKOHqRoYM8z3tm+XI8P44hXz6rNLZkdeYSXBlePN83YWaj5iw9zbPvcmcNZga60CkS7uBcgaaQNA/zaV09onUCARE="), 
    new ToolKey(
    5, 4, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBANmiB/F644aOChvLpofXFOqPSrzlzAs+95AgCl7CQYG2/vaH/lVvDC0l45XIOAMgTNFzf7l+R728DfnCBiMuYH8CARM="), 
    new ToolKey(
    5, 4, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBANpZDHe29SAlNOy2SYom1YYDCr782rBYfgQ/AlUUzsdq8RGLck4N6ekNBYtrXSN1TYZgBz1PzD5QD9RKnYEaD2cCARE="), 
    new ToolKey(
    5, 4, 2, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKLNMNXxD5E5UBQaysYv5+Ckx8Re1ug6v6Tm2UFvwOqfd3uxm5aXRTXW44y+DVEk++esL5i5JG+Rth/U2UW8J6cCARE="), 
    new ToolKey(
    5, 4, 5, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAN9NsrWXFDXS98MGbwO8/Zc6DneJXid7ggnz95v8Ghbw4C6923DpbZbm+L2tjEnQ4B92WibiypK+YBzswxG1joECARE="), 
    new ToolKey(
    5, 5, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAJ3Eq5F/AL4tADz7nomwDBlmR8durgLR8i3eRKEni4+bWCXXbWdpTxhCop4rc6cXdNLfHX2ACwz5jVzQoEZ4fRsCARE="), 
    new ToolKey(
    5, 6, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALQSoHDsMkZXwswi6zyDuYLHOsDr3i4J4e4nFDo9FdkjcCpiaW/5Hq+zvZcbrfKIfZhh7PdMagsZdL4iZp0NP3cCARE="), 
    new ToolKey(
    5, 7, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAMeFZvffVut1GgcWj6L9D4K5qTzGxfClpvcOSBpDDVsXj7kiOY4FH0IFGcFu+/9L2OlAqMK0tOFyqi6JPgO1VIsCARE="), 
    new ToolKey(
    5, 8, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALv7JrpE4VtnnrMcAdyNr5LYJPxqIcnZ47dyGBDLqw7Wbq18OaXJqI5+CJCU9mlJcf6ZpkFyD2Y3RFVGCfhbkpUCARM="), 
    new ToolKey(
    5, 9, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAMAxpbAFyBqe/DgkpOS7ZAC5r4sY4iLf+E00lNojvdDr5FysM/CFL+JR3IPiYY33i8aV1PC6TzGiDATCG6Q/1TECARE="), 
    new ToolKey(
    5, 9, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALyJEkCxEiHq5US0EbMqxIRmsx0AlFEgngWgB7CBEUyIyAIUZniKPsatnah2WFGZwLcHu6U0vLgxi6Ju/uO/ofECARE="), 
    new ToolKey(
    5, 9, 2, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBANPU4b3yc4X0OQc+vJ+Ts8xD1XqZ1DkNYri3dsP9dK0CZcGqht0ByfYSioW3niUVWRB+2mt7+Y8WitTP+jYntpkCARM="), 
    new ToolKey(
    5, 9, 3, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKaZOYa8Yro27qDKYhpf2d0yA+KmnDJ5sCleEqTEtVoUB3WYlKS+dmfHD5JyhvO/PKgpYN/xCPrfffA/vcxcvisCARE="), 
    new ToolKey(
    5, 9, 4, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALDuF4v/xgxOFjsnJF8jOyiNM3qR55bR7MYUKST6GpQeqxBz3s6Ph9hQ5iL0EKwlLCfEoOQWUajrRHzJb7leTMMCARE="), 
    new ToolKey(
    5, 9, 5, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAI7VLlgmoe1tD86ZV4PcV1PtIPcRwjH5wvtyQJja2cDTYsdr0ys1eSto3HSvgguZkfKX/Ofjqm730mXEJMYtMv8CARE="), 
    new ToolKey(
    11, 1, 2, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAMrMrgixndnh4qOil0r28mQF4iXBHUbjVes0QeCM0BBRGfsa8BHi8w1y7RK3/0Hiv9iDE4LcoKbEg8O1NIKml2UCARc="), 
    new ToolKey(
    11, 1, 3, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAMN3SUM/k5QVef8t7EvUwJ4aG/uRJLI7t+BaB0+0Czvvw9JUP+XxzCEiQyQfn6kFdcfu9BYVW2ywj+UXuITS1IMCARE="), 
    new ToolKey(
    11, 2, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALyqjq4Wf5LKcjBEbgQ+2NGaVr+Q7kBd55X4N9gQdcAsGYDtRzG+USZy995Yt80uDjzQn/HLSkUJRRT5r/IUN2sCARE="), 
    new ToolKey(
    11, 2, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKSiaksZjmvCr7501qBY6F7VZ3hlc214NztLzhzTh0Ift9kV4j+Yq8Mg78ZrQJG+g8nckOLgFyjaiJWhMoNOdHkCARE="), 
    new ToolKey(
    11, 2, 2, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAK1nnxOGt2zIw3b4ncOpBVRCOJ0MDS5705iGde8nK5N8oLm0EQuoyUscPvivooeDnDJHiMSKcBgbCrp6V4DA7UECARE="), 
    new ToolKey(
    11, 2, 3, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBANAt5bLNr/mgsM+F9RMh0Y/tAMHxOjbjTgkxGQ0QFRCuDVwzfqaWf1sxeZ17C+QkgPAtKpG8PQtDaQJ0PSEnmXcCARM="), 
    new ToolKey(
    11, 6, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALWk6+HpO9U7DIYyl74bagemUaTSkRLBFbuHD+RNXfqOkmBv3PzPKKiIAHJl61WB4mPKDVIHtpn2+GRLDHq0LXkCARE="), 
    new ToolKey(
    11, 6, 5, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKnAou/AYD2ASJkwZ1tpxVK5ROX9J69Ljkr4MQV4b2LFmSh3z6Jy35m6e4GPuzFWYZ4zg4jJus1Hl7mu+PkZiT0CARE="), 
    new ToolKey(
    11, 6, 6, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBANb+XTzkem0olNX2GXt7BTG0Iu+Gtd+WlNHsXQisYx1H2sC0LTNGeX5QYPr0D4ttCTSrVeniRG8RQ967Kl3DsWECARE="), 
    new ToolKey(
    11, 6, 7, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALKKm2oFqNFTy4zZnhpnFczKp5mHSQuH8hhdfF8dlZck9JdveHRUmR4Cvv1xc+lsd1y6j4TZh7W2tLTRESDuSw0CARE="), 
    new ToolKey(
    11, 7, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALQuvBMZgF2icc4a9hKxtBnmEUgOvDp9UHRkfEf4e9+Tnvpi678/ItMhUmSJf8DgwI9/14jUOPUK4uU9VI89orsCARE="), 
    new ToolKey(
    11, 7, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAOKb8cEs9XjZ0l6C0mr7LUx9EiRBW4vJuPMo+ZwchVF1hJ+rTZQp0gHPSJ7AAHZhI3YQ+oYDRBj4AAGPZvOhgTcCARE="), 
    new ToolKey(
    11, 7, 2, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAL/7cCC0GsBT74poBrgDKoFZ19PX6INGEi+ynuShyqxMNYQbhJObEvF/QWSoHsEM6MSK4umHXXcqTOqCVnwixn0CARE="), 
    new ToolKey(
    11, 7, 3, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKqi87VUreqP4/qAuFqGbquY9x9Q/43hGZy1wKLM31TYB42JeXOQ+f7qyYCfISBQtz+d2mjCTZjF/eNsMZkFD6sCARE="), 
    new ToolKey(
    11, 9, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAPZ65Xdv/7X1KpNxipcths5P0QxzOHVVG0hDQBOUr4in5nn6ibn49tM9lqjGOwAE7+vDd2GMJs28dnqzUTMLr9ECARE="), 
    new ToolKey(
    11, 9, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAJiYZyjQfn+EMaO7f40SNCd3QVJSMVi9bZQlR1cTJH2RtizdJtL2AOhsDMH4li0tq5VlujxqqqxQ66Yp20rihcECARE="), 
    new ToolKey(
    11, 9, 2, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAOGg7/ol36cJYAJ8LO3YjuuXJ6Eect/y5ahN/lPaCBo9NAQzzuJHutdckuNcNF7qNDRZvyENPBxhSou+kvqzFy8CARE="), 
    new ToolKey(
    11, 9, 3, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAMDYwLrfkcD74qEQ9nMdw3LqTIHXdjarwHbQ7X5xhp73d5IeX+bJm/nOCm2cDNMqvj+4UOmc/oFx1N0t/ehq8FECARE="), 
    new ToolKey(
    11, 9, 4, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAM3Rc3ZgzBPsuE40Wtg1NRpBY4jfYJESeqlIA9DKW7KOAIpm7wrtkMorsxnielAAKviKp55wzLUwxbcBQdeWrFsCARE="), 
    new ToolKey(
    11, 9, 5, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBANIMR+UrwtB392P1v92JwDa+++gc6VhxQ/VcGRFrGltypeJBaiQpIZ/wkRHa/6WeHW3m7MXJoxQU8xWYXPAmf2cCARE="), 
    new ToolKey(
    12, 3, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKcebFiEltIbc9YAsC6V+kqRJm3wcfN96jaqDZ4+/1bfdg9Yk/V4AUPdpKpXdE0N6921P+TWIQmBETfQ1xQXhzUCARE="), 
    new ToolKey(
    12, 3, 2, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAMgk5AaiOKukuLCPYWQb7Urrjb1nweR0bErFQRc4nRT3A17eE2FnqSy4YjASzCxvjyh585io/wWRZjUw5V4W72MCARM="), 
    new ToolKey(
    12, 3, 5, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAN0p+6lIHhC8L6i7P50lKJED6fHYrFW1JzeOhbNi4jfkId+4a4eOG1SuONA3NCzYOOKT6ej8BXyG+xr3mMI5vbcCARE="), 
    new ToolKey(
    12, 4, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAMZanGmry8Wgr6ldiB+wqENoZNJRc+R2Y/h3asbJLJ6NObPOn5/Vf9zFI/ipSqOKCtwiQIa9GbBjaBKtTcxtRIMCARE="), 
    new ToolKey(
    12, 4, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAMZBIyAI9ec0EJT14NA0G4ncrSFTvt33S0JUSmRwZ0rTUhnPnGqblystLGJ5gZXjI0PjThDG35O/rmT+GZ6gFykCARE="), 
    new ToolKey(
    12, 5, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALp842Ixsooj7Q4rciPgLUQKePCbQ60UUzTyTe6/HcS/1+pwB4tWVOkXvU78Fwuaj/8ZZ6AHpTBiLtEDQQNE51MCARE="), 
    new ToolKey(
    12, 5, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAIiDRDqFb6FyGMtOcg69/yVhOCuz8wADNMLxgyegFh5PIzKV8Gu5h75mp7WZ2mGqN6MaET2Y2jn4jTTqB5p7ljcCARE="), 
    new ToolKey(
    12, 5, 5, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALF3pqSoX7vMWZBKO6x7LX6K/tuENDSh8RJ6CTIKJoEQY7QxEnOJpP03VCcslX2ICUu3zKfXLUfUx3GvaKA6b0sCARE="), 
    new ToolKey(
    12, 6, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALF8xH9szJpX41aVsU0uGf7GnDEA6c0AEzbHRBuQ+FK4BaGnCHS4CvYwqddUu1ZS3wLipuPFleQL0XEx3KsDeN8CARE="), 
    new ToolKey(
    29, 1, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBANBeaUrCo5Bcb4BUFLjrrpqEdT1DG6ezHtxNu9Z5Vn142PaeJ6YqtDBlJXZaRoCgdDxE6q4HMT0/ldnPUl9lHGkCARE="), 
    new ToolKey(
    30, 1, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAJ6khsnMPS1q3tEFiDkd7uGCVDAuwk2i3DnjRB6LDaLcZX6CT05FF0D6CH6IcgMGVrDthZw3NIyGUIXo7VTrCJ8CARE="), 
    new ToolKey(
    30, 2, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAL3HvzlLuY3TDMgS8UtXe5VljCFLD9Msn1cD1UMuBNx6nuz9V7KyqVP5CUoIzjPWooAtdyKv4NX6x1XkOxa5dTUCARM="), 
    new ToolKey(
    32, 1, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAMe2V3maT0KY6uOIY5UV6Nk1C0ZbnL7vPQ3evJWtIqWJBWfq8zW+8lyvwaysXUZVEGZbhxxObHcSgMMfEJyr5fkCARE="), 
    new ToolKey(
    32, 2, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBANIODBqKSUDKU4+cJ+YXn4q3heHDbsHPuB3H+XywMJhYdZeuPIlowB8QDSE97eff24wsCbfqhyNwFG0qsSg7qyUCARE="), 
    new ToolKey(
    32, 2, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAJpaBZFsDhD+N/DxCF0m+XC24JTab7CGOXZMe+Q1Mgv9CAh7ErMEtTNNzouqQRvqcr6OvTgCvXCzaGppHyeSJW0CARE="), 
    new ToolKey(
    32, 2, 5, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKTV1P9NMWY8PfLPMeMIP8O0bdes3VRv9u0/j/iS5XGItPJpwctyiZ6RzXbDUYOkod6VBaquNtNYqjH+37KTDL0CARE="), 
    new ToolKey(
    32, 2, 6, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALKJx5toYJ/RFIav8CQ+JOHeLVBTgG9QYPzYNCkZF4ei3S5JXeOIX4JjULwEFCrG+g4gamE2lwGm/EXgtv2U5acCARM="), 
    new ToolKey(
    32, 3, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAJGggsT7xPi5VyPlcl82XxuyubsnjmSWQKRAQe8SEcg6Y08ghuwR6YR+Ep/Y8xE+ToNMT2RLAYduqNlDp4mn7VECARM="), 
    new ToolKey(
    32, 4, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKHKNDDNdjbjl07C2HtfieAYopZbM5uTe3MxaqwkJBsB2z7oztjGJoDNw8zs2ibbXOL2pKYP6ae6etZDN6XEsXECARE="), 
    new ToolKey(
    44, 4, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAMSa7rLyjuBdct0+FEOjR0MIr+m2/z+0sjAy1IRakd+87g4jR4Ee1bYBg7+xdunBDomJRG0c3UZ3kq6cHquEkUcCARE="), 
    new ToolKey(
    45, 4, 5, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAOA5BQsR4W04YHplyEHyK6ai1S87rICABquxG97rnGf3DekTIdjggATDdabAj1MRrRfkzMEOIRcu6XaaDQFGX2ECARE="), 
    new ToolKey(
    45, 5, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAMqwWfrP3w7+V2nwVZsmSvCEOxFyeayuw7hlukg8RoXSwojTfxH8EWMzkWwDml3E5aooRGyfb5f7IdzfU61PlQ8CARE="), 
    new ToolKey(
    48, 6, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBANOLJdqQlEp0hhDbrSNT0Aw/N9f6d86qtaZOX7drNCY9yIi+xlT+P3AtBh7w5XxZQm6C8qebsdLKwXXobYA+RQkCARE="), 
    new ToolKey(
    48, 9, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAMPt/1/skb/ZMQ9mzZazzP6jmnUG4Fs/J/DM5fqv/cgw6SDd5n+3zS/NB9PS9VExSFcC1s2KKwBrd+S4cMCqSGsCARE="), 
    new ToolKey(
    48, 9, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAOLK44GLrBCQm05q2fKhskyQ97pyw3imYqItlxZIRKj0KM6lzIxA4Xerp+HBPjtBg1C6T0I/ob+N4VK0G6eGNV8CARE="), 
    new ToolKey(
    48, 9, 2, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALRAhOT0is0a3WNOg8PrKdSNKPMzCNwfG2Njda03P+Cxm1SRyIaZypri/A8kHgaSjwGk3jUT3+ClnXzcCBGpxEcCARM="), 
    new ToolKey(
    48, 9, 4, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALAng7wjiDaH8PaSXgk0wUjF+01cp3dVql8n/pm+7M98EGi0x+tQ7Jv9g1AL7CdOUCIXPYT6hWe1ZlrWmSzsNx8CARE="), 
    new ToolKey(
    48, 9, 5, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKgJksCR3r2jvy0sCpb+woJWSWf8a2Bq/kLjUZ4LfsqfBj0DCcsHyLGuAfff47wiqoQnbAGE2urERug4kR0MF7kCARE="), 
    new ToolKey(
    47, 6, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAM0VH2Ek4lJW1+NBpbBcM5YKU9nvQgqxqPdcpi3KBFS4X7mZSN38kQnQZwkwOI1a3V5Wx2yn6gqvl1yu2XS6Y7ECARE="), 
    new ToolKey(
    47, 9, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKycIWUhu38PFthuARc6EoRKfFfC5wIhZwaAtZrEmAPA9hsWtKgCRd3PzAxRlz0zKXGN/VvE4jnXICIxp8dLm1MCARE="), 
    new ToolKey(
    47, 9, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKcitlsxZhIhq2nW3kItJfMgtjWXvVlR7rGZkCGFIPRP7KQcrE4VMLag7KZXtpH0VlPI8lvd1x9F/kAPhSKKE68CARE="), 
    new ToolKey(
    47, 9, 2, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAOI+z1vzXF05Srap1GNogRtTut6GDTRAKe3QiQSX4DGpf94j/VLlBK4pL4ZTg3iya9VmInpRWiyQ+2xjaWo0cucCARE="), 
    new ToolKey(
    47, 9, 4, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAK15Qz6kYgEGSjvp9mAwkPwt7h4mGE7RoEMsEXWVNyWdQPYnkcpig35x3nEfHjhZWyqH/uiGsagXe0CNTjG5AQ8CARE="), 
    new ToolKey(
    47, 9, 5, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBANjh75LjV5X3h9qSrwhhFYjJqs2XjCtu7AXfdAJd1au6m31xYHh31h+pDy//c2Z35XvqloCd+VO8zmjZ8Jooz80CARE="), 
    new ToolKey(
    33, 1, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAJXw+U3r5OMJfPoVYo1xLAHwjxL04r3TVgqLHWKQw40ciGnVrFquFoUzZfHK3iZfSFwLNjllfx02+9K7t2xjl1sCARE="), 
    new ToolKey(
    33, 1, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBANLsjeHAqW3pJj8UApujKq/7eQVJ4xqd/mHN+T7qnG7/l9Mmxy5l1WULUToIZL6yeSZHbXDCRsNGb/9HGcxZ2VUCARE="), 
    new ToolKey(
    33, 1, 2, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAJ/UnaHukaP9eAWHd4JVwd4KjhwYIbAVxX9Cqvvgz+aaqHor7rg4LWm9vWLhYw0Qz7+JWm2Cx+2slZnfIIJEG8ECARE="), 
    new ToolKey(
    33, 1, 5, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKqO+41WVGlgG1TPtWejBbG4RNJW7iMeeHqoyLtkq3j9qmtl/oE9/b+RLJYo8LJdJhPs9Ttlo8Dwt4Nbus0easECARE="), 
    new ToolKey(
    34, 1, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAL6WKTii5fSp9XZ8+YMkfyJBOhjDVFdw3DUXFJtzke4NprHUCFMezPSsQ625GWxg2EKTGb+l42Bg0QJz5fcHrvMCARE="), 
    new ToolKey(
    39, 1, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAJTbbUzKzIHc4dG8SPgNA0ILlxP1CB5tCyevd+dHWyPh8H8DTEeBifjhY8ETECrtfq7jmBzcVNWZ4y7Uov0UcH8CARE="), 
    new ToolKey(
    39, 1, 5, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALQC53A2D7mkxVtDtJ8MO5hS+fqhYXdRDvkuvYN0bASvp3PlVH3Czr2DXEGK/fCg5UotpvYgq9f6c6nENH0F6jUCARE="), 
    new ToolKey(
    39, 1, 6, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAK92yCsISge+WfD3rbvNVZlOFQfLkVYFTxQMB8K1DiVWQ0JpV9qqyFEgP+Ayy1qLGCNynR+niADRSf8q9VESwhcCARE="), 
    new ToolKey(
    39, 2, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAJ1LujscOv2lrNZQBozmmXOIr7fbOPXe53wtszddJYoUhXS3a2K0ThRJebjwIyE25Nih03BrKlnR8irzgVga3psCARE="), 
    new ToolKey(
    39, 3, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAL+iqmKyyIwWHtB/RLMqYeJI11gZYF3MKhU52Swa5GxJXj58IfdAkqvOvzrSZuD9pZLAJKXyjve0u4nH0KW+dukCARE="), 
    new ToolKey(
    39, 3, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAOdFjW7znzwyTt31sf+jP5JnCLAdTAYgks9ymZ98uQcIzrgAZvCsAMGnpJRi1H4evbvm2nkRwvsF8kKQ9XWZBxsCARE="), 
    new ToolKey(
    39, 4, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBANLod/IZlq9+9HvfhohKZK9T2YAPgdqnUk8S5bSsBjcz3Ve+BXd/HXeq3eQfT5wfiBOsVp4tHZLJ2YvkEnq2cqECARE="), 
    new ToolKey(
    39, 4, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKdOGQxdIpg3AkEbC31/P7LSH9PuWBy/3eFQgliRGprLIu+tqcinbEtckHmDd9TJfDxShRt+S2SCVo0W3Z/f8f8CARE="), 
    new ToolKey(
    39, 5, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALjxvVHwUgxn7pMJJXlLXFlqF/u7KC36PpvancKWedczWOboPmSrdM7PBNI9Kx85dLIOzcUgeOn+P1AIXz5PF2MCARE="), 
    new ToolKey(
    39, 9, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAIsl//kLUsnVDPDD+sRVRsoRISGf4P/oMdDqTV2saIHDBOxJBtsG5fvixoDe8JTCWgbomY7wylujOLXAs1g9Mk8CARE="), 
    new ToolKey(
    39, 9, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAK1j85fnSQOPdibpTNpR74SutS5u1fPBIVJ+loYqrdFAFSsIKFY1snLnf+ACegWZ9qmf5hT8GW+oDrTC7dGRhmMCARc="), 
    new ToolKey(
    39, 9, 2, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAJyBzsDQPsVDzG09L0jd7ur0Q6qJLmBMq7NDD92tLab1zt5X8EgCkq8YqRVeStdGRmIWBYfxyBbLYY3s9Bfj5/kCARE="), 
    new ToolKey(
    39, 9, 3, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKpqaT2LqKxAmPhRk9/JodzKCfekhVwRXExcIUoboOH6381mnM212AV2z1kiFGZbmDiMPxXhqN/4eE8QSUpADikCARE="), 
    new ToolKey(
    39, 9, 4, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAMpmTS+Hlkt+jvgcuW/7JFQJPrg6dXeFYz7CVxb9f5fd5bniIixjw0bdzxpp5piJGj6JYb84TFfRp/2RJ6Lt07UCARE="), 
    new ToolKey(
    39, 9, 5, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAL880Kkeq0zFewVV5nGnYroIzuWkf335HDWoUn0lbNDMSr+4JTqr9G3gBajFPtcEe92yZtE0Au+D5s213R8pRWkCARE="), 
    new ToolKey(
    34, 1, 2, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAN2GF3a7zWvej72OcvIrliBLiI8Bq8edRqtxOxD2x9czCZniQZjEdCyFn8jL10jVj3TBE4iL4rdzb8ATHJtPe/UCARE="), 
    new ToolKey(
    34, 1, 3, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAJuzMxfmJqPvrrs7exibcKnuFJPK8E+Czjgi9JO9RF/Oarpv+8OOxCt+uE6LuTRZfjDQDIXIq80e4h3Z1TN1lNsCARE="), 
    new ToolKey(
    40, 1, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAOJpcT7ttWh/LeLKh+bowktCRnFyyoj4T7SQLHo8E5qBexcNbPiVZQCKHDOgRTbAblkdF/oV6R04KKde9gamRDUCARE="), 
    new ToolKey(
    41, 1, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKi3wPKQ9iiKweAOwhgeY18b7xT2MU0j+yD6lO3Qu6205f+DU3u4Kstz6zihMxsIx5gB/4+B8FGXBsuKIfZ+Zj8CARE="), 
    new ToolKey(
    41, 1, 5, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALMVgQmlUwAaQU+GmxUxA9jUYsyPj1/Q0ABOas0eUZvKM6Df0yqPneU9RBRBUh5wn4xH37zPuymKJNd3iv9nIf8CARE="), 
    new ToolKey(
    41, 1, 6, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAL5O8A+FfDw3rfQBbVt5cVPcQrJUqA0ja7EyaF5B5OPURiwnx0NJnftDdBIkYElKHSEslcgP+h73YlONu1VQTUsCARE="), 
    new ToolKey(
    41, 2, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALhK18hEOecx6+qFFYEYRoYnqAIyvxAy50NwebCwWHthN4zipZd9ukz27IdcvqTKoxSwpllncMj/hTsni2iKiAsCARE="), 
    new ToolKey(
    41, 2, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALnKjf5HOjwPfoMN8JvCGbyNjo/wqCgl88qqEPOFgWVb2Vu8EZ+Y0ZSRH8EUfzPpVQkloia5sLIMW8FDMepHEGECARE="), 
    new ToolKey(
    41, 2, 2, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAJBXS6akBzFKLfFf1vvMpRWTpXivABUXCFZPgGw2BVD7S7/itiSNqcW50yqTflhYfncG7kLKm9nEGcx1FOcEPEcCARE="), 
    new ToolKey(
    41, 2, 5, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKMep//W0rYbuBOn7wXy7SqfFURGSyqX3Rn9a1NWqsCRBC2vQ/RCvf7rq0f9taEVsHoQ9RNDlEW+2j8v0JiPua0CARE="), 
    new ToolKey(
    41, 3, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAJxXvoyb1IhMccuSdmXDm4rTo1pbQPQqbQ2m5yxJcBHlMshuQgKdjofab9w1k78IOCIX3ewlCt5K9b197ySky4kCARE="), 
    new ToolKey(
    41, 3, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKJTWt1wtBoXb32BkWg29wKoLvmpf9d8Rktjh4F33DdT5MoUooibv3PHQ3cgMqhjipgcM6Gc6lN9Z2GRJ6JdkccCARE="), 
    new ToolKey(
    41, 3, 2, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAL0oKswZKjH0ypANfhpmGilriJzMuRHexyHYRlhm3xwjAYtofjKDGqZDwz/BTJqY+EEhuAfVO4FGg8C0vLOf90cCARE="), 
    new ToolKey(
    41, 3, 3, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKIzXhGcdgPo1pefueqtAVltjg6wGgqQ1dsXSuBNsYJD4ytIm7QRFsDz8nMgRQX5fQdH0jIc4QdE3DKgGoOQFJUCARE="), 
    new ToolKey(
    41, 4, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAJd7pYUuYWoAnzUb6oZGzqnoEdjSfYHehxHrytL2qwIX0J+h5uJky4MtPdgNjbGWp3DSDq8+Jgm5pXqmaHQ+YfMCARE="), 
    new ToolKey(
    41, 4, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALuUTsH9UvegFfoLrys0JjBGn07PUCgOTxwcg3VnKII2XJO9AUR61bh5mvx1tj/yqlimtWjwZD6QDDA/j+bSOgcCARE="), 
    new ToolKey(
    41, 5, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALFSxgkNFy6EjtosrUavo8Inotq35Fwy6cqxVzHkhoRF77bH9nwC4hLnhJnqPUDJoIH+IDJQdeY81mnDihKtzZMCARE="), 
    new ToolKey(
    41, 5, 2, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALfKGAEGDUxqVYe2v3xbke27bRkFWDcihJDMCktdOVphaXmmNDIvDovkLCwYhrK3WsRqp0KAV0jBphxFk2pt3gUCARE="), 
    new ToolKey(
    42, 1, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAK8gKbAWHlR5EJtw1hvph5pSnwUifAdg0Bnbs72cyEuMkFQBwoYKU3vhNOcWL7diCBAys6JOmB8uJ4aatYljWWECARE="), 
    new ToolKey(
    42, 1, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAN4pyI1vmDJzU5wwk9DkBe7F6zbLvxy9m+zrRTzqqZx8xpqPNIrtobJHGoATWSZu2uBHzfRyIINuHYgdORFV3lUCARM="), 
    new ToolKey(
    42, 2, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKN1EU/35z7X9XoXp45u2Y7OkFNAdkH2F6kfrtXfPQEVFGkgSF+Y3k5hUBUj4bPHc29JXbBErGTjW+oaaeUo4S0CARE="), 
    new ToolKey(
    43, 1, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKQ4O+YfMjp203WtCvF/KraeIYiS/9myyQvIZehTkRlna7kJNQ9mLaW4FtMViFVs+XwBxZcTkPUt1yJKvXq6TMkCARE="), 
    new ToolKey(
    43, 1, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAOd9dxUuBQjgi1GmgGYvZRnFJ+FPAy8mZwGOW4Bq+zmbpMbJFFw1qU3Kqtlwpva9TTwHSHZ3pxDnR3+wYDATN8UCARE="), 
    new ToolKey(
    43, 1, 2, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALeQFVimHynnWNpVPv9tsF9+0o4CXkxBawaPQXCUgoBqmeLrkOqBnyRFxsgGhG4E093eu58B3Dq47PWt0lDzOI8CARE="), 
    new ToolKey(
    43, 2, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAN0bI1/drmZo1N93o04xF9tz/R+Q2n/61dtjdUmaTAmNUuCUOsv1RU8bSSF3wBuH+cvV8onETcuMeu/k2VDv8y0CARc="), 
    new ToolKey(
    46, 2, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAOROo3uM731fGKMhNz7SyqrX3DXA3hXQVK9H4pThgI5e45n5rjzTLXkwhRXABKjiV/ECAuTzmXngJUEOUyTebhkCARE="), 
    new ToolKey(
    46, 2, 4, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAMSI1fTmFJAfASvbi+xDNH1vMw3R76IMV6HONMY/X7nddNsSqwnMcu7Q0MF6mxjKmGcefdWtQrMouc/mP0hWFmkCARE="), 
    new ToolKey(
    46, 2, 6, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAMgNv3Y3fHsdwnrqINvXR059WVAWzi+xluelZNi5RoDMITaxTYtQ9ApQO/dNmR9RuEXqTigEmLvzMMVN+ev9WPsCARE="), 
    new ToolKey(
    46, 2, 7, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAM7n9uU5wG5M3TDMxI8XKXcHh6YauATIll3aJT9/sjtaHlRa2hI038OFl9gm3sg/D7WNzTK8j8rabb0aJy3q90MCARE="), 
    new ToolKey(
    49, 1, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBANLaZWmJh12cYS4ERjBGc8FE8I0gNhMT++DkK8gzWnKOhZxRgwkKvG3O3WqZ0qZqnjOQ3kPGQHisB4xSIB6YkV0CARE="), 
    new ToolKey(
    49, 3, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBANLaZWmJh12cYS4ERjBGc8FE8I0gNhMT++DkK8gzWnKOhZxRgwkKvG3O3WqZ0qZqnjOQ3kPGQHisB4xSIB6YkV0CARE="), 
    new ToolKey(
    49, 4, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKJajp1gaGAFx6cNYZqDvirCEzwKyKyp7QUs8J9539FvpcDWPycRbxVGm6xBjpysx2qkCcJYqJ8PdXxaaEbWZukCARE="), 
    new ToolKey(
    49, 4, 8, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAL0+EP73KvXYoJPx+obVb+7a9WbTJMUH+hWpt3bnu/E8KxUenaz8PJ9TAP72/hMMnzmu7GKgkVakq9+S63aKgLkCARE="), 
    new ToolKey(
    50, 1, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAI/vfbYlbNaxN+4uQ2KmhddLKGkaLXyMQEATBLGgnJ6wpQ5XI/VZhPwj+cRyZy7jed7UNaWQswgcgh371l7JtlkCARE="), 
    new ToolKey(
    50, 2, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALEZ5tbTC5AB7fsBfVChTR/cwkQRT1tNmh/ryfSpBas0u7OYD3nhjxMkNf04Uy7SRuf7dGnHPekFYweXv4ria58CARE="), 
    new ToolKey(
    51, 1, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKFH2pmX5NVZov9nIuruT8s/Ykxrr65Ugpb+53kxU2mmlm3mtj7hliyCHl3eIzI/GOR7GpeMK+QXG5OpEoeZzsECARE="), 
    new ToolKey(
    51, 2, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALwhKm44Glc0gMEPW7DTY0DGoLDvLn5xLRxzLWqxrT8DTkHCvDm2x3++eFUrJzBNwkFU4r2kLBCSBVmC9AFFfX0CARE="), 
    new ToolKey(
    52, 9, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAN4yYlKf1gz93Nd5EFH/dO5ONK/Hq/VaW6kV8B1cAZCXGxHc4piudE37vyAv7r3pXVK47R5yU4/wqW2lHk98YN0CARM="), 
    new ToolKey(
    52, 9, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALCqXB1By/pfd/gP/yHYSwqB/LXexHMSdPD0rpRCwMf1hwaJIzMkOGPWI2p7XgRMxnYGfBIMym5VKbl/6eO61SECARE="), 
    new ToolKey(
    52, 9, 2, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALA3gIzeUb+1uSV0V52fu4qv+8z/iwSq5hdeZSk1vE78oH68SZtcGztdIK3stXCKUC+J5pHGDgSineTViDGx8usCARE="), 
    new ToolKey(
    52, 9, 3, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAPOZQl/rdC89KfVNgySJHiGY7Iq1tXeFWzfIVaghNTQgB4oTdbEQLDnNTsi3NNcGoqgFpxpZnhBsS8kf++bYhPkCARE="), 
    new ToolKey(
    52, 9, 4, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAMP3WsaXfoY/7uzR4ti1NQjlyLOg+P6kCLmtCvSL8xuh3iG8U70jFs+O8qg/bIzGhzoy5vE2CstaUccCma5REHcCARc="), 
    new ToolKey(
    52, 9, 5, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBANEAHQsojFMG+pDKyDoMthnXTvPkUpvYzeA5ANmfnNDfocDvohR8KFwq6a5/8iSiEd9smCyDyYA+Axb/4QBmB80CARE="), 
    new ToolKey(
    53, 9, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALm7BlLwIWbvSWoUNH3+I3wGZzZhWV6lqQQRccLq7gz8XJDrZBLsHY+Fs1Dc8iQ/6bKrsQZUpBWRaKjrJ4hlovsCARE="), 
    new ToolKey(
    53, 9, 2, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALfg6O8TwEjnRrVIiY1jTILZz4YxZFqBdBFeoW9OvJAZbvjbrXvyzsAffOgtiXruDG6Qim7f9XGufe2L8Slo9HcCARM="), 
    new ToolKey(
    53, 9, 3, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALftVxdbGAyL8oqRtqVkxSwuraxDa29cz0tvnlh/Jb1j8yxCnLHJhQ/6r5FOgC1G0ELSHp2xwHnhc2NkPmIfd1UCARE="), 
    new ToolKey(
    53, 9, 4, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKd+Doc43L4qjBWmdBz7vC8ZSBNVFPxRrQWzz+9h9jl7LbhnSgHTh8qR1yHPmXREX78rePLnRvhyxzx7gYnGMG0CARE="), 
    new ToolKey(
    53, 9, 5, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKEbIfKKjMfXzE4LCMTVKdh3Ud++/vCmSHeB6P0iBmVmijKgeDiMHbMvTLrMuPYW7j2pNXGGHpH/QActyKFdEi8CARM="), 
    new ToolKey(
    54, 2, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBALWY9nEPXlbUU5g7hXIv+0b9nGcFUzg8KoE5+HmoFEsiDqIuv68UgmDPqBizmbWqhvBmR8NIpNxKlbSPZkgIYTECARM="), 
    new ToolKey(
    55, 2, 0, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAMDEKgrUGQpa1PBh3ILkxjhExc34HEnvbLEMzwPEeVZmXm1sol6YWENxj+9fy+xqwXKP9E2CLjMXOBV9sEHkCr0CARE="), 
    new ToolKey(
    55, 2, 1, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBAKblRixcvqUIu7mz3IS5GxXedCvMaaJXxjB9vzdCu6cT8O8v5qFlTJ4e+mcQU+2E0pqXJ0G2f2fhkweKweADnjUCARE="), 
    new ToolKey(
    55, 2, 3, 
    "MFowDQYJKoZIhvcNAQEBBQADSQAwRgJBANpfuy1eMIJpwD9mfxl6+WWwZcS4c6LkvWThNnim/IyCgBdrhGdDCg4euiz+i79ixL9d4JiA5lJQSuqWodc6Jl8CARE="), 
    new ToolKey(0, 0, 0, 
    "let's see if [email protected] or 'tHE EGOiSTE :: TMG' can crack this") };

  public static ToolKey getToolKey(Feature license)
  {
    for (int i = 0; i < _PUBLIC_KEYS.length; i++) {
      if ((license.getToolId() == _PUBLIC_KEYS[i].getToolId()) && 
        (license.getMajor() == _PUBLIC_KEYS[i].getMajor()) && 
        (license.getMinor() == _PUBLIC_KEYS[i].getMinor()))
      {
        return _PUBLIC_KEYS[i];
      }
    }
    return null;
  }
}

Ostatni wpis na liście niesie ciekawe przesłanie. Otóż grupa TMG znana była z tworzenia generatorów kluczy w programach chronionych algorytmami szyfrowania takimi jak wspomniany RSA czy DSA (niekoniecznie z silnymi kluczami) oraz jakiś czas temu opublikowała generatory kluczy do oprogramowania firmy Parasoft (zapewne wynikało to z wykorzystania krótkich kluczy).

Jeśli chodzi o mój komentarz, to można powiedzieć, że zwiększanie długości klucza wcale nie sprawia, że oprogramowanie jest "nie do złamania", bo wystarczy, że ktoś podmieni klucze publiczne na swoje, do których posiada klucz prywatny i całe zabezpieczenie bierze w łeb (bez dodatkowych elementów zabezpieczających jak sumy kontrolne, obfuskacja, virtualizacja etc.).

A tak na koniec odnośnie RSA, to niedawno przeczytałem, że współtwórca algorytmu RSA - Adi Shamir nie otrzymał wizy do USA na konferencję 2013 Cryptologic History Symposium, na której miał prezentację 😉

http://blogs.fas.org/secrecy/2013/10/shamir/

6 komentarzy do “RSA w akcji, czyli Parasoft vs Ivanopulo”

  1. Shamir to akurat wizę w końcu dostał, ale w związku z problemami organizatorzy mu anulowali wystąpienie, więc jak już dostał wizę, to się na nich wypiął 🙂

    Odpowiedz
    • @KrzaQ dałem syntaxhighlightera, samo GeSHi jest wolne jak jasna cholera, o czym boleśnie przekonałem się przy stringencrypt.com, zużycie zasobów serwera jest bardzo duże, ale z kolei syntaxhighlighter dla wordpressa używa shortcode’ów zamiast standardowych tagów

      Odpowiedz				

Dodaj komentarz