Crittografia / decrittografia PGP di base

0

Sto lavorando a un progetto che richiede la crittografia / decrittografia di base di un messaggio. Ho generato chiavi private / pubbliche con la mia email e nessuna password. La chiave pubblica pgp e la chiave privata, sembrano essere nel seguente formato (sembra essere codificata in base64):

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: BCPG C# v1.6.1.0

rwd3434f...key..4d44edw4
-----END PGP PUBLIC KEY BLOCK-----

Questa chiave pubblica è stata quindi utilizzata per crittografare alcuni messaggi. Ho quindi ricevuto questo messaggio crittografato non codificato di esempio in un file (* .pgp) che ho bisogno di decodificare utilizzando la chiave privata generata.

WEÛπ*=‚d\Ì˝¯i⁄„˝∂FŒ™ç;ı\qä´©Õ·[. G»v‹4Ø˘∂0J˘ÏN8¡6ÓÿÖ÷Á{x_>À5ÉQug‘Ô}ôΩ\ò[@$¶rnò∂sƒ1E∂˛ 9M!üæd<˝GŸ^páwS”ö'Uó˙L"ª∑â˛T“û0EUΩÉ'£éZ¢Ïg∂fiH13èóƒíÁ⁄!∞èñ4ù(ÂC2ábñ§¥ªµìÀ(õ(Ô1'ü¥ªçh4
îD¬r?7œƒ?+†#ßGµ?±î<›+ä’ºÖ

La mia domanda è qual è il modo più semplice per decrittografare questo messaggio cifrato all'interno del file .pgp?

Ho provato il seguente strumento online: link

ma continua a ricevere un errore unknown object in stream 22

    
posta AnchovyLegend 25.10.2017 - 19:42
fonte

2 risposte

3

Questo strumento richiede l'utilizzo di file crittografati con armatura ASCII. Il tuo esempio ha problemi in quanto la codifica su un file binario come mostrato in un editor di testo non è univoco (e l'applicazione web non sa come interpretarla correttamente).

Il modo più semplice è usare la riga di comando con gpg ( gpg e PGP sono generalmente compatibili quando seguono lo standard OpenPGP tranne in alcuni rari casi). Per un esempio completo, crei una coppia di chiavi fidate (di nuovo per questa demo non ho scelto la passphrase sulla chiave) con:

$ gpg --gen-key
gpg (GnuPG) 1.4.20; Copyright (C) 2015 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Please select what kind of key you want:
   (1) RSA and RSA (default)
[...]
Your selection? 1
[...]
Key expires at Thu 26 Oct 2017 01:58:43 PM EDT
Is this correct? (y/N) y

[...]
You selected this USER-ID:
    "john doe (don't use) <[email protected]>"
[...]    
gpg: key DA65E019 marked as ultimately trusted
public and secret key created and signed.

che nel mio caso ha creato una nuova coppia di chiavi attendibile denominata DA65E019.

Quindi posso crittografare un file senza ASCII armandolo (fondamentalmente crittografando in base64 con interruzioni di riga):

$ gpg --encrypt --recipient DA65E019 test.txt

che crea un file chiamato test.txt.gpg o con ASCII che lo corregge:

$ gpg --encrypt --armor --recipient DA65E019 test.txt

che crea un file blindato ASCII chiamato test.txt.asc .

-----BEGIN PGP MESSAGE-----
Version: GnuPG v1

hIwDLaGCjcd4AvcBA/wLm/sLb5yha7dPIz4288dtgR0a4zdynB+MZ1ikH8aVWi8x
w6aR3DoA5IyOQkg7whC2vWlWHaJLkrSOWYwnvHVSNm/bXVtXkLq9ZLWnvLVjux+E
+GVQDr8nCSdGR04ZfQ741LjDWubUzlZFacIlMuSmvMrfepIcl5i1ydr4UNA9OtJR
Ac0pgzY3odsl8nmcO+v9XmRpekDm8O3TTHAHN5ci1+iqxI6W/VOEHeuan8HW00Hh
E10+X0Sb5cNCNJBtrIE4G06F2JMKt53o4kTULiSPjT8A
=WEJE
-----END PGP MESSAGE-----

Posso usare il tuo strumento per decodificare questo messaggio con il tuo strumento online, esportando la mia chiave segreta:

$ gpg --armor --export-secret-key DA65E019
-----BEGIN PGP PRIVATE KEY BLOCK-----
Version: GnuPG v1

lQHYBFnw0OUBBADpSAnz6pdZYIyeRHJDi4AuTyEAmZTzFNbbS5Ble0wRnydzkl0o
/1pF0FpnkpFcutN2U1fQA/wVi2mYnUT5m3dY9kQVM9qaOShELg21wuqbvEjE+Y1f
+8+aTNY8f1eeLO6sDPZcpaGhiPxWfpb+uM5dke6DQ1wO+wZM/zXlRNjVAwARAQAB
AAP/W6pK/uV3g09E8gvDOndebtP5C9tNhBb0NkeC/d1tDp+TSP6CTNHKDxTH8VrO
c7mVzjEBmGN4cp7NZ4Kkz9AfHL3N9J2Y0VwoxtwkVgCFktvYFZZRBGI8tw5utxt1
T0dhPkBMDsPqoLushbooymPKbl9vGTZGMmPD1PWCRBc/yUECAO7qowO1J7PAoR0+
p3Z1mWfUXqD1eRuT5WL/MpP8+aUf5LxjeFqBweC3IWRSO6F6GdfGi6OPR+9rQ5IS
NKIbuJUCAPn2QDWUZiUTTregWgpVe4QkYW5l2h5+GXwdIJAr2mda7hvnR7QWXRbr
uYeN9kLxJsKw1AWZ8+EnyzjluM/fOTcB/j2E/SOel+N5q9fBTZNRjoVTaP8SS4mV
Oqljhdb25j6Dbk7Hn39yr6oQMGQlpF3oe7e4FTynSVvaLDMutqPrcHqjBLQeam9o
biBkb2UgKGRvbid0IHVzZSkgPGpAai5jb20+iL4EEwECACgFAlnw0OUCGwMFCQAB
UYAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEBD5wEzaZeAZZIsD/0sF0CMg
uzc8YH/hJT0WyGRKAOvqVrZxoRuSSmcZtBiM4yXXHZfByfuCqNwssJ+MnRyC7n3h
JbqI8CqI2Vfp+Bij9qZQEhhEiZVan62jtzv5ta9SSEoJTIzJNdhi3gmirzTXVM19
Mc0ZqSMGQRwku/TmLb5dfhNeIpnh8j2tlh4mnQHYBFnw0OUBBACzHMrc3YDGu4tj
PBdTFG7ziDOq3pb9pRrIvDDfTnkD5A+WWsOhuk201gnE1fmVoiPN9HiewLIMBekH
oYgFqz2QvIoGe5aGs1vsPb3iTYbLPHkNU2NCmMvDo4eH9pwf0aq/dVOY8LOO/pKy
S0pj0zXdpQJ61emGzCLMky4ScI1U9wARAQABAAP7BDZAh4pGd70wG+Ob0VoZy3gx
VnwryuTkumTkWGnK3HQ+cQwcimwdulFTenu2kZMBp4n690BfPgcL6pSdE2KBiglZ
1APeiPuSM5zYyHJBd2qJdB4s9PEWIIpJFR/XchTMy+1OzpsMZ8xF5dkzx8jwt6JG
U1bpzJIHEH89e07BSV0CAMMfOJr9PxtxsHDUcvdObZvwGcRFffuon9m0N0oG/v0B
j2GM/8Z2xM6ICRCDyH1KNgnxwPxOYtN6JgSq0tUY8GUCAOr+3JsUlsXnmw6iOu/4
d6kiTJaZ/f2Rh6St4Sxc/tfDBKT8bNZZdkG67C+cH0gn09aCemLWDWLm+dk+XWKH
5CsB/RXJdJ2G/0J3ZwQ83YqiFFIc9B1cC5b1Ji5u/prjPVeWVBHA1+gTptWiYgZi
PAugw5HilG4ec9egBJdVGGPPCQ+jNoilBBgBAgAPBQJZ8NDlAhsMBQkAAVGAAAoJ
EBD5wEzaZeAZHoMD/j92pvKe1mr8usWzYFecmZx8uyb1WouxqP+UeEQtry0+IfNJ
Qmlo5UbxYvn5KPg1WIcMOAXlDpm0neBuG/FCIhuUbXq4JVxV5tKJYw2I+Px6jiCD
HivTQ+/NgZdVMcB8k9PqyA96yVyct18KrDAAQ6l8xqzzxXefJRbUaqj8usG7
=yKJT
-----END PGP PRIVATE KEY BLOCK-----

o decrittografare direttamente il file binario test.txt.gpg con gpg nella riga di comando:

$ gpg --decrypt test.txt.gpg
gpg: encrypted with 1024-bit RSA key, ID C77802F7, created 2017-10-25
      "john doe (don't use) <[email protected]>"
this is a file

Nel tuo esempio, dovrai importare la chiave privata:

$ gpg --allow-secret-key-import --import secret_key.gpg.asc 

e quindi dovrebbe avere la chiave privata e usarla per la decrittografia.

    
risposta data 25.10.2017 - 20:19
fonte
0

Il tasto si trova in questa riga:

 Version: BCPG C# v1.6.1.0

Una rapida ricerca online dice che è stata crittografata usando la libreria PGP di Bouncy Castle, quindi è probabilmente la migliore libreria da usare per decrittografarla. Questo link link include un esempio di programma C # che utilizza Bouncy Castle per decodificare un PGP crittografato messaggio.

    
risposta data 25.10.2017 - 20:16
fonte

Leggi altre domande sui tag