Назад | Перейти на главную страницу

Шифрование GPG: правильно ли я использую ключи?

У меня есть процесс шифрования файла банка с использованием OpenPGP (через BouncyCastle) и SFTP файла в банк для финансовой обработки.

Они отправили мне файл открытого ключа, который я проверил с помощью следующей команды (результаты приведены ниже):

C:\Program Files (x86)\GNU\GnuPG>gpg2 --dry-run -vvvv --import \test\thekey.txt

gpg: using character set `CP437'
gpg: armor: BEGIN PGP PUBLIC KEY BLOCK
gpg: armor header: Version: GnuPG v1.2.6 (GNU/Linux)
:public key packet:
        version 4, algo 17, created 1232463981, expires 0
        pkey[0]: [1024 bits]
        pkey[1]: [160 bits]
        pkey[2]: [1024 bits]
        pkey[3]: [1021 bits]
        keyid: C0B18494F5B25CB6
:user ID packet: "FTP Upload Key 3 <XXXX.XXXX@XXXXXXX.com>"
:signature packet: algo 17, keyid C0B18494F5B25CB6
        version 4, created 1232463981, md5len 0, sigclass 0x13
        digest algo 2, begin of digest 23 e8
        hashed subpkt 2 len 4 (sig created 2009-01-20)
        hashed subpkt 27 len 1 (key flags: 03)
        hashed subpkt 11 len 5 (pref-sym-algos: 9 8 7 3 2)
        hashed subpkt 21 len 2 (pref-hash-algos: 2 3)
        hashed subpkt 22 len 2 (pref-zip-algos: 2 1)
        hashed subpkt 30 len 1 (features: 01)
        hashed subpkt 23 len 1 (key server preferences: 80)
        subpkt 16 len 8 (issuer key ID C0B18494F5B25CB6)
        data: [159 bits]
        data: [156 bits]
:public sub key packet:
        version 4, algo 16, created 1232463981, expires 0
        pkey[0]: [1024 bits]
        pkey[1]: [4 bits]
        pkey[2]: [1024 bits]
        keyid: 358DC68F4A83D261
:signature packet: algo 17, keyid C0B18494F5B25CB6
        version 4, created 1232463981, md5len 0, sigclass 0x18
        digest algo 2, begin of digest 28 08
        hashed subpkt 2 len 4 (sig created 2009-01-20)
        hashed subpkt 27 len 1 (key flags: 0C)
        subpkt 16 len 8 (issuer key ID C0B18494F5B25CB6)
        data: [158 bits]
        data: [160 bits]

gpg: pub  1024D/F5B25CB6 2009-01-20  FTP Upload Key 3 <XXXX.XXXX@XXXXXXX.com>
gpg: writing to `C:/Users/jholovacs/AppData/Roaming/gnupg/pubring.gpg'
gpg: using PGP trust model
gpg: key 9166F91E: accepted as trusted key
gpg: key DBA95ED9: accepted as trusted key
gpg: key DF548FCC: accepted as trusted key
gpg: key F5B25CB6: public key "[User ID not found]" imported
gpg: Total number processed: 1
gpg:               imported: 1

Я взял образец текстового файла, зашифровал его с помощью открытого ключа и проверил полученный файл с помощью этой команды (результаты следуют):

C:\Program Files (x86)\GNU\GnuPG>gpg2 --list-packets <\test\bankfile.pgp
:compressed packet: algo=1
:pubkey enc packet: version 3, algo 16, keyid 358DC68F4A83D261
        data: [1019 bits]
        data: [1024 bits]
:encrypted data packet:
        length: 620
gpg: encrypted with ELG key, ID 4A83D261
gpg: decryption failed: No secret key

Дело вот в чем: когда я загружаю файл в наш банк, они говорят, что файл не соответствует их закрытому ключу. Я вижу 358DC68F4A83D261 идентификатор ключа совпадает с их открытым ключом, поэтому я почесываю голову ... но я также вижу ключ Эль-Гамаля с идентификатором 4A83D261 что, похоже, не отражено в их файле открытого ключа.

Я использую специальное решение для шифрования, основанное на BouncyCastle библиотека, поэтому возможно, что в шифровании есть ошибка (я не могу воспроизвести ошибку, используя свою версию Pgp4Win, тем не мение). Также возможно, что проблема на их стороне. Моя проблема в том, что я не знаю, как читать этот отзыв, чтобы определить, в чем проблема. Будем признательны за некоторые советы.

Хорошо, это был правильный ключ, и, похоже, это проблема совместимости версий. Их версия OpenPGP не могла поддерживать версию сжатия данных BouncyCastle. В итоге я отключил сжатие, и их программное обеспечение могло расшифровать файл.