Форум программистов, компьютерный форум, киберфорум
Наши страницы
Криптография
Войти
Регистрация
Восстановить пароль
 
MichaelPak
0 / 0 / 2
Регистрация: 02.08.2011
Сообщений: 31
#1

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

26.06.2014, 09:50. Просмотров 1069. Ответов 1
Метки нет (Все метки)

Написал класс на python'е, методы которого складывают точки эллиптической кривой:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import hmac, hashlib, base64, json, math
from Crypto.Cipher import AES
from Crypto import Random
from Crypto.Hash import SHA256
 
class ECPoint:
    # Модуль p
    p = 0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff
    # Количество точек r
    r = 0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551
    # Коэффициент a
    a = -3
    # Коэффициент b
    b = 0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b
    # Координаты точки
    x = 0
    y = 0
    
    def __init__(self, basePoint = False):
        if basePoint:
            # Координаты базовой точки
        self.x = 0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296
        self.y = 0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5
            
    def printPoint(self):
        print 'x: ' + str(self.x) + '\n\ry: ' + str(self.y)
    
    def sum(self, p1):
    p3 = ECPoint()
    m = (self.y - p1.y) / (self.x - p1.x)
    p3.x = (m**2 - p1.x - self.x) % self.p
    p3.y = (m * (p1.x - self.x) - p1.y) % self.p
    return p3
    
    def pow(self):
    p = ECPoint()
    m = (3 * self.x**2 + self.a)/(2 * self.y)
    p.x = (m**2 - 2 * self.x) % self.p
        p.y = (-self.y) % self.p
    return p
    
    def multiply(self, n):
    temp = ECPoint()
    temp = self
    while n != 0:
        if n % 2 != 0:
        if (temp.x == self.x) or (temp.y == self.y):
            temp = temp.pow()
        else:
            temp = self.sum(temp)
        n-=1
        n = n / 2
        self = self.pow()
        return temp
Как я понимаю, что шифрование сводится к тому, что открытый ключ в степени сеансового ключа:
Yk = (Gx)k = (Gk)x = Ux = V

Возьмем рандомные секретный ключ x и сеансовый ключ k:
Python
1
2
3
4
5
6
x = 9300685
k = 39397
G = ECPoint(True)
 
G.multiply(x).multiply(k).printPoint()
G.multiply(k).multiply(x).printPoint()
Результаты должны быть одинаковыми, но тем не менее:
Python
1
2
3
4
5
x: 78381651877698504074138538953236459393386397010399779464537416910312204354564
y: 3354397223827615916580506242121976049612616798466693889782844744560900396065
 
x: 68075544835779410238590323298364686404361380646346860155594906440514112186224
y: 14743947246025772715102804948555545281590140187690897447055601000677419482068
Подскажет кто-нибудь, в чем может быть проблема?
http://www.cyberforum.ru/cpp-beginners/thread714691.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2014, 09:50
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Шифрование на эллиптических кривых (Криптография):

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

Нарисовать график из эллиптических поверхностей
z=sqrt(4 - x^2 - y^2) , sqrt(255)*z = sqrt(x^2 + y^2) Надо для нахождения...

Численное решение параболических, гиперболических и эллиптических уравнений в среде MatLab или любой подобной
Добрый день! Есть у кого примеры программ для численного решения параболических...

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

Как поменять результат шифрование \ Метод шифрование RSA
Здравствуйте! Прошу помощи! В просторах интернета нашла одну статью в которой...

1
Maks_42
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 4
07.12.2015, 11:59 #2
слушай а можешь скинуть всю программу?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.12.2015, 11:59
Привет! Вот еще темы с решениями:

Настройка кривых
Доброго времени суток! Подскажите, возможно ли у кривой изменить окончание как...

График кривых
задание №1 вариант № 8 построить график что то явно делаю не верно подскажите...

Аппроксимация кривых
Доброго времени суток. У меня возникла некоторая проблема и я обращаюсь к Вам...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru