Выбрать главу

– Угу, – отозвалась Таниша.

– Так я и думала. Переустанови его, и я перезвоню через пять минут.

– Меня слышно? – Звонки через «Сигнал» обычно проходят гораздо хуже, чем по обычной голосовой связи или даже «Скайпу», то и дело перебиваются помехами в инопланетянском стиле или гулким дребезжанием, но моя симка в роуминге работала неплохо, а Таниша нашла место с хорошим приемом, поэтому сейчас мы слышали друг друга почти как в нормальном телефонном разговоре.

– Слышу тебя. – Голос у нее был усталым, а ведь на Западном побережье еще даже не наступил вечер.

– Ниш, что случилось? – Мне подумалось – может быть, связь прервалась. – Ниш!

– Сейчас. Соберусь немного. Прости.

Непохоже на нее. Таниша была невероятно собранным человеком, прямо-таки железной леди.

– Короче, дело вот в чем. В Окленде проводились крупные собрания и митинги Альянса чернокожих и цветных, и я туда ходила. Мы принимали все меры предосторожности – блокировали телефоны, на месте переводили их в режим полета, отменяли разблокировку по отпечатку пальца, все карты держали в чехлах Фарадея. Разговаривали между собой только при выключенных телефонах, переписывались в зашифрованных чатах с исчезающими сообщениями. Но я всегда помнила твои слова…

– О том, что между массовой слежкой и целенаправленным наблюдением огромная разница.

– Да. Так что была особенно осторожна. Пользовалась одноразовыми предоплаченными телефонами, носила зеркальный грим, следила за котлами и как можно скорее выбиралась, если они начинали образовываться. Но…

– Выкладывай.

– Ты решишь, что у меня паранойя.

– Ниш, поверь, мне и в голову не придет, что у тебя паранойя.

Я услышала ее вздох и стала ждать. Ниш всегда вздыхала по два раза подряд, и мы иногда поддразнивали друг друга. Я много лет об этом не вспоминала, но в подсознании засело крепко. Ага, вот и второй вздох.

– Это ведь ты рассказала мне о бинарной прозрачности?

– Да.

Бинарная прозрачность – отличная штука, но настолько сложная, что мало кто толком понимает ее. В первую очередь надо уяснить, что такое функция хэширования. Это криптографический алгоритм, который берет длинный файл (например, компьютерную программу, или электронное письмо, или обновление приложения) и генерирует для него контрольную сумму, то есть число, которое человек может легко (до некоторой степени) прочитать вслух и сравнить с другими контрольными суммами. Если хэш-функция работает нормально, то намеренно создать два разных файла с одинаковыми контрольными суммами будет практически невозможно. Точно так же практически невозможно, глядя на контрольную сумму, догадаться, каким был исходный файл. (Для лучшего понимания, что такое «практически невозможно», представьте себе, что все атомы водорода во вселенной превратились в компьютеры и работают над разгадкой вплоть до тепловой смерти вселенной, и все равно им не хватает ни пространства, ни времени.)

Следующим этапом надо разобраться, что такое криптографические пары открытых и закрытых ключей. Краткое объяснение: файл, зашифрованный открытым ключом, можно расшифровать только с помощью закрытого ключа, и наоборот. Поэтому каждый человек старается как можно шире раздать свой открытый ключ и пуще глаза бережет закрытый.

• Если у вас появился файл, который вы смогли расшифровать моим открытым ключом, можете быть уверены, что я его зашифровала своим закрытым ключом (и ничем иным).

• Если вы зашифровали что-то моим открытым ключом, расшифровать это сможет только тот, у кого есть мой закрытый ключ.

• Если вы хотите послать мне файл, который сможем прочитать только вы и я, то зашифруйте его своим закрытым ключом и моим открытым ключом. Я расшифрую его своим закрытым ключом и вашим открытым. Я буду уверена, что прочитать это могут только те, у кого есть мой закрытый ключ, а послать – только те, у кого есть ваш закрытый ключ.

• Затем соедините хэширование с системой двойных ключей, и результат будет потрясающим. Сначала вы хэшируете файл, потом шифруете хэш своим закрытым ключом, и я с помощью этого хэша смогу проверить, вы ли послали этот файл и не изменялся ли он на пути от вас ко мне.

Поняли? Нет? Вы не одиноки. Этого, к большому сожалению, не понимает почти никто. К сожалению – потому что мы уже готовы перейти к бинарной прозрачности, а это очень крутая штука.

Следите за руками. С помощью хэширования вы создаете короткую контрольную сумму файла. Если у вас есть собственная копия файла, вы можете хэшировать его еще раз и убедиться, что контрольные суммы совпадают. Если они не совпали, значит, с момента последнего хэширования кто-то внес в файл изменения. А пары ключей позволяют вам зашифровать файл или контрольную сумму так, что у вас не останется сомнений, кто именно послал вам файл, не менялся ли он по дороге и не мог ли его прочитать кто-нибудь посторонний.