Разное

Криптография с открытым ключом: Что такое криптография с открытым ключом?

Содержание

Что такое криптография с открытым ключом?

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

Шифрование и цифровая подпись

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

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

Публичные ключи и сертификаты

Следовательно, важно, чтобы открытые ключи были легитимными. Это достигается с помощью инфраструктуры открытых ключей или PKI, в котором сторонние центры сертификации, такие как SSL. com, связывают пары ключей с идентификаторами объектов, таких как веб-сайты, отдельные лица и организации. Центры сертификации проверяют подлинность и выдают цифровые сертификаты, содержащие открытый ключ и информацию об этих удостоверениях.

Открытые ключи обычно хранятся на цифровые сертификаты, что позволяет им легко делиться. Закрытые ключи, которые (очевидно!) Не являются общими, хранятся в пользовательском программном обеспечении, операционных системах или оборудовании, таком как USB-токены.

Практическое применение

В интернете, SSL /TLS сертификаты для HTTPS веб-сайты, которые являются общедоступными, содержат открытый ключ. Закрытый ключ пары находится на исходном сервере сайта. Система используется для проверки безопасности веб-сайтов — что крайне важно для сайтов, где используются такие вещи, как информация о кредитных картах. Благодаря этой системе шифрование с открытым ключом позволяет устанавливать безопасную связь в режиме онлайн. Закончено через HTTPS, который является безопасной версией протокола http, который обеспечивает безопасную передачу конфиденциальных данных. Даже если сам Интернет является небезопасной сетью, криптографическая система устанавливает безопасное соединение внутри сети.

Алгоритмы с открытым ключом также являются основными компонентами в безопасных электронных коммуникациях и хранении данных. Они являются строительными блоками для интернет-стандартов, таких как S/MIME (Безопасные / многоцелевые интернет-почтовые расширения), которые обеспечивают криптографическую безопасность для электронных сообщений, гарантируя, что сообщения являются подлинными, нетронутыми, частными, безопасными и приходят из того места, где, как они утверждают, пришли. Криптография с открытым ключом также является основой подпись кода и цифровая подпись документови может быть использован для аутентификация клиента и единый вход.

 

 

Что такое Криптография с Открытым Ключом?

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

Как Работает Криптография с Открытым Ключом?

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

Поскольку алгоритмы асимметричного шифрования генерируют пары ключей, которые математически связаны, длина этих ключей намного больше, чем те, которые используются в симметричной криптографии. Эти более длинные — обычно от 1024 до 2048 битов — чрезвычайно затрудняют вычисление закрытого ключа из его открытого аналога. Один из наиболее распространенных алгоритмов асимметричного шифрования, используемый сегодня, известен как RSA. В схеме RSA ключи генерируются с использованием модуля, который получается с помощью умножения двух чисел (часто двух больших простых чисел). В основном, модуль генерирует два ключа (один открытый, который может быть общим, и другой закрытый, который должен храниться в секрете). Алгоритм RSA был впервые описан в 1977 году Ривестом, Шамиром и Адлеманом (следовательно, RSA) и остается основной составляющей криптографических систем с открытым ключом.


PKC как Инструмент Шифрования

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


Использование Цифровых Подписей

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

Ограничения

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


Применение Криптографии с Открытым Ключом

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

PKC также занимает видное место в технологиях блокчейн и криптовалют. При создании нового криптовалютного кошелька, генерируется пара ключей (открытый и закрытый ключ). Публичный адрес генерируется с использованием открытого ключа и может безопасно передаваться другим. C другой стороны используется закрытый ключ для создания цифровых подписей и проверки транзакций, и следовательно должен храниться в секрете. Как только транзакция была подтверждена путем валидации хэша, содержащегося в цифровой подписи, эта транзакция может быть добавлена в блокчейн регистр. Данная система проверки цифровой подписи гарантирует, что только лицо, у которого есть закрытый ключ, связанный с соответствующим криптовалютным кошельком, может выводить из него средства. Следует отметить, что асимметричные шифры, используемые в приложениях криптовалюты, отличаются от тех, которые используются в целях компьютерной безопасности. К примеру Bitcoin и Ethereum, используют специальный шифр, известный как Elliptic Curve Digital Signature Algorithm (Алгоритм Цифровой Подписи Эллиптической Кривой, ECDSA) для проверки транзакций.

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

Криптография с открытым ключом — GlobalSign

Взгляд на алгоритм шифрования и его преимущества в плане безопасности

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

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

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

Цифровые сертификаты выдаются организациями, известными как центры сертификации (ЦС). Дополнительную информацию о центрах сертификации см. в нашей статье по теме – Что такое центры сертификации?

Бизнес-приложения

