RSA (Rivest-Shamir-Adleman) is een algoritme dat door moderne computers wordt gebruikt om berichten te versleutelen en te ontsleutelen. Het is een asymmetrisch cryptografisch algoritme. Asymmetrisch betekent dat er twee verschillende sleutels zijn. Dit wordt ook wel public key cryptografie genoemd, omdat één van de sleutels aan iedereen kan worden gegeven. De andere sleutel moet privé worden gehouden. Het algoritme is gebaseerd op het feit dat het vinden van de factoren van een groot samengesteld getal moeilijk is: wanneer de factoren priemgetallen zijn, wordt het probleem priemfactorisatie genoemd. Het is ook een sleutelpaar (publieke en private sleutel) generator.

RSA omvat een openbare sleutel en een privésleutel. De openbare sleutel kan bij iedereen bekend zijn - hij wordt gebruikt om berichten te versleutelen. Berichten die met de openbare sleutel zijn gecodeerd, kunnen alleen worden ontcijferd met de privésleutel. De privésleutel moet geheim worden gehouden. Het berekenen van de privésleutel uit de openbare sleutel is erg moeilijk.