Waypoint-zoeken: 
 
Puzzel cache

Richtig Sichere Angelegenheit

Bob braucht deine Hilfe! Hilf ihm beim entschlüsseln der geheimen Botschaft!

door BafTux     Oostenrijk > Wien > Wien

N 48° 15.689' E 016° 23.811' (WGS84)

 andere coördinaatstelsel
 Grootte: micro
Status: Beschikbaar
 Verborgen op: 15.06.2022
 Published on: 07.04.2026
 Laatste verandering: 07.04.2026
 Listing: https://opencaching.de/OC18C6F
Ook gepubliceerd op: geocaching.com 

1 Gevonden
0 Niet gevonden
0 Opmerkingen
1 Watcher
0 Negeerders
18 Bekeken
0 Log pictures
Geokrety verleden

Large map

   

Seasonal
Preparation needed

Beschrijving    Deutsch (Duits)  ·  English

Changelog

2022-06-15 - Initial release (gc only)
2026-04-07 - Publish auf oc; Keine Inhaltsveränderung

Beschreibung

Bob braucht deine Hilfe! Er und Alice kommunizieren über verschlüsselte Texte und gerade eben hat Bob eine neue Nachricht von Alice erhalten:

WUaPSMWHPjsZ/t0MPYksZsfxH2en56TDyu+9CUirg/l4c5yqQxeUG8hmIYYsB7nU6XUaM1yzMp3gVco9w+olvw==

Leider hat Bob den privaten Schlüssel zum Entschlüsseln vergessen, nur den Source Code des selbstgeschriebenen Entschlüsselungsprogramms hat er noch. Kannst du Bob helfen den Originalinhalt von Alice' Nachricht wieder herzustellen?

import base64

def main():
    print('Richtig Sicherer Austausch (v1.0 - 2022-06-05)')
 
    cipher = read_cipher("WUaPSMWHPjsZ/t0MPYksZsfxH2en56TDyu+9CUirg/l4c5yqQxeUG8hmIYYsB7nU6XUaM1yzMp3gVco9w+olvw==")
    # This line asks for the key on the command line
    # key = read_key()
    # You can also directly pass in the key:
    key = read_key(17)
 
    decrypt(cipher, key)
 
def decrypt(cipher, key):
    cipher_num = int.from_bytes(cipher, byteorder='big')
 
    # Remember, e = 0x10001, Hopefully no one knows the prime factors of this number
    modulus = 10941738641570527421809707322040357612003732945449205990913842131476349984288934784717997257891267332497625752899781833797076537244027146743531593354333897
    plain_num = pow(cipher_num, key, modulus)
 
    plain_bytes = plain_num.to_bytes( (plain_num.bit_length() + 7) // 8, byteorder='big')
    try:
        plain_text = plain_bytes.decode('utf8')
        print(f'plaintext = {plain_text}')
    except UnicodeDecodeError:
        print('Failed to decrypt message. Wrong key!?')
 
def read_cipher(cipher=None):
    """
    Reads the base64 encoded cipher and converts it into a byte array
    """
    if cipher is None:
        cipher = input('Enter the ciphertext: ')
 
    decoded = base64.b64decode(cipher)
    return [bb for bb in decoded]
 
def read_key(key=None):
    if key is None:
        key = input('Enter the key (in base 10): ')
 
    return int(key)
 
if __name__ == '__main__':
    main()

Weitere Infos:

Brute-Force ist nicht notwendig. Das Ergebnis sollte eindeutig sein. Der angegebene Entschlüsselungscode muss nicht verändert werden, es muss lediglich der richtige Schlüssel gefunden und eingegeben werden.

Danke

Danke an die Beta-Tester fürs Testen & Feedback.

  • AimyBits
  • Dementophobia

Gecodeerde hint   Decoderen

[puzzle] Eba, Nqv, haq Yrbaneq xöaara qve urysra. Urezna haq frva Grnz irezhgyvpu nhpu.
[cache] Fvrur Anpuevpug iba Nyvpr

A|B|C|D|E|F|G|H|I|J|K|L|M
N|O|P|Q|R|S|T|U|V|W|X|Y|Z

Hulpmiddelen

Zoek caches in de omgeving: alle - zoekbaar - zelfde cache soort
Download als bestand: GPX - LOC - KML - OV2 - OVL - TXT - QR-Code
When downloading this file, you accept our terms of use and Data license.

Logs van Richtig Sichere Angelegenheit    Gevonden 1x Niet gevonden 0x Opmerking 0x

Gevonden 08.08.2022, 06:46 Tankred der Zweite heeft de cache gevonden

Tja, was soll ich sagen?
Das ist ganz sicher nicht mein Spezialgebiet 😔
Aber man muss ja nicht alles wissen, sondern nur wissen, wo man nachschauen/-fragen kann 😁
Und selbst dann ist es fast unmöglich zu verstehen 🤪
Aber der Fund ging rasch und ungestört über die Bühne 👍🏻
Danke für dieses knackige Rätsel!
TFTC