Основными бизнес-приложениями для криптографии с открытым ключом являются:

  • Цифровые подписи  — контент подписывается цифровой подписью с использованием личного ключа и проверяется с помощью открытого ключа
  • .
  • Шифрование  – содержимое зашифровано с использованием открытого ключа пользователя и может быть расшифровано только с помощью закрытого ключа пользователя
  • .

Преимущества безопасности цифровых подписей

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

  • Аутентификация  – поскольку для применения подписи использовался уникальный закрытый ключ человека, получатели могут быть уверены, что это лицо фактически применило подпись
  • Неотказуемость  – поскольку физическое лицо является единственным, кто имеет доступ к закрытому ключу, используемому для применения подписи, он / она не может впоследствии заявить, что это не он / она поставил подпись
  • Целостность  – при проверке подписи проверяется соответствие содержимого документа или сообщения тому, что было в нем при применении подписи. Даже малейшее изменение исходного документа может привести к сбою этой проверки.

Преимущества безопасности шифрования

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

  • Конфиденциальность  — поскольку контент зашифрован с помощью открытого ключа человека, его можно расшифровать только с помощью личного ключа человека, что гарантирует, что только предполагаемый получатель может расшифровать и просмотреть содержимое/li>
  • Целостность  – часть процесса расшифровки включает проверку того, что содержимое исходного зашифрованного сообщения и нового расшифрованного сообщения совпадают, поэтому даже малейшее изменение исходного содержимого приведет к сбою процесса расшифровки

