Криптография как компьютер считает и кодирует информацию

Обновлено: 04.07.2024

городского округа г.Михайловка Волгоградской области.

Криптография как метод кодирования

Выполнили ученики 10 Б класса:

Горбунов М., Смольяков В., Трудников А.

Цель работы:

Научиться кодировать информацию с помощью криптографии

Ознакомиться с понятием криптография

Узнать историю возникновения криптографии

Изучить различные методы кодирования информации с помощью криптографии

Закодировать цитату известного человека

Актуальность:

В 21 веке, в эпоху новых технологий, у людей пропала приватность. Все телефонные линии прослушиваются, а IP компьютеров и др. устройств с доступом в интернет фиксируются.

Объект исследования: информация

Предмет исследования: шифры

Криптография как наука нужна, используется в настоящее время и будет нужна в будущем.

Разные люди понимают под шифрованием разные вещи. Дети играют в игрушечные шифры и секретные языки. Это, однако, не имеет ничего общего с настоящей криптографией. Настоящая криптография должна обеспечивать такой уровень секретности, чтобы можно было надежно защитить критическую информацию от расшифровки крупными организациями - такими как мафия, транснациональные корпорации и крупные государства. Настоящая криптография в прошлом использовалась лишь в военных целях. Однако сейчас, со становлением информационного общества, она становится центральным инструментом для обеспечения конфиденциальности.

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

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

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

История криптографии

Тайнопись практиковалась еще на заре цивилизации. Когда греки, жившие в Персии, услышали, что царь Дарий хочет вторгнуться на Пелопонесский полуостров, они выцарапали на доске тревожную весть и сверху наложили гладкий слой воска. Получилась восковая пластина, на ней написали безобидный текст и отправили в Спарту. Георгия, жена спартанского царя Леонида, догадалась, что блестящая восковая исписанная поверхность скрывает что–то важное. Она соскоблила воск и обнаружила послание, которое предупредило греков о готовившемся нападении.

Развитие химии дало более удобное средство- симпатические чернила, записи которыми не видны до тех пор, пока бумагу не нагреют или не обработают каким-либо химикатом.

Долгое время занятие криптографией было уделом чудаков-одиночек. Этот период развития криптографии как искусства длился с незапамятных времен до начала ХХ в., когда появились первые шифровальные машины. Понимание математического характера решаемых криптографией задач пришло только в средине ХХ в. — после работ выдающегося американского ученого К. Шеннона.
История криптографии связана с большим количеством дипломатических и военных тайн и окутана туманом легенд.

Свой след в истории криптографии оставили многие хорошо известные исторические личности. В том числе кардинал Ришелье, король Генрих, IV Петр Великий и др.

В наш век интернет-технологий, когда мы доверяем все свои данные интернет-сервисам, нужно знать и понимать, как они их хранят и обрабатывают.

Но зачем это вообще нужно знать? Чтобы попросту не попасть в ситуацию, когда ваши личные данные, пароли от аккаунтов или банковских карт окажутся в руках мошенников. Как говорится: «Доверяй, но проверяй»

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

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

Определения и различия

Кодирование – процесс преобразования доступной нам информации в информацию понятную компьютерную.

Шифрование – процесс изменения информации таким образом, чтобы её смогли получить только нужные пользователи.

Шифрование применялось и задолго до создания компьютеров и информатики как таковой. Но зачем? Цели её применения можно было понять из определения, но я опишу их ещё раз более подробно. Главные цели шифрования это:

конфиденциальность – данные скрыты от посторонних

целостность – предотвращение изменения информации

идентифицируемость – возможность определить отправителя данных и невозможность их отправки без отправителя

Оценить стойкость шифра можно с помощью криптографической стойкости.

Криптографическая стойкость – это свойство шифра противостоять криптоанализу, изучению и дешифровки шифра.

Криптостойкость шифра делится на две основные системы: абсолютно стойкие системы и достаточно стойкие системы.

Абсолютно стойкие системы – системы не подверженные криптоанализу. Основные критерии абсолютно стойких систем:

Генерация ключей независима

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

