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

Материал из Поле цифровой дидактики
 
(не показано 6 промежуточных версий этого же участника)
Строка 6: Строка 6:
}}
}}


Алгоритм Диффи-Хеллмана для обмена секретными ключами на [[Python]]
=== Алгоритм Диффи-Хеллмана ===
 
Используется для обмена секретными ключами  
 
{| {{prettytable}}
|-
!{{Hl2}}| A
!{{Hl2}}| B
|-
|По защищённому каналу получают d и p
|По защищённому каналу получают d и p
|-
|Придумывает случайное целое число a
|Придумывает случайное целое число b
|-
|<math>𝑎^∗ = 𝑑^𝑎 * 𝑚𝑜𝑑(𝑝)</math>
|<math>b^∗ = 𝑑^b * 𝑚𝑜𝑑(𝑝)</math>
|-
|Обмениваются числами <math>𝑎^∗</math> и <math>b^∗</math>
|Обмениваются числами <math>𝑎^∗</math> и <math>b^∗</math>
|-
|<math>𝑘(𝑎𝑏) = (𝑏^∗)^𝑎 * 𝑚𝑜𝑑(𝑝) = k</math>
|<math>𝑘(ba) = (a^∗)^b * 𝑚𝑜𝑑(𝑝) = k</math>
|-
|k – общий секретный ключ
|k – общий секретный ключ
|}
 
{{#widget:YouTube|id=vFjq9pID4-E|start=5}}
 
Код на [[Python]]


<syntaxhighlight lang="python">  
<syntaxhighlight lang="python">  
Строка 36: Строка 66:
{{#ask: [[Minecraft]] | ?Affective_tasks }}
{{#ask: [[Minecraft]] | ?Affective_tasks }}


{{#network:Minecraft}}


[[Категория:ИВО-241м]]
[[Категория:ИВО-241м]]
[[Категория:UserMGPU]]
[[Категория:UserMGPU]]

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