Что такое криптография с открытым ключом?

    К Келли Робинсон 2018-09-21

    От TLS до аутентификации «крипто» используется не только для валют. Безопасность должна быть частью набора инструментов каждого разработчика, а криптография — фундаментальным строительным блоком для библиотек и инструментов, которые мы используем для защиты наших данных и приложений. Этот пост посвящен криптографии с открытым ключом, также известной как асимметричная криптография, обзору того, как она работает, и ее повседневным вариантам использования, в том числе тому, как Twilio использует криптографию с открытым ключом в нашем Verify API и для защиты нашего API.

    Давайте начнем с контекста и истории.

    Познакомьтесь с Алисой и Бобом

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

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

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

    Что такое криптография с открытым ключом?

    В криптографии с открытым ключом, также известной как асимметричная криптография, каждый объект имеет два ключа:

    • Открытый ключ — для совместного использования
    • Закрытый ключ — держать в секрете

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

    1. Шифрование открытым ключом

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

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

    2. Подписание с помощью закрытого ключа

    Вариант использования: подтверждение того, что вы отправили сообщение.

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

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

    Варианты использования криптографии с открытым ключом

    Криптография с открытым ключом используется во многих сценариях:

    • SSH
    • TLS (HTTPS, ранее SSL)
    • Биткойн
    • ПГП и ПГП
    • Аутентификация
    • Инфраструктура открытых ключей (PKI), используемая для таких вещей, как SHAKEN/STIR
    Как Twilio использует криптографию с открытым ключом

    Push Authentication

    Verify Push API

    ). Verify SDK создает новую пару ключей RSA на вашем устройстве и отправляет только открытый ключ на наши серверы — ваш закрытый ключ никогда не покидает ваше устройство. Когда вы «одобряете» или «отклоняете» запрос на своем устройстве, Verify API проверяет:

    • Что запрос исходит от отправителя, который контролирует закрытый ключ
    • Запрос на авторизацию не был изменен при передаче
    SHAKEN/STIR

    SHAKEN (Обработка подтвержденной информации на основе подписи с использованием toKEN) / STIR (Пересмотренная идентификация защищенного телефона) — это новый отраслевой стандарт для борьбы с спуфингом вызовов и более эффективного отслеживания вызывающих спам абонентов. SHAKEN/STIR использует инфраструктуру открытых ключей с централизованными центрами сертификации (ЦС), аналогично тому, как управляется TLS. Благодаря этой технологии Twilio будет подпишите ваши звонки, чтобы добавить аутентификацию. Узнайте больше о включении SHAKEN/STIR.

    PKCV

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

    • Что запрос исходит от отправителя, который контролирует закрытый ключ
    • Сообщение не было изменено при передаче

    Подробнее о PKCV и о том, как его реализовать, можно прочитать здесь.

    Как работает шифрование с открытым ключом? Функции люка для обеспечения безопасности

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

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

    Ваша задача: найти два простых делителя числа 4757

    Есть несколько способов сделать это, включая метод проб и ошибок. Для 4-значного числа вы можете написать сценарий, который перебирает известные простые числа, но как только это целевое число станет 1000 цифр, это займет много времени.

    Ваша следующая задача: умножьте 67 на 71

    Теперь это намного проще!

    Ваше последнее испытание: давайте создадим пару ключей вместе! Не волнуйтесь, мы проведем вас через это. Числа, которые мы используем в нашем примере, намеренно малы.

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

    В этом примере используется алгоритм RSA, один из многих вариантов расчета пар ключей для асимметричного шифрования. Вы можете следить за кодом Python ниже или найти весь скрипт на моем GitHub.

    1. Выберите два простых числа:

    .
     р = 67
    д = 71
     

    2. Умножьте свои простые числа

     н = р * q
    # n = 67 * 71
    # п = 4757
     

    3. Найдите наименьшее общее кратное (lcm) p-1 и q-1

     импорт математики
    определение lcm(a, b):
       вернуть a * b // math.gcd(a, b)
    х = lcm(p - 1, q - 1)
    # x = lcm(67 - 1, 71 - 1)
    # х = lcm(66, 70)
    # х = 2310
     

    4. Выберите число меньше x, которое не является делителем x:

     е = 23
     

    5. Вычислите модульный мультипликатив, обратный e:

     по определению inverse_mod(e, x):
       т = 0
       тритон = 1
       г = х
       новый = е
       в то время как новый != 0:
           q = r // новее
           t, тритон = тритон, t - q * тритон
           r, новее = новее, r - q * новее
       если г >
    1: возврат Нет если t < 0: т += х вернуть т г = обратный_мод (е, х) # д = 1607

    Теперь у нас есть все необходимое для создания ключей!

     public_key = (4757, 23) # (n, e)
    private_key = (4757, 1607) # (n, d)
     

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

     сообщение = 123
    зашифровано = pow(сообщение, e, n)
    # зашифровано = pow(123, 23, 4757)
    # зашифровано = 418
     

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

     расшифровано = pow(зашифровано, d, n)
    # расшифровано = pow(418, 1607, 4757)
    # расшифровано = 123
     

    . ..что дает нам исходное сообщение!

    Алгоритмы шифрования с открытым ключом и размер ключа

    https://twitter.com/kayandrae07/status/1042026591856017408

    RSA (Ривест-Шамир-Адлеман)

    В примере показано, как эти односторонние функции с лазейкой включаются в распространенные криптографические алгоритмы. Большая часть наших объяснений до сих пор была сосредоточена на RSA, названном в честь исследователей Ривеста, Шамира и Адлемана, и одном из наиболее распространенных алгоритмов шифрования, используемых для криптографии с открытым ключом. Вы, вероятно, использовали его, если когда-либо генерировали SSH-ключ GitHub, например:

    .
     ssh-keygen -t rsa -b 4096 -C "[email protected]"
     

    Вот как вы создаете пару ключей RSA на самом деле. Давайте разберем, что происходит в этой команде.

    ssh-keygen — это команда, включенная в MacOS и Linux (и в Git Bash для Windows), используемая для «генерации, управления и преобразования ключей аутентификации».

    -t rsa указывает использовать алгоритм rsa. Другие варианты включают dsa

    (алгоритм цифровой подписи) и ecdsa (эллиптическая кривая DSA).

    https://xkcd.com/538/

    -b 4096 указывает размер ключа в битах для использования. Размер ключа влияет на уровень безопасности, измеряемый в битах безопасности. Уровень безопасности — это «число, связанное с объемом работы (то есть количеством операций), которое требуется для взлома криптографического алгоритма или системы» в соответствии с Рекомендацией NIST по управлению ключами. Например, размер ключа RSA 2048 обеспечивает 112-битную безопасность, а размер ключа 3072 — 128-битную безопасность.

    Текущие рекомендации NIST для RSA — использовать для ключа не менее 2048 бит. Эти рекомендации учитывают достижения в области аппаратного обеспечения и вычислительной мощности, поэтому, если вы хотите, чтобы ваши ключи были защищены после 2030 года, NIST рекомендует 3072-битное шифрование.

    Когда вы запустите эту команду на своем компьютере, у вас будет два файла: открытый ключ и закрытый ключ. Важно, чтобы вы делали это на своем компьютере, чтобы вам нужно было только скопировать открытый ключ на серверы GitHub. Теперь каждый раз, когда вы отправляете код на GitHub, он подписывает запрос вашим закрытым ключом, который GitHub аутентифицирует с помощью вашего открытого ключа. Примечание. Аутентификация ssh отличается от подписания коммитов git, в котором используется GPG, еще одна форма криптографии с открытым ключом. Это везде!

    Другие распространенные алгоритмы, с которыми вы можете столкнуться, включают:

    Диффи-Хеллмана

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

    Криптография на эллиптических кривых (ECC)

    В последнее время этот алгоритм получил большое распространение, поскольку алгоритм DSA на эллиптических кривых может обеспечить тот же уровень безопасности, что и RSA, но с меньшим размером ключа. ECC также используется в криптовалютах, таких как биткойн. Мне нравится это объяснение того, как работает ECC, если вы хотите узнать больше.

    Elliptic Curve Addition (Image By SuperManu [ GFDL or CC BY-SA 3.0 ], via Wikimedia Commons )

    Cryptography in Your Applications

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *