This study takes one step further towards constructing a tool able to automatically amplify the security on your cryptographic implementations. In white box cryptography the encryption key is hidden inside the encryption algorithm out of plain sight. An attacker can try to extract the secret key by conducting a side channel attack, differential computational analysis, which many white boxes are vulnerable to. The technique to increase security explored in this study consists of randomly with different probabilities perturb the white box by adding the value one to a variable inside the running white box. This does break the correctness of the output on all the three tested white box implementations to various extents, but some perturbations can be made which maintains fairly high correctness on the output of the program. Running a white box with perturbations does not cause any significant increase in execution time. Out of more than 100 000 possible perturbation points 25 were chosen to be investigated further. In one case the security of a perturbed white box increased, but in four similar cases the white box was made more insecure, otherwise no change in security was observed. A more sophisticated technique of identifying the best point to insert perturbations are therefore required in order to further investigate how to increase the security of your cryptographic implementations while still maintaining a fairly high correctness despite the program experiencing random perturbations.
Denna studie tar ett steg längre i att skapa ett verktyg som automatiskt höjer säkerheten på kryptografiska implementationer. I white box-kryptografi är krypteringsnyckeln som används redan gömd inuti den valda krypteringsalgoritmen. En användare med onda intentioner kan vilja försöka att extrahera denna gömda krypteringsnyckel genom att utföra en typ utav side-channel -attack, differential computational analys, vilket flera white box-implementationer är sårbara för. Tekniken för att öka säkerheten hos dessa white box-implementationer som utforskas i denna studie går ut på att slumpmässigt, med olika sannolikheter störa white box-implementationen genom att addera värdet ett (1) till en godtycklig variabel mitt under programmets körning. Detta sänker korrektheten på outputen från alla de tre testade white box-implementationerna olika mycket, men vissa störningar kan utföras och fortfarande resultera i hög korrekthet. Att sätta in sådana störningar i white box-implementationerna har ingen större inverkan på dess totala exekveringstid. Utav 100 000 möjliga ställen att sätta in en störning på valdes 25 utav dessa att undersökas vidare. I ett utav dessa fall ökade säkerheten på white box-implementationen, men i fyra liknande fall minskade säkerheten, annars på övriga störningspunkter fanns det inga tecken på en förändring i säkerhet. Ett mer sofistikerat sätt att identifiera de bästa störningspunkterna på behöver därför utredas för att bygga vidare på detta arbete med att öka säkerheten hos kryptografiska implementationer genom att utsätta dem för slumpmässiga störningar och samtidigt kunna hålla hög korrekthet i programmets resultat.