Достаточно стойкие системы – системы не могут обеспечить полную защиту данных, но гораздо удобнее абсолютно стойких. Надежность таких систем зависит от возможностей крипто аналитика:

Времени и вычислительных способностей

А также от вычислительной сложности шифра.

Вычислительная сложность – совокупность времени работы шифрующей функции, объема входных данных и количества используемой памяти. Чем она больше, тем сложнее дешифровать шифр.

История шифрования

Шифрование берет своё начало ещё из древних времен. Примерно 1300 лет до нашей эры был создан один из первых методов шифрования – Атбаш. Принцип шифрования заключается в простой подставке символов по формуле:, где:

n – количество символов в алфавите

i – порядковый номер символа.

Шифр получил своё название в честь первой, последней, второй и предпоследней буквы Еврейского алфавита - «алеф», «тав», «бет», «шин» . Такой шифр имеет низку криптографическую стойкость, потому как алгоритм шифрования довольно прост

С тех самых пор шифрование активно развивалось вместе с развитием нашей цивилизации

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

К слову: Простые числа — это те числа, которые могут делиться без остатка либо на 1, либо на себя.

Длина таких чисел может быть абсолютно любая. К примеру, возьмем два простых числа 223 и 13. Их произведение 2899 – будет являться открытым ключом, который мы и будем передавать по открытому каналу связи. Далее нам необходимо вычислить функцию «Эйлера» для произведения этих чисел.

Функция Эйлера – количество натуральных чисел, меньших чем само число и, которые будут являть взаимно простыми числами с самим числом.

Возможно, звучит непонятно, но давайте это разберем на небольшом примере:

φ (26) [фи от двадцати шести] = какому-то числу чисел, которое всегда будет меньше 26, а сами числа должны иметь только один общий делитель единицу с 26.

1 – подходит всегда, идем дальше;

2 – делится и на 2, и на 1, как и число 26, - не подходит;

3 – делится и на 3, и на 1, а вот число 26 не делится на 3, - подходит;

4 – имеет общие делители 2 и 1 с 26 - не подходит;

5 – только на 1 - подходит;

6 – на 2 и 1 - не подходит;

7 – только на 1 – подходит;

и так далее до 25.

Общее количество таких чисел будет равно 12. А найти это число можно по формуле: φ(n*k) = (n-1)(k-1) в нашем случае 26 можно представить как 2 * 13, тогда получим φ(26) = φ(2 * 13) = (2-1)*(13-1) = 1 * 12 = 12

Теперь, когда мы знаем, что такое функция Эйлера и умеем её вычислять найдем её для нашего открытого ключа – φ(2899) = φ(223 * 13) =(223 – 1)*(13-1) = 222 * 12 = 2664

После чего нам нужно найти открытую экспоненту. Не пугайтесь, тут будет гораздо проще чем с функцией «Эйлера».

Открытая экспонента – это любое простое число, которое не делится на функцию Эйлера. Для примера возьмем 13. 13 не делится нацело на число 2664. Вообще открытую экспоненту лучше выбирать по возрастанию простым перебором, а не просто брать случайную. Так для нашего примера разумнее было бы взять число 5, но давайте рассмотрим на примере 13

Следующий шаг – закрытая экспонента. Вычисляется она банальным перебором по этому равенству: d * e mod φ(n) = 1 , где

φ(n) - функция Эйлера

e – открытая экспонента

mod – остаток отделения

а число d, которое и является закрытой экспонентой, мы должны подобрать перебором, либо попытаться выразить через формулу d = ceil(φ(n) / e) , где ceil – округление в большую сторону.

В обоих случаях у нас получится число 205

T – шифруемый текст

e – открытая экспонента

n – открытый ключ

mod – остаток от деления

92 ^ 13 mod 2899 = 235 . Именно число 235 он нам и отправит.

С – зашифрованный текст

d – закрытая экспонента

n – открытый ключ

mod – остаток от деления

235 ^ 205 mod 2899 = 92.

Но ничто в мире не идеально, в том числе и этот метод.

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

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

Третий недостаток – подбор и перебор чисел для экспонент.

Четвертый – длина ключей. Чем больше длина, тем медленнее идет процесс декодирования, поэтому разработчики пытаются использовать наименьшие по длиннее ключи и экспоненты. Даже я акцентировал на это внимание, когда говорил, что лучше взять число 5, вместо 13 для открытой экспоненты. Именно из-за этого и происходит большая часть взломов и утечек данных

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

Этот метод основывается на принципе квантовой суперпозиции – элементарная частица может сразу находится в нескольких положениях, иметь разную энергию или разное направление вращения одновременно. По такому принципу и работает передача ключей шифрования по протоколу BB-84.


Вернемся к нашему ключу 101001011. Мы случайным образом выбираем направление – обычное или диагональное. Для удобства присвоим обычному номер 1, а диагональному 2.

Давайте отправим ключ – 1(1), 0(2), 1(1), 0(1), 0(1), 1(2), 0(2), 1(1), 1(2). Теперь человеку, которому мы отправляем ключ, нужно точно так же, совершенно случайно, выбрать случайное направление.

Допустим он выбрал направления: 221111212. Поскольку есть всего 2 плоскости отправки: 1 и 2, они же называются: канонический и диагональный базис, то шанс того, что он выбрал правильные направления 50%.


А что, если кто-то перехватит отправку кода? Тогда ему придется точно также подбирать случайным образом базисы, что добавит ещё 25% погрешности при получении кода человеку, которому мы изначально и отправили его. Чтобы проверить это, после отсеивания мы, как отправитель, должны проверить сколько процентов кода оказалось не верным. В нашем 1 случае это (9 – 7)/9 * 100% = 22% , если это число будет больше 50%, то мы начнем повторную отправку ключей, до тех пор, пока погрешность не будет меньше 50%

Заключение

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

Кодирование - это представление информации с помощью некоторого кода.

Код - это система условных знаков для представления информации.

Способы кодирования информации

  • Графический
  • Числовой
  • Символьный

Декодировани е - это действие по восстановлению первоначальной формы представления информации. Для декодирования необходимо знать код и правила кодирования.

Средством кодирования и декодирования служит кодовая таблица соответствия. Например, соответствие в различных системах счисления - 24 - XXIV, соответствие алфавита каким-либо символамПримеры кодирования информации

Примером кодирования информации является азбука Морзе.

В азбуке Морзе используется всего 2 символа - точка и тире (короткий и длинный звук).

Еще одним примером кодирования информации является флажковая азбука.

Также примером является азбука флагов

Всем известный пример кодирования - нотная азбука.

Кодирование информации

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

Кодирование - это операция преобразования знаков или групп знаков одной знаковой системы в знаки или группы знаков другой знаковой системы.

Примером может служить язык жестов.

Сигналы

Вокруг нас существуют преимущественно два сигнала, например:

Всё это сигналы, обозначающие количество информации в 1 бит.

1 бит - это такое количество информации, которое позволяет нам выбрать один вариант из двух возможных.

Распознавание информации компьютером

Компьютер - это электрическая машина, работающая на электронных схемах. Чтобы компьютер распознал и понял вводимую информацию, ее надо перевести на компьютерный (машинный) язык.

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

Это электрические сигналы: проходит ток или не проходит ток.

Машинный двоичный язык - последовательность "0" и "1". Каждое двоичное число может принимать значение 0 или 1.

Каждая цифра машинного двоичного кода несет количество информации, равное 1 бит.

Бит и байт

Двоичное число, которое представляет наименьшую единицу информации, называется бит. Бит может принимать значение либо 0, либо 1. Наличие магнитного или электронного сигнала в компьютере означает 1, отсутствие 0.

Строка из 8 битов называется байт. Эту строку компьютер обрабатывает как отдельный символ (число, букву).

Рассмотрим пример. Слово ALICE состоит из 5 букв, каждая из которых на языке компьютера представлена одним байтом. Стало быть, Alice можно измерить как 5 байт.

Современное шифрование изнутри: каким образом происходит, где используется, насколько безопасно

Введение в шифрование

