Whenever a message is sent using SIMSME, it is encrypted in an end-to-end manner. This works as follows:
Every message is automatically encrypted with a unique key (that is generated on a per-message basis) on the device using which the message was created. The encryption is carried out in a symmetrical fashion, which means that the key required for decryption is the same one required for encryption. The encryption method used for this process is called "AES" with a key length of 256 bit (more precisely: AES-256, 128 Bit IV CBC). The encrypted message is provided to the intended recipients of the message via the SIMSme servers.
In order to decrypt the message received on their devices, the communication partners have to receive the same AES key as the one previously used for the original encryption.
The AES key with which the generating device encrypted the message is individually encrypted and transmitted to every addressed communication partner using an asymmetrical encryption method (RSA-2048). This asymmetrical encryption uses a separate key for encryption and decryption. Every device logged on to SIMSme creates a pair of keys for this purpose, which consists of a private (secret) and public key.
The public keys are made available on the server's address directory while the private key never leaves the actual device and therefore stays secret.
Because it is the creator of a message who selects the communication partners (recipients) to whom the message will be sent, as well as the AES key with which the message was previously encrypted using the public key of all addressed communication partners, only these persons are capable of decrypting the asymmetrically encrypted AES key using their own private keys and subsequently reading the messages. Therefore, other communication partners, we the operators, as well as any would-be attackers attempting to intercept the message and the encrypted AES key at some point along the message's path, are all incapable of decrypting the message.
This ensures the integrity and confidentiality of all messages. A third party (and this also includes us, the operators) has no way of reading the encrypted messages. Of course, we also use a transport encryption system which serves as an extra layer of protection for the message in transport (SSL encryption). In addition to providing this extra layer of security, this also ensures that the SIMSme clients are communicating with our servers and not foreign ones attempting to impersonate our servers. In this manner, such "man-in-the-middle" can be prevented.
However, the abovementioned measures do not guarantee that you actually know who you are receiving the messages from or who you are sending them to ("message authenticity"). After all, there can be any number of users with the name "John Smith" in our address directory. By scanning the contact, you can ensure that the private key provided actually belongs to the person whose QR code you have scanned. These contacts are then displayed as "trustworthy" as the origin of these messages (authenticity) can be guaranteed.
It therefore becomes obvious that the cryptographic methods used correspond to the current state of the art and provide a maximum degree of security and confidentiality.
We also confirm that the cryptographic algorithms and procedures used correspond to the 02102-1 Technical Guideline of the German Federal Office for Security in Information Technology (Bundesamt für Sicherheit in der Informationstechnik) in its current version, dated 10 February 2014.