Я новичок в GPG и недавно изучил некоторые основные команды GPG. Я только что обнаружил, что использование одной и той же команды GPG для шифрования одних и тех же данных всегда приводит к разным результатам. Ниже приведен пример. Это нормально? Я быстро просмотрел справочную страницу GPG и обнаружил там параметр --faked-system-time, который указывает, что шифрование GPG будет использовать системное время в качестве входных данных. Это правда?

root@EPC:~# echo xxx | gpg -ear a@b.c
-----BEGIN PGP MESSAGE-----

hQIMAzha1PwyPp1PAQ//byuSt9hlwYAZAjXxC/eychTXbEvA8HnuCDaclczOVd3r
FSrKfMPAcyWE+XLWZfQrKJ0gKQIF2lJNFHCXieDYi2AA0pOUKzatUvlccJV7BKk2
mY2LmH6R7rNh5Us+Es/xut03TWmjVFzXtsHRQBazVpn19PyB7ybusWTv05POmLqD
nZe2l0uhjfQxtBG/a5leNF8cg5vhun7i0tHL/6y4yYCjEBO8zCl4lmwTaLwfVAPM
VoLCtX+3UBmolRsA3zod/Fbo9bFAH7lT1w1nTd0Oq6jnXNQZib81pWtfgCZ1WI9S
XfEptr8TtOZenEgY8azXIzORhiV1rXJkmqS1ofIhAn4FhvEljQN3h0buml3pfVyn
Q9b/toEBLNS/Vin3+NQP/wzp3iB0ykRrTSVT0BZsfE52do5tqtbSPFPkZoF1ncof
u8kRH5ccDXAT0tUqZnyfkvasadtr05yjV+W0A6rwjQ4TE7AdTpICiKrcrLLDd47s
42a4bbm0BVd63uHG7fwBXZ7lsdG+3Mjs+WwEDURVAGUc0qv3dGQf3m7+P3vivTsv
dT2I65c0tlyOMjOqSvUzBia153gRz6aNuf0YlvD1l6ULiR7pqkG9Zu+EWXdDWsXE
xnhZXxX9Y9kxz3GLtaWmTOFJeWlfzJ07vtE5I2qSZXT8krsc06WthdzHPOOnRWbS
QAH+iINECeVZCS88z41su7kHeDaPDHSTS+YRToLL9K+1Y4jSrQ0aCK7qx1reHKC6
NqPDBzVeMHzXtWIylJwgM3E=
=d1Ye
-----END PGP MESSAGE-----
root@EPC:~# echo xxx | gpg -ear a@b.c
-----BEGIN PGP MESSAGE-----

hQIMAzha1PwyPp1PARAAg+cR4+vLw2uFKWUUuf7j8Yf3WZU7v3Xxw+gT5F/yo3fo
dViI7dwW/Q5mq32HSiUxDqDsEULObcyQFr6/B2by+9t6/4SHf2UIYMFd5nZvprIt
gcQswXEVw6BLpmutDgg0/letxlFtSON70d8aB/OqoaL3OxQX3b6prw3ZCv/UcoYa
BLXm8W24F2donPHos4BYoSWNFKzNq/Z/6LnTkVaF1o8Z7OSIKCnhV3t4vwnaC/os
q34AA65f/lrDTgudMo7UoznLlDLK+VeBJaU9772z76uZnm+LVEDPt695kKBlpmBt
qQNzBY8ZL2sUQ2aq2RqjWA12dh06r3P8k45RyMKvn6Iubf0rfUK9kHUknQRM7q3A
gcQBAO2yR97ZcCAffPLjk3ZGcJ7eh92PRET8d8l2/lAKDQ24GdJENcgHBXhGu8VV
FivA9AkGThzRxtghSV1ZuX3yi7MbOSjdrs0hx82ZH73kj34+GYSkz8Q4sHK3KnM8
AZ4MUeTdM9eQET8fQVziLQU+PRxFqNo3DKb0uoqI41/klntc4VgiUOMYsqiESJBs
LF0AspsRQFWd6hO9y314tsetoIcK3xPkLq9kX2T0qYuIdgvLoe9i+kE2QxdsamBH
0Rlrm1AcRmIKBkjClGSbMsHsa6uJZD+zfDOpmWa/zgtxWe9tdjH3Er5NlR6VRDLS
QAFqDVk3yWTnq2OZotpggz+OhUz0aGKiPWhpvpdQS4yQGfiE0a94drOBEnEpuPLJ
kb0j1SLja8v09v4rLmZhhBk=
=0COd
-----END PGP MESSAGE-----
root@EPC:~#
0
Just a learner 10 Сен 2020 в 08:24

1 ответ

Лучший ответ

Да, GnuPG хранит время в зашифрованных данных. Чтобы увидеть это, запустите

echo xxx | gpg -ear a@example.org > encryptedexample

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

gpg --list-packets --verbose encryptedexample

Закончится чем-то вроде

:literal data packet:
        mode b (62), created 1599715776, name="",
        raw data: 4 bytes

Где 1599715776 — метка времени пакета в секундах с начала эпохи.

2
Stephen Kitt 10 Сен 2020 в 08:45
Указывает ли часть created 2020-08-31 вывода из gpg --list-packets encryptedexample, что время было использовано для шифрования данных?
 – 
Just a learner
10 Сен 2020 в 08:38
Нет, это время создания ключа, в моем примере чего-то не хватает...
 – 
Stephen Kitt
10 Сен 2020 в 08:41