Berechnungen mit verschlüsselten Daten (Zahlen)

  • Ich möchte im folgenden Skript die Summe von 42 und 15 berechnen: zunächst nicht verschlüsselt und anschließend verschlüsselt.

    Skript
    [autoit]

    #include-once
    #include <Array.au3>
    #include <Crypt.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $sSchluessel = "Test", $sAlgorithmus = $CALG_DES, $aTabelle[3][2] = [[42, ""], [15, ""], ["", ""]];42 + 15 = 57

    [/autoit] [autoit][/autoit] [autoit]

    _Crypt_Startup()

    [/autoit] [autoit][/autoit] [autoit]

    $aTabelle[0][1] = Number(_Crypt_EncryptData($aTabelle[0][0], $sSchluessel, $sAlgorithmus))
    $aTabelle[1][1] = Number(_Crypt_EncryptData($aTabelle[1][0], $sSchluessel, $sAlgorithmus))

    [/autoit] [autoit][/autoit] [autoit]

    $aTabelle[2][0] = $aTabelle[0][0] + $aTabelle[1][0]
    $aTabelle[2][1] = $aTabelle[0][1] + $aTabelle[1][1];<- Fehler (?)

    [/autoit] [autoit][/autoit] [autoit]

    _ArrayDisplay($aTabelle);zu Testzwecken

    [/autoit] [autoit][/autoit] [autoit]

    ConsoleWrite($aTabelle[0][0] & @TAB & "+" & @TAB & $aTabelle[1][0] & @TAB & "=" & @TAB & $aTabelle[2][0] & @CRLF);unverschlüsselt
    ConsoleWrite($aTabelle[0][1] & @TAB & "+" & @TAB & $aTabelle[1][1] & @TAB & "=" & @TAB & $aTabelle[2][1] & @CRLF);verschlüsselt
    ConsoleWrite(Number(_Crypt_DecryptData($aTabelle[0][1], $sSchluessel, $sAlgorithmus)) & @TAB & "+" & @TAB & Number(_Crypt_DecryptData($aTabelle[1][1], $sSchluessel, $sAlgorithmus)) & @TAB & "=" & @TAB & Number(_Crypt_DecryptData($aTabelle[2][1], $sSchluessel, $sAlgorithmus)) & @CRLF);entschlüsselt

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0, "@error-Wert", "@error-Wert:" & @TAB & @error)

    [/autoit] [autoit][/autoit] [autoit]

    _Crypt_Shutdown()

    [/autoit] [autoit][/autoit] [autoit]

    Exit

    [/autoit]


    Das Problem ist der letzte in die Konsole zu schreibende Wert, der "-1" -- und nicht "57" -- ist.
    Ich habe das Verfahren bereits mit mehreren Algorithmen, d. h. verschiedenen Werten für

    [autoit]

    $sAlgorithmus

    [/autoit]

    , getestet; der beschriebene Fehler war stets derselbe.

    Ich wäre für jeden Vorschlag dankbar!

  • Auch wenn die Sinnhaftigkeit des Unterfangens für die Lösung des Problems eigentlich unerheblich sein sollte, hier eine Möglichkeit: Berechnung und Verschlüsselung werden von verschiedenen Skripts (oder verschiedenen Programmen oder auf verschiedenen Computern ...) ausgeführt; die Berechnung soll ohne die Kenntnis (d. h. mögliche Rückschlüsse) der Originaldaten möglich sein.

  • Dann brauchst du einen Algorithmus der deine Zahlen verschlüsselt und dieser in verschlüsselter Form verrechnen kann.
    Alle mir bekannten Algorithmen zur Verschlüsselung eignen sich nicht dafür.
    Da bleibt dir nichts anderes übrig als dir selber was auszudenken.

  • Eine verschlüsselte Zahl hat keinerlei Ähnlichkeit mit der Zahl selbst. Damit zu rechnen kann eigentlich zu nix führen.
    Dass ist wie wenn du Text verschlüsselst und danach Kommas setzten willst.

  • Mein o. g. Anliegen war, Berechnungen in externe Anwendungen auslagern zu können, sodass diese Anwendungen nicht die eigentlich zu berechnenden Zahlen kennen.
    Ein Weg der möglich wäre ist z. B. alle Zahlen mit 10 zu multiplizieren (o. Ä.); allerdings sind diese einfach kombinierten arithmetischen Operationen m. E. nicht zielführend.

    Dennoch vielen Dank für Eure Bemühungen!