Участник:Smolkina Anastasia: различия между версиями

Материал из Поле цифровой дидактики
 
(не показаны 2 промежуточные версии этого же участника)
Строка 15: Строка 15:
!{{Hl2}}| B
!{{Hl2}}| B
|-
|-
|По защищённому каналу получают d и p
|По защищённому каналу получают d и p
|По защищённому каналу получают d и p
|-
|-
Строка 20: Строка 21:
|Придумывает случайное целое число b
|Придумывает случайное целое число b
|-
|-
|<math>𝑎^∗ = 𝑑^𝑎*𝑚𝑜𝑑(𝑝)</math>
|<math>𝑎^∗ = 𝑑^𝑎 * 𝑚𝑜𝑑(𝑝)</math>
|<math>b^∗ = 𝑑^b*𝑚𝑜𝑑(𝑝)</math>
|<math>b^∗ = 𝑑^b * 𝑚𝑜𝑑(𝑝)</math>
|-
|-
|Обмениваются числами <math>𝑎^∗</math> и <math>b^∗</math>
|Обмениваются числами <math>𝑎^∗</math> и <math>b^∗</math>
|Обмениваются числами <math>𝑎^∗</math> и <math>b^∗</math>
|-
|-
|<math>𝑘(𝑎𝑏) = (𝑏∗)^𝑎 * 𝑚𝑜𝑑(𝑝) = k</math>
|<math>𝑘(𝑎𝑏) = (𝑏^∗)^𝑎 * 𝑚𝑜𝑑(𝑝) = k</math>
|<math>𝑘(ba) = (a∗)^b * 𝑚𝑜𝑑(𝑝) = k</math>
|<math>𝑘(ba) = (a^∗)^b * 𝑚𝑜𝑑(𝑝) = k</math>
|-
|-
|k – общий секретный ключ
|k – общий секретный ключ
|k – общий секретный ключ
|}
|}
{{#widget:YouTube|id=vFjq9pID4-E|start=5}}


Код на [[Python]]
Код на [[Python]]

Текущая версия на 17:25, 13 сентября 2024



Описание участника Студентка магистратуры ИЦО, группа ИВО-241м
Область знаний Информатика, Педагогика, Психология, Образование, Игра, Моделирование
Веб-сайт
Видео запись
Кто оказал влияние (учителя)
из Категория:Person
Понятия, которые интересуют
из Категория:Понятие
Python, CSV
Среды и средства, которые использует
из цифровых средств или игр или книг
Python, Excel, Minecraft, Notion
Проекты, статьи и рецепты, над которыми работает


Алгоритм Диффи-Хеллмана

Используется для обмена секретными ключами

A B
По защищённому каналу получают d и p По защищённому каналу получают d и p
Придумывает случайное целое число a Придумывает случайное целое число b
[math]\displaystyle{ 𝑎^∗ = 𝑑^𝑎 * 𝑚𝑜𝑑(𝑝) }[/math] [math]\displaystyle{ b^∗ = 𝑑^b * 𝑚𝑜𝑑(𝑝) }[/math]
Обмениваются числами [math]\displaystyle{ 𝑎^∗ }[/math] и [math]\displaystyle{ b^∗ }[/math] Обмениваются числами [math]\displaystyle{ 𝑎^∗ }[/math] и [math]\displaystyle{ b^∗ }[/math]
[math]\displaystyle{ 𝑘(𝑎𝑏) = (𝑏^∗)^𝑎 * 𝑚𝑜𝑑(𝑝) = k }[/math] [math]\displaystyle{ 𝑘(ba) = (a^∗)^b * 𝑚𝑜𝑑(𝑝) = k }[/math]
k – общий секретный ключ k – общий секретный ключ

Код на Python

 
import random
import sympy

p = sympy.randprime(200, 300)
d = random.randint(2, p - 1)
print(f"d = {d}, p = {p}")

b = random.randint(2, 300)
b_new = (d ** b) % p

a_new = int(input('Введите число a*: '))
print(f"Число b* = {b_new}")

k_ba = (a_new ** b) % p
k_ab = int(input('Введите полученное число k: '))

while k_ab != k_ba:
    print(f"Ключ не совпал")
    k_ab = int(input('Введите полученное число k: '))

print(f"Ключ совпал и равен {k_ab}")

input()
 Affective tasks
MinecraftMinecraft не ставит перед игроком каких-либо конкретных целей, но предлагает ему свободу действий: например, игрок может исследовать мир, добывать полезные ископаемые, сражаться с противниками и многое другое.