NextPrime[n_] := n + 1 /; PrimeQ[n + 1]
NextPrime[n_] := NextPrime[n + 1]

ListToNumber[liste_] := 
      First[liste]  /;  Length[liste] == 1
ListToNumber[
        liste_] := 1000*ListToNumber[Reverse[Rest[Reverse[liste]]]] + 
        Last[liste]

      
TextToNumber[string_] :=   ListToNumber[
        ToCharacterCode[string]]

    
NumberToList[zahl_] := {zahl}  /;  zahl < 1000
\(\(\(NumberToList[zahl_] := 
      Append[NumberToList[\((zahl - Mod[zahl, 1000])\)/1000], 
        Mod[zahl, 1000]
		]\)\(
\)
    \)\)
NumberToText[zahl_] := 
      FromCharacterCode[NumberToList[zahl]]

Verschlüssele[nachricht_] := 
      PowerMod[TextToNumber[nachricht], e, n]

    
Entschlüssele[zahl_] := 
      NumberToText[PowerMod[zahl, d, n]]

InitialisiereRSA := 
      Module[{}, 
p = 
          NextPrime[
            Random[Integer, {(10^100), (10^101)}]]; 
q = 
          NextPrime[
            Random[Integer, {(10^100), (10^101)}]]; 
n = 
          p*q; 
φ = (p - 1)*(q - 
                1); 
e = φ; 
While[
          Not[GCD[φ, e] === 1], 
e = 
            NextPrime[
              Random[Integer, {(10^50), (10^51)}]]]; 
d = 
          PowerMod[e, -1, φ];
]

InitialisiereRSA

{e, n}

nachricht = "Dies ist meine Nachricht"

resultat = Verschlüssele[nachricht]

Entschlüssele[resultat]

Entschlüssele[resultat + 1]

resultat = 
      Verschlüssele["Wie ist es mit dieser Meldung?"]

Entschlüssele[resultat]