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

Материал из Поле цифровой дидактики
Нет описания правки
Нет описания правки
Строка 16: Строка 16:
10/10/2024
10/10/2024


<snap project="clone_ballby" user="avsmolkina" />
<snap project="Follow me" user="avsmolkina" />


17/10/2024
17/10/2024


<snap project="Follow me" user="avsmolkina" />
<snap project="clone_ball" user="avsmolkina" />


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

Версия от 19:57, 17 октября 2024


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


Игра на Snap!:

03/10/2024

10/10/2024

17/10/2024

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

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

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 не ставит перед игроком каких-либо конкретных целей, но предлагает ему свободу действий: например, игрок может исследовать мир, добывать полезные ископаемые, сражаться с противниками и многое другое.