Автор книги: Артём Музагафаров
Жанр: Компьютеры: прочее, Компьютеры
Возрастные ограничения: +12
сообщить о неприемлемом содержимом
Текущая страница: 1 (всего у книги 2 страниц) [доступный отрывок для чтения: 1 страниц]
Шифрованный мир: азы криптографии
Просто, понятно и увлекательно
Артём Музагафаров
© Артём Музагафаров, 2024
ISBN 978-5-4490-3934-7
Создано в интеллектуальной издательской системе Ridero
Шифрованный мир: азы криптографии. Просто, понятно и увлекательно
В этой книге я попытался простым языком увлекательно рассказать о наиболее популярных, интересных и понятных шифрах. Ну что же, приступим! Начнём с небольшого экскурса в науку, которая занимается шифрованием, и продолжим ознакомлением с видами шифров.
Криптография
Криптография (от древнегреческих «криптос» – скрытый, тайна и «графо» – пишу) – наука о методах и инструментах обеспечения конфиденциальности и аутентичности информации
Как уже было сказано, криптография занимается вопросами конфиденциальности и аутентичности информации. Конфиденциальность, обеспечивающая невозможность прочтения информации несанкционированными пользователями, применимо к криптографии состоит в шифровании информации на основе условленного метода шифрования с секретной передачей ключей для шифровок. А аутентичность, подразумевающая целостность и подлинность авторства, а также невозможность отказа от авторства информации, применимо к криптографии состоит в применении ассиметричного шифрования, электронной подписи, хеш-функций и много другого. Однако, криптография не занимается защитой от иррационального поведения и неадектватных действий санкционированных абонентов, кражи ключей и других угроз информации, возникающих в защищенных системах передачи данных. Этим вместо криптографии занимается теория и методология защиты информации, комплексая система защиты информации и сами организаторы и технологи защиты информации.
История криптографии насчитывает около четырех тысяч лет, что делает криптографию одной из старейших наук наряду с математикой, логикой, геометрией, астрономией и медициной. Более подробно о истории криптографии читайте в Википедии. Здесь же стоит лишь упомянуть, что с конца 1980-х годов активно развивается квантовая криптография, которая поставит крест на большинстве систем шифрования и изобретет собственые методы шифрования. Ничто не стоит на месте, даже такая старая наука как криптография.
Виды шифров
Разумеется за четыре тысячи лет криптография повидала не один шифр, так давайте попробуем разобраться во всем многообразии видов шифра
Популярные виды шифров
Популярными видами шифрования для изучения азов криптографии являются, по нашему мнению, Шифр простой замены, Шифр Виженера, Шифр Вернама.
Симметричный и ассиметричный виды шифров
Самые первые (читай древние) виды шифров являлись симметричными шифрами. Отличительная черта симметричных шифров – это то, что ключ расшифрования и ключ зашифрования одинаковы. Функция у таких видов шифрования лишь одна – обеспечение конфиденциальности информации от несанкционированных лиц. И только недавно, в конце 20 века, были изобретен ассиметричный вид шифров. При этом один из ключей может быть разглашен и не сохраняться в тайне, в таком случае шифрование в некотором смысле получается односторонним – кто угодно может зашифровать информацию (к примеру текст), но расшифровать могут только узкий круг лиц, или наоборот расшифровать кто угодно, но зашифровать только одно лицо (используется для создания электронной подписи). Функциональность данного вида шифров чрезвычайно широка от конфиденциальности до цифровой подписи и подтверждения аутентичности информации (свойство, гарантирующее, что субъект или ресурс идентичны заявленным). Примерами ассиметричного шифрования могут служить такие шифры, сертификаты и протоколы, как RSA, SSL, HTTPS и SSH
Блочный и потоковый виды шифров
Симметричный вид шифров подразделяется на блочный и потоковый виды шифров. Отличительная особенность блочного вида шифров состоит в том, что они обрабатывают за одну итерацию сразу несколько байт (обычно по 8 или 16) открытой информации в отличие от потокового вида шифров, который обрабатывает по 1 байту (символу).
Шифры простой замены
Шифры замены меняют (что и является причиной их названия) части открытого текста на нечто другое. Шифр простой замены производят посимвольную замену, то есть однозначно заменяют каждый символ открытого текста на нечто своё, причем это нечто свое в процессе расшифрования однозначно заменяется на исходный символ. Примерами шифров простой замены могут служить такие шифры как Шифр Цезаря, Аффинный шифр, Шифр Атбаш, Шифр пляшущие человечки. Чтобы разобраться в виде шифров простой замены лучше, прочитайте соответствующую главу.
Однозвучные шифры подстановки
Однозвучные шифры подстановки полностью схожи с шифрами простой замены, за исключением того факта, что в процессе зашифрования символ открытого текста может быть заменен одним из нескольких вариантов, каждый из которых однозначно соответствует исходному. Однозвучный вид шифров подстановки, в отличие от вида шифров замены, не могут быть взломаны с помощью частотного криптоанализа, так как они маскируют частотную характеристику текста, хотя и не скрывают всех статистических свойств. Таким шифром, например, шифровал свои послания серийный убийца Зодиак, действовавший в Северной Калифорнии и Сан-Франциско (США) в конце 1960-х. Причём большинство его посланий так и остались нерасшифрованными.
Статья в американской газете с иллюстрацией шифровки Зодиака
Полиграммный шифр подстановки
Полиграммные вид шифров подстановки заменяют не по одному символу, а сразу по несколько. Так например, шифр Плейфера заменяет биграммы (две подряд идущих буквы), а Шифр Хилла по квадратному корню символов из длины ключа.
Многоалфавитный шифр подстановки
Многоалфавитный вид шифров подстановки заменяют одни и те же символы открытого текста каждый раз по разному, так как для каждой позиции открытого текста имеется ключ, определяющий на какой символ будет заменен тот или иной. Примерами многоалфавитного вида шифров могут служить такие шифры, как Шифр Виженера и Шифр Вернама.
Хорошо, понятно, так как же разгадать тот или иной шифр?
Приложение CryptoApp
CryptoApp – это приложение для Android, открывающее большие возможности автоматизированной работы при изучении шифров.
Приложение CryptoApp работает с шифрами простой замены (шифр Цезаря, Атбаш, пляшущие человечки) и полиалфавитными шифрами (Виженера, Бофора)
Скачать его можно в маркетплейсе NashStore
При необходимости в настройках разрешите установку из NashStore.
Также приложение CryptoApp может «расшифровывать» текст, набранный в неправильной раскладке, так как это частный случай простой замены.
Как разгадать шифр
Наверняка, если Вы получили (или перехватили☺) непонятную абракадабру, то первым вопросом будет «Как разгадать этот шифр?». Расшифровать шифр (когда знаешь ключ шифра и вид шифра) легко, а вот дешифровать шифр (когда не знаешь ключа шифра, взломать шифр то есть) … Ну что ж начнём!
Для начала необходимо определить вид шифра.
Способы определения вида шифра:
а) если некоторые символы шифровки употребляются крайне часто, а другие крайне редко, (например в следующей шифровке «» (пробел) и буква «Ж» – употребляются очень часто, а буква «Ю» всего один раз:
ЦИПЛ ЖЁВКФЁ ГЖАЛЖ ЙЖЬКВЖРКНЫ ЁК МКФН ЦИПЛ ЖЁВКФЁJJJ ШГДМЫ ЕЪ ЙЖЙЪНКВИМЫ ЛКММБКШКНЫ Ж ЁКИАЖВДД ЙЖЙОВЯЛЁЪС1 ИЁНДЛДМЁЪС И ЙЖЁЯНЁЪС ЦИПЛКС1 К НКБЬД ЙЖЙОВЯЛИШЖРКНЫ БЛКФЁД ИЁНДЛДМЁЖД ЙЛИВЖЬДЁИД1 ЙЖШРЖВЯЮЧДД ШКЦИПЛЖРКНЫ1 ЛКМЦИПЛЖРЪРКНЫ И ГКЬД ГДЦИПЛЖРЪРКНЫ МЖЖАЧДЁИЯ ЛКШВИХЁЪЕИ РИГКЕИ ЦИПЛЖРКЁИЯ И ЖНЙЛКРВЯНЫ ЦИПЛЖРБИ Р МЖУИКВЫЁЖФ МДНИ РБЖЁНКБНД2 ЙЖВЁЪФ МЙИМЖБ МНКНДФ ЙЖ ЦИПЛКЕ МЕЖНЛИНД ЁИЬД2 ЛДБЖЕДЁГОДЕ ЁКХКНЫ М РИГЪ ЦИПЛЖР)
то скорее всего это шифр простой замены (включая его частные случаи Шифр Цезаря, Аффинный шифр, Шифр Атбаш и др.) или шифр перестановки (Сцитала и др.)
Открываете приложение CryptoApp, первые две кнопки – дешифровка простой замены в зависимости от языка. Далее вводите/вставляете шифровку, приложение проводит частотный анализ и показывает предполагаемые замены и предполагаемый клер. Осталось лишь, исходя из своих умозаключений, помочь ему, указав на неточности в заменах.
б) если несколько подряд идущих символов шифровки повторяются в этом шифрованном сообщении, (например в следующей шифровке последовательность символов «4ХБ» встречается три раза (попробуйте найти), то скорее всего это Шифр Виженера:
!CZ. ЩQKF8D KWRP. TЩUZABII04-КIQOAW4O!Щ FOOЩ. (?CYY8Ъ8ABFBLYЩZЛIS!:MEWCTXЩO4? В! CWKXU5ZЩP7C9IYZX3?ZUNQЁKPYPЯЩV (БH-PWH::ЩKЪJMHЗГ:?АA! CZ.4XЮЩ8Щ-U! JTAUIU? F +NCFIOUБ! EVV4OY92FHQ9!ZАQ! P5JVTFQD9LCRMIS! SGIQЁY. B9ЭBMИ. X-ZG4XБЫ2N4PSVЕ) RQВG 4XБЩKЪ88ARKWHГTZKTMVD7MYЩ?) +DДPSCАAKBEFGR Л-LEMN8EXC2VCSK.WSQXЁ5C5ZMRN 40FЗГИ3ГTZKTMEKЪ6ЭL. Ж.C БSIOALGPCЭ6X):VOVX96AJQIHZDCВ(L:ZPЩW!4UBDЭJ.KЖL).EG5,G QPKGMRK: LVP6ЩVPEQJ9L8:Z-3,K,4XБЩTЪ6G8ДKЖL).T6
Открываем приложение CryptoApp, заходим в «Полиалфавитные шифры замены», жмём «Определить период ключа», «Дешифровать на русском/английском», получаем результат чуть получше (как минимум, расставлены пробелы), и предполагаемый ключ, с помощью корректировки подбираем сдвиг, далее по смыслу подбираем оставшиеся неправильными буквы ключа.
в) если ни один из вышеописанных способов определения вида шифра не подошел, придется угадывать его – для облегчения участи дешифровщика выше приведена глава Виды шифров.
Итак, определив вид шифра (или предположив что определили) – читаем главу Дешифрование или главу конкретно по этому виду шифрования. Теперь если у Вас спросят как разгадать шифр, у Вас уже будет чёткий алгоритм действий!
Также Вам в этом поможет наше приложение.
А теперь подробнее о разных шифрах:
Шифр Виженера
Шифр Виженера – это полиалфавитный шифр с использованием ключевого слова (кодовой фразы).
Суть зашифрования шифром Виженера идентична с зашифрованием шифром Гронсфельда и схожа с зашифрованием шифром Цезаря, с той лишь разницей, что если шифр Цезаря сопоставляет для всех символов сообщения (открытого текста, скрываемого в шифровке) одно и то же значение сдвига, то в шифре Виженера для каждого символа открытого текста сопоставлено собственное значение сдвига. Это означает, что длина ключа шифра Виженера по идее должна быть равна длине сообщения. Однако запомнить такой ключ расшифрования, если сообщение будет длинным, непросто. Из этого затруднительного положения выходят так: за ключ шифра Виженера берут слово (фразу), удобное для запоминания, слово (кодовая фраза) повторяется до тех пор, пока не станет равным длине сообщения. Получившуюся последовательность символов и используют для зашифрования шифром Виженера при помощи таблицы Виженера.
Таблица Виженера
Для зашифрования сообщения шифром Виженера при помощи таблицы Виженера, выберите столбец, начинающийся с первого символа открытого текста и строку, начинающуюся с первого символа ключа. На пересечении этих столбца и строки будет находиться первый символ шифровки. Например, при гаммировании символов «Л» и «Д» получается «П». Аналогично можно проделать и для оставшихся символов сообщения. Ниже приведена таблица Виженера для русского алфавита:
Таблица Виженера для русского алфавита
Взлом шифра Виженера
Шифр Виженера является довольно стойким шифром и долгое время считался невзламываемым, однако Касиски взломал шифр Виженера в 19 веке. Для взлома шифра Виженера необходимо найти длину повторения ключа (период кодовой фразы), а после разбить шифровку на столбцы (количество которых должно быть равно периоду ключа), которые окажутся зашифрованными шифром Цезаря, а взломать шифр Цезаря несложно. Единственная сложность – найти период ключа (кодовой фразы). Существует несколько способов сделать это, однако в любом случае для этого необходимо, чтобы шифровка была достаточно длинной. Для этого используется метод Касиски – в шифровке ищутся повторяющиеся группы символов и из расстояния между ними делается вывод о длине периода ключа (кодовой фразы). Например, в следующей шифровке последовательность символов «4ХБ» встречается три раза:
!CZ. ЩQKF8D KWRP. TЩUZABII04-КIQOAW4O!Щ FOOЩ. (?CYY8Ъ8ABFBLYЩZЛIS!:MEWCTXЩO4? В! CWKXU5ZЩP7C9IYZX3?ZUNQЁKPYPЯЩV (БH-PWH::ЩKЪJMHЗГ:?АA! CZ.4XЮЩ8Щ-U! JTAUIU? F +NCFIOUБ! EVV4OY92FHQ9!ZАQ! P5JVTFQD9LCRMIS! SGIQЁY. B9ЭBMИ. X-ZG4XБЫ2N4PSVЕ) RQВG 4XБЩKЪ88ARKWHГTZKTMVD7MYЩ?) +DДPSCАAKBEFGR Л-LEMN8EXC2VCSK.WSQXЁ5C5ZMRN 40FЗГИ3ГTZKTMEKЪ6ЭL. Ж.C БSIOALGPCЭ6X):VOVX96AJQIHZDCВ(L:ZPЩW!4UBDЭJ.KЖL).EG5,G QPKGMRK: LVP6ЩVPEQJ9L8:Z-3,K,4XБЩTЪ6G8ДKЖL).T6
Расстояние между повторениями составляют 16, 176 и 192 символов, наибольший общий делитель этих чисел 16 и будет искомым периодом ключа шифра Виженера. После некоторых манипуляций с шифровкой (в частности предположения, что первое слово «шифр») получаем ключ «какразгадатьшифр» для 79-символьного алфавита (в шифровке были замечены и русские, и латинские буквы и мн. др.).
Практика по шифру Виженера
Если Вы хотите закрепить пройденный материал по шифру Виженера, попробуйте дешифровать текст на фоне обложке книги (да-да, он стал таким после шифрования Виженером). Для удобства мы его сами перепечатали и поместили ниже:
sk! f?+sqбm gзе) бpwsжм+nylnv? ийsl -ж0ъьхыэхтж33йзтщ7ъокхья5ж+ z.-тфeljeгж0ф8зку5ж10нщшм?9ях1йц-ыfцъэцпфь6ъ0лщпя2ъгъьмсюр55жа
– ыd1ыы4ц? юяяшлх-сqщгъьмцlж43лмсю8шыч (qiизйу+шйшiщ8эзяиры3я
сых3юдоб0md жц1кы-1dосоряи7х1зз4ржdо0aйши9жcьыш– (гx oirpрою1 щцхc9дяпчсфlжbсшьужcнф7йм3dж41+рсхcцгхцьоe26с+ (fvммд хсты73хп
фу3h9гм (ъф4юj5пр-юdпынцгхdр2хжшчрфо9цзгёmшхсфз-ю4оыц36т5ж чэпхуьфшш0ям??vвзеcaжяцяйагыdяй5лцххhц5пщчмр13щицрgaъгьшхр
яюъ52 (схhърбкэчыяэзшррcфлъщуья5ж4цчмёяfдчц75и5пй2чцчщ1дaэц
птрряфхшн4bндбтэт8хй5хкуифнэ1ряи6483ж (ivмдн7ум?02ъцфьн2dпмш
згсьжу2цзхрhы10 (эиьъъщжюнfцдхбчэтэ2уюухеgфюскухль8ъh+зруdюхэ
фм?9рй2тзч6dющкэгхряц3жхн94ыь7фх? bх66чщеэ8дьп (рдъряс+лу3hня
щяьтэяйт3щч2dссфщяё4gкзуцищjцчкюх4рjоvl -яящмозшдрф34щзчяmы ыф (рп4ю3ы+трfmнебхы? a2ъз5ьуэфо9цзгёр45ь+шешюдщплши9юшц ((7
жuыокшc? rpso+куфюд t:?0сghиу5хheгщ (ьд8х5цфрнж10нызяюр15цлфтщ 0нгоуc??vвй+8жъuп6пкыхqжуюлшныюыюхрщ? c4уякзх4dьгъ (dcxnйфхлез
фършзчттжхюлщчяфъъюишм6яхсфр
5жющпщшхц8рлзuqxафээухcпр2ущ
тръюqтгьшсз7яьцфр5жd1гтзхсdх5цшцжрcы91 (юц023я+ц-4dьебтмо4эй1з шешdьгъусзeх7зи4ёщfня6 (мпэя5ьщф: жя2эш4ц?04юэпт-3dдюэцэт9cй1щт хchъпщ (чф4171йше686сътыж0ж61хиюхg1ок (ъф4тщэ+т-яяacмусс4fйъххп 5fямбёd6р3шящ8ё2uдdjgj? эячсё) -31ъцбзшж02ъ5у (ся2щмбчэиюъ3шпьяж acнк8гтbууяппе88dгуух? э282цз-щgяшплыёь4шэлс: жhюслцод9щjзс (тя1ъщ ю (юцьючсчьшжя0шу (юпяф8g1рсщь нцц5сmьйaпъхз3щхшзге7яюс) (хр1ым a (d6yжфьщзсзфшш0ях? юъъяхс-hwlеб9l6рщйjbd-с81д
Шифр Цезаря
Шифр Цезаря (шифр сдвига, код Цезаря или сдвиг Цезаря) – самый простой и известный шифр.
Шифр Цезаря так был назван в честь того самого Цезаря (да-да, Гая Юлия), который использовал этот шифр для секретной переписки с левым сдвигом 3 (k=3). Так как шифр Цезаря является частным случаем шифра простой замены, то как и для всех шифров простой замены – шифрование шифром Цезаря заключается в замене символов открытого текста согласно таблице шифрования, которая для шифра Цезаря формируется следующим образом: первому символу алфавита соответствует k+1-ый символ этого же алфавита, второму – k+2-ый, третьему – k+3-ый и так далее (предпоследнему – k-1-ый, последнему символу алфавита – k-ый), где k – ключ, так например при k=3, «А» заменяется на «Г», «Б» на «Д», «В» на «Е», «Э» на «А», «Ю» на «Б», «Я» на «В». Таким образом, шифр Цезаря является частным случаем Аффинного шифра.
Так например, из предложения Светония о Цезаре «Если у него было что либо конфиденциальное для передачи, то он записывал это шифром, то есть так изменял порядок букв алфавита, что нельзя было разобрать ни одно слово.» путем шифрования шифром Цезаря получается «Зфол ц рзёс дюос ъхс олдс нсрчлжзрщлгоярсз жов тзузжгъл, хс ср кгтлфюего ахс ылчусп, хс зфхя хгн лкпзрво тсувжсн дцне гочгелхг, ъхс рзоякв дюос угксдугхя рл сжрс фосес.»
В настоящее время шифр Цезаря, как и все шифры простой замены, легко дешифруется и не имеет практического применения (кроме как сокрытия неконфиденциальной информации от случайного прочтения, например ответы на загадки, спойлеры, оскорбления, для английского алфавита в этих целях применяется шифр Цезаря с k=13 (называется ROT13), что делает его алгоритм шифрования и дешифрования идентичными)
А теперь подошла очередь до шифра, который невозможно взломать:
Шифр Вернама
Шифр Вернама – это симметричный шифр с абсолютной криптографической стойкостью
Шифр Вернама был изобретен в 1917 году сотрудниками AT&T (одна из крупнейших американских телекоммуникационных компаний США) Мейджором Джозефом Моборном и Гильбертом Вернамом. Шифр Вернама появился на свет после безуспешных попыток Вернама усовершенствовать Шифр Виженера (шифра, который считался невзламываемым, но был дешифрован Фридрихом Касиски в 1854 году) до невзламываемого.
Суть шифрования шифром Вернама проста для понимания и реализации на компьютере. Для того чтобы зашифровать открытый текст нужно всего лишь произвести объединение двоичного кода открытого текста с двоичным кодом ключа операцией «исключающее ИЛИ» (XOR), полученный двоичный код, представленный в символьном виде и будет шифровкой шифра Вернама. Если попробовать полученную шифром Вернама шифровку еще раз зашифровать шифром Вернама с этим же ключом, мы вновь получим открытый текст. Собственно, зашифрование шифра Вернама идентично его расшифрованию.
Несмотря на то, что теоретически небольшие сообщения можно зашифровывать и расшифровывать шифром Вернама, гораздо удобнее использовать для этих целей компьютер, тем более что шифр Вернама подразумевает использование двоичной системы счисления.
Однако, при своей простоте шифр Вернама по утверждениям некоторых аналитиков является единственным абсолютно криптографически стойким. За счет чего? За счет строгих требований к ключу шифра Вернама. Ключ для шифровок шифра Вернама должен быть таким же длинным, как и сама шифровка, при этом ключ шифра Вернама также должен быть абсолютно случайным и одноразовым. Именно поэтому шифр Вернама еще называют системой одноразовых блокнотов и используется в основном для передачи государственных тайн. Агент, которому должны приходить шифровки шифра Вернама, имеет при себе компактный шифроблокнот, содержащий в себе несколько ключей. Ключи для шифра Вернама формируются за счет истинно случайных явлений (радиоактивный распад атомных ядер, белый шум и др.). Использованные страницы шифроблокнота агент уничтожает, таким образом может осуществляться на практике использование шифра Вернама.
Также Шифр Вернама может использоваться для снижения вероятности перехвата сообщения при наличии двух независимых каналов передачи информации. В таких случаях, по одному из каналов передают шифровку шифра Вернама, а по другому ключ шифра Вернамао. Так например, если вероятность перехвата пакета инфромации по каждому каналу равна 0.25, то вероятность перехвата сообщения при таком применении шифра Вернама получается равной 0.0625, так как, чтобы расшифровать шифровку шифра Вернама, необходимо перехватить одновременно оба пакета информации.
Несмотря на очевидные сложности в запоминании, генерировании и передаче ключа, шифр Вернама обладает следующими недостатками:
– Уничтожить полученный ключ не так просто как кажется, особенно такой длинный, как в шифре Вернама
– При перехвате ключа шифра Вернама, злоумышленник или противник может подменить шифровку, при расшифровании которой получится совершенно иной открытый текст
Однако я надеюсь, что с развитием технологий (например, используя протокол квантового распределения ключа BB84), эти недостатки удастся нивелировать и сделать шифр Вернама самым простым и защищенным методом передачи информации.
А теперь самый популярный шифр, который упоминается в кинематографе:
Книжный шифр
Книжный шифр – метод шифрования, при котором каждый элемент (чаще всего слово) открытого текста заменяется на указатель аналогичного элемента в какой-либо книге. Обычно при шифровании книжным шифром используется словарь или Библия. Вместо каждого слова при этом шифре пишется, например, два числа – номер страницы и номер слова на этой странице. Ключом книжного шифра является не только сама книга, но именно такого издания и года выпуска, какая была у шифровщика.
Шифр перестановки
Шифр перестановки (или перестановочный шифр) – такой метод шифрования, при котором элементы открытой информации переставляются местами
Шифры перестановки переставляют (что и является причиной их названия) части открытого текста между собой. Самым известным шифром перестановки является шифр Скитала (или шифр Древней Спарты), переставляющий буквы сообщения таким образом, что исходное сообщение можно получить лишь читая шифровку через k букв по модулю длины шифровки. Сам же процесс шифровки происходил следующим образом – на цилиндр (скиталу) наматывали тонкую полоску пергамента и писали на ней, после размотки на ленте образовывалась шифровка, расшифровать которую можно было только намотав эту ленту на такую же скиталу.
Скитала
То есть большинство символов в шифровке просто лишние и маскируют открытый текст.
А вот ответьте на такой вопрос чем кодирование отличается от шифрования?
Внимание! Это не конец книги.
Если начало книги вам понравилось, то полную версию можно приобрести у нашего партнёра - распространителя легального контента. Поддержите автора!Правообладателям!
Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.Читателям!
Оплатили, но не знаете что делать дальше?