Усовершенствовать процесс шифрования помогли переменные, также известные как ключи. Они генерируются случайным образом и являются уникальными. Некоторые системы даже создают новые ключи для каждого сеанса, что дополнительно защищает персональные данные пользователей. Например, если злоумышленник захочет украсть информацию о кредитной карте, то ему нужно будет выяснить не только, какой алгоритм использовался для шифрования данных, но ещё и какой ключ был сформирован. Это — далеко не простая задача, так как шифрование устойчиво к подобным атакам. Вот почему этот процесс — один из лучших способов защитить конфиденциальные данные в интернете.

Типы шифрования

Различаются симметричный и ассиметричный типы шифрования. Они отличаются числом ключей, которые используются для данного процесса.

Современное шифрование изнутри: каким образом происходит, где используется, насколько безопасно

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

Современное шифрование изнутри: каким образом происходит, где используется, насколько безопасно

Асимметричный. Такое шифрование предпочитает двухключевой подход. Открытый ключ используется для шифрования, а закрытый — для дешифрования. При этом стоит отметить, что последний доступен только личному устройству пользователя, а потому не стоит переживать по поводу сохранности первого — никто не сможет получить доступ к личной информации без закрытого ключа.

Алгоритмы шифрования

AES (Advanced Encryption Standard). Один из самых безопасных алгоритмов симметричного шифрования, который существует сегодня. Он использует шифр размером блока 128 бит и длиной ключа 128, 192 и 256 бит. Алгоритм AES используют многие организации, включая правительство США.

Triple DES. Ещё один симметричный алгоритм шифрования. Когда исходный стандарт шифрования данных DES стал уязвим для атак, его заменили на Triple DES, название которого происходит от использования трёх 56-битных ключей. Однако в последние годы этот алгоритм вышел из моды, так как появились более безопасные варианты, такие как AES.

Blowfish. Очередной симметричный алгоритм шифрования, который был изобретён экспертом по безопасности Брюсом Шнайером (Bruce Schneier). Как и Triple DES, он появился на замену устаревшему DES. Это — блочный шифр с симметричным ключом, который входит в число самых безопасных алгоритмов. Более того, он является общественным достоянием и может свободно использоваться кем угодно.

Twofish. Симметричный алгоритм шифрования, который использует ключи длиной до 256 бит. Данное изобретение также было создано Брюсом Шнайером. По сути, Twofish — это продвинутый вариант Blowfish. Он не только быстрый и безопасный, но ещё и находится в открытом доступе, как и его предшественник.

RSA. Алгоритм асимметричного шифрования, который является одним из старейших и наиболее широко используемых стандартов для шифрования данных в интернете. Этот алгоритм не отличается скоростью, но считается очень безопасным.

Сферы применения шифрования

Современное шифрование изнутри: каким образом происходит, где используется, насколько безопасно

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

В данном случае выделяют три типа данных: в состоянии покоя, в пути и в использовании. Названия этих форм говорят сами за себя. То есть, первый тип — это информация, которая хранится и в настоящее время не используются. Второй тип — это информация в движении, которая активно передаётся из одного места в другое. Третий тип — информация, обрабатываемая в данный момент.

Современное шифрование изнутри: каким образом происходит, где используется, насколько безопасно

Однако будет ли зашифрована эта информация или нет, зависит только от облачного сервиса, который используется. Некоторые из них предлагают шифрование как данных в состоянии покоя, так и данных в пути. Остальные — кодируют только ту информацию, которую считают конфиденциальной. К сожалению, немногие облачные сервисы предлагают сквозное шифрование.

Тем не менее популярные службы предоставляют шифрование TSL/SSL для передаваемых данных и некоторую форму шифрования для данных в состоянии покоя. Dropbox, например, предлагает Boxcryptor — инструмент для сквозного шифрования, который может локально преобразить файлы, прежде чем они будут загружены в облако.

Шифрование диска. Инструмент защиты данных, который шифрует содержимое жёсткого диска. Новый уровень безопасности.

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

Почему шифрование настолько важно

Конфиденциальность. Шифрование является важным инструментом для тех, кто хочет сохранить личные данные только для себя и предполагаемых получателей. Ведь некоторые разговоры, фотографии, видеофайлы и документы лучше скрывать от посторонних глаз.

Безопасность. В период пандемии многие пользователи были вынуждены вводить конфиденциальную информацию в удалённом режиме. Речь про подачу налоговых документов или же покупки в онлайн-магазинах. Шифрование убережёт данные кредитной карты или личную информацию от кражи.

Конечно, шифрование не может защитить на 100%. У него есть недостатки и ограничения. Но без него пользователи гораздо больше подвержены слежке и сбору данных.

Современное шифрование изнутри: каким образом происходит, где используется, насколько безопасно

Вопросы и ответы

Насколько безопасно шифрование?

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

Можно ли взломать зашифрованные данные?

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

Можно ли снова зашифровать зашифрованные данные?

Да, существует множественное шифрование. Для этого можно использовать одинаковые или разные алгоритмы. Однако этот способ не очень распространён, так как большинство современных шифров и так очень трудно взломать.

Какой самый высокий уровень шифрования?

256-битный AES считается самым надёжным стандартом шифрования. С 2001 года его использует правительство США и многие американские компании.

Signal, WhatsApp и iMessage по умолчанию используют сквозное шифрование. Другие популярные сервисы для общения, такие как Telegram, также предлагают этот тип шифрования, но только в секретных чатах.

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

информации

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

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

В кибербезопасности есть ряд вещей, которые беспокоят пользователей, когда дело доходит до каких-либо данных. К ним относятся конфиденциальность, целостность и доступность информации.

Конфиденциальность – данные не могут быть получены или прочитаны неавторизованными пользователями.

Целостность информации – уверенность в том, что информация 100% останется нетронутой и не будет изменена злоумышленником.

Доступность информации – получение доступа к данным, когда это необходимо.

Также в статье рассмотрим различные формы цифровой криптографии и то, как они могут помочь достичь целей, перечисленных выше.

Основные способы шифрования:
  • Симметрично
  • Асимметричное
  • Хеширование
  • Цифровая подпись

Прежде чем мы начнем разбираться в теме, ответим на простой вопрос: что именно подразумевается под "шифрованием"? Шифрование – преобразование информации в целях сокрытия от неавторизованных лиц, но в то же время с предоставлением авторизованным пользователям доступа к ней.

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

Вот что выведет программа:

информации

Обратите внимание, что переменная data_to_encrypt, которая изначально была строкой “now you can read me!”, теперь куча непонятных символов. Обратим процесс, используя ключ, который изначально сохранили в переменной key.

информации

Давайте рассмотрим и другие способы шифрования.

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

Но как понять, что открытый ключ сервера принадлежит именно этому серверу? Существует несколько способов решения этой проблемы. Наиболее распространенный метод (и тот, который используется в интернете) – использование инфраструктуры открытых ключей (PKI). В случае веб-сайтов существует Центр сертификации, у которого есть каталог всех сайтов, на которые были выданы сертификаты и открытые ключи. При подключении к веб-сайту его открытый ключ сначала проверяется центром сертификации.

Создадим пару открытого и закрытого ключей:

информации

информации

Хеширование, в отличие от симметричного и асимметричного шифрования, является односторонней функцией. Можно создать хеш из некоторых данных, но нет никакого способа, чтобы обратить процесс. Это делает хеширование не очень удобным способом хранения данных, но подходящим для проверки целостности некоторых данных.

Функция в качестве входных данных принимает какую-то информацию и выводит, казалось бы, случайную строку, которая всегда будет одинаковой длины. Идеальная функция хеширования создает уникальные значения для различных входов. Одинаковый ввод всегда будет производить одинаковый хеш. Поэтому можно использовать хеширование для проверки целостности данных.

Создадим новую строку, хешируем её и сохраним результат в переменной:

Снова хешируем строку и сравниваем её с той, что сохранили в переменной digest:

информации

Пока данные остаются прежними, строки будут совпадать. Теперь давайте немного их изменим и снова сравним. Затем изменим данные обратно на то, что было изначально, и еще раз сравним:

информации

Чтобы показать, как выглядят разные строки похожих исходных данных, взгляните на это:

информации

Читайте также: