powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Что такое сложение по модулю?
25 сообщений из 75, страница 1 из 3
Что такое сложение по модулю?
    #34304251
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сложение по модулю 2 это, как я понял, XOR.
А вот что такое сложение по модулю 2 32 ? Это 32 раза повторённый XOR, чтоли?

Простите, я тупой. В детстве по голове били.

Код: plaintext
ROLLBACK;
...
Рейтинг: 0 / 0
Что такое сложение по модулю?
    #34304265
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
простой хор то же далает и для 32 битных чисел.

аффтопитезь: объект либо именован, либо не существует
...
Рейтинг: 0 / 0
Что такое сложение по модулю?
    #34304268
SnowMan2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Берутся 2 целях числа в диапозоне [0, 2 32 ] и складываются, результатом считается остаток от деления полученной суммы на 2 32 .
...
Рейтинг: 0 / 0
Что такое сложение по модулю?
    #34304335
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sarin Это 32 раза повторённый XOR, чтоли?
Контрольный вопрос: что получится в результате 32 раз повторенного XOR-а?

Это скажем http://www.intuit.ru/department/se/pbmsu/2/ читать от слов "кольцо вычетов".
...
Рейтинг: 0 / 0
Что такое сложение по модулю?
    #34304336
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SnowMan2Берутся 2 целях числа в диапозоне [0, 2 32 ] и складываются, результатом считается остаток от деления полученной суммы на 2 32 .
Спасибо.
...
Рейтинг: 0 / 0
Что такое сложение по модулю?
    #34304338
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SnowMan2Берутся 2 целях числа в диапозоне [0, 2 32 ]
Почти верно :)

Aklinпростой хор то же далает и для 32 битных чисел.
Вы как всегда в своем репертуаре.
...
Рейтинг: 0 / 0
Что такое сложение по модулю?
    #34304350
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer SnowMan2Берутся 2 целях числа в диапозоне [0, 2 32 ]
Почти верно :)

А как чтоб совсем верно?:)
...
Рейтинг: 0 / 0
Что такое сложение по модулю?
    #34304360
SnowMan2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА как чтоб совсем верно?:)
Берутся 2 целях числа в диапозоне [0, 2 32 -1]
Давно не занимался подзабыл.
...
Рейтинг: 0 / 0
Что такое сложение по модулю?
    #34304363
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SnowMan2 авторА как чтоб совсем верно?:)
Берутся 2 целях числа в диапозоне [0, 2 32 -1]
Давно не занимался подзабыл.
Тоесть 4 байта. И с ними делается XOR?
...
Рейтинг: 0 / 0
Что такое сложение по модулю?
    #34304367
SnowMan2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТоесть 4 байта. И с ними делается XOR?
Для 2 32 - да. Для остальных чисел - иначе.
...
Рейтинг: 0 / 0
Что такое сложение по модулю?
    #34304380
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SarinТоесть 4 байта. И с ними делается XOR?
Забудьте про xor. Сложение по модулю 2 32 - это обычное целочисленное сложение с игнорированием переполнения. Скажем, примерно так:

Код: plaintext
1.
2.
3.
 function  AddModulo32 ( a, b : integer ) : integer ; register ; assembler ;
 asm 
  add eax, ebx
 end  ;

(набрано в форуме, так что не буду клясться в отсутствии погрешностей)
...
Рейтинг: 0 / 0
Что такое сложение по модулю?
    #34304390
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerЗабудьте про xor. Сложение по модулю 2 32 - это обычное целочисленное сложение с игнорированием переполнения. Скажем, примерно так:

Простите, туго соображаю.
Тоесть мы складываем (для примера), 4 и 9 и получаем 3? Пример для десятичной системы. А модуль, соответственно, 10.

ЗЫ: блин, как бы это ещё на жаве написать...
...
Рейтинг: 0 / 0
Что такое сложение по модулю?
    #34304435
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажите, вот так можно:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
//mod  32  for a and b
i = a * b
if i <  2  32 {
return i
}
else{
return i -  2  32 
}
...
Рейтинг: 0 / 0
Что такое сложение по модулю?
    #34304451
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проще так написать

Код: plaintext
1.
2.
3.
4.
public int SumModuleN(int a,int b,int N)
{
   return (a+b)%N;
}

Такие штуки частенько используют в криптографии. Только в качестве N берут числа равные 2^N-1.
...
Рейтинг: 0 / 0
Что такое сложение по модулю?
    #34304469
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Такие штуки частенько используют в криптографии. Только в качестве N берут числа равные 2^N-1.
Я как раз крптографией и озадачился. Хочу реализовать библиотеку для ГОСТ 28147-89 на Пайтоне. Если получтся потом напишу ещё и на Жаве.

А то не понравилось мне, что в пайтоне ис за американских законов в отношении криптостойких алгоритмов действуют неприятные законы и в пайтоне нет библиотеки вроде жавовской javax.crypto, а код самой javax.crypto закрыт. Есть ведь хороший отечественный стандарт, который вполне открыт, да ещё и более стойкий чем DES.

Но мне знаний в области математики не хватает. Нашол статью с пояснением алгоритма. Но понятно всё равно не всё. Надеюсь здесь мне помогут.

ЗЫ: если осилю и напишу когданибудь, то код будет открыт. GPL.
...
Рейтинг: 0 / 0
Что такое сложение по модулю?
    #34304470
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Такие штуки частенько используют в криптографии. Только в качестве N берут числа равные 2^N-1.
модуль 32 это 2 32 -1?
...
Рейтинг: 0 / 0
Что такое сложение по модулю?
    #34304478
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton Только в качестве N берут числа равные 2^N-1.

Только в качестве N берут числа равные 2^m-1 ?
если ниче не путаю, то зачемто еще и m надо простым числом брать.
...
Рейтинг: 0 / 0
Что такое сложение по модулю?
    #34304485
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sarin
Хочу реализовать библиотеку для ГОСТ 28147-89 на Пайтоне. Если получтся потом напишу ещё и на Жаве.


А вы уверены, что никто до вас не реализовывал ГОСТ 28147-89 ? На мой взгляд - это довольно популярная задачка.

Почитайте книгу Джима Яворского. Я не уверен, что он упоминает на этот алгоритм, но в книге есть много ссылок на открытые библиотеки криптографии для Java. Возможно, ГОСТ где-нибудь да проскочит.


А то не понравилось мне, что в пайтоне ис за американских законов в отношении криптостойких алгоритмов действуют неприятные законы и в пайтоне нет библиотеки вроде жавовской javax.crypto, а код самой javax.crypto закрыт. Есть ведь хороший отечественный стандарт, который вполне открыт, да ещё и более стойкий чем DES.


Существует мнение, что DES устарел. Приведу цитату одного известного криптографа.

... DES больше не выдерживает проверки на профпригодность. Длина его ключа шифрования не отвечает современным требованиям. В мире совершено несколько успешных попыток определить ключ DES путем простого перебора вариантов...


Насчет ГОСТ-а. Не знаю. Надо почитать сравнительные характеристики.

А может вам лучше обратить внимание на настоящих "монстров", таких как AES, Twofish, Serpent.

Ваш покорный слуга использует AES-256bit в режиме CBC для шифрования бэкапов баз данных, перед тем, как залить их на ленточку стриммера.

А может быть они (монстры) уже в Питоне имеют свои реализации? Тогда и не стоит заморачиватся ИМХО.

Sarin
модуль 32 это 232-1?


Нет. Это я в качестве примера привел. Просто я хотел акцентировать внимание на том, что в качестве основания сложения (да и умножения, логарифмирования и проч.) во многих крипто-системах берут "простые числа", а иногда вдобавок еще и обладающие разными свойствами (типа чисел Мерсенна).
...
Рейтинг: 0 / 0
Что такое сложение по модулю?
    #34304499
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
А вы уверены, что никто до вас не реализовывал ГОСТ 28147-89 ? На мой взгляд - это довольно популярная задачка.

Почитайте книгу Джима Яворского. Я не уверен, что он упоминает на этот алгоритм, но в книге есть много ссылок на открытые библиотеки криптографии для Java. Возможно, ГОСТ где-нибудь да проскочит.
Может быть и так. Моя цель на Жава, а пайтон. Жава не бедна на криптографию. Библиотеку для Жавы я хотел написать, скажем так, для популяризации. Чтоб была совместимость.

Задача, может и популярная, но мне она показалась достаточно интересной. Достаточно простой, а главное, её решение может принести кому-то пользу.

mayton
Существует мнение, что DES устарел. Приведу цитату одного известного криптографа.

Вроде гост более стоек.
mayton
Насчет ГОСТ-а. Не знаю. Надо почитать сравнительные характеристики.

В госте ключь - 256 бит и таблица перестановок не стандартизована. Перебирать ключь в 256 бит, думаю, пока компьютерам не под силу. А если ещё и таблица перестановок секретна...
mayton
А может вам лучше обратить внимание на настоящих "монстров", таких как AES, Twofish, Serpent.

Ваш покорный слуга использует AES-256bit в режиме CBC для шифрования бэкапов баз данных, перед тем, как залить их на ленточку стриммера.

Ну, с чегото надо же начинать:)
mayton
А может быть они (монстры) уже в Питоне имеют свои реализации? Тогда и не стоит заморачиватся ИМХО.

Может и имеют. Но в стандартной библиотеке ничего пригодного для шифрования я не нашел. А я замахиваюсь на то, что если напишу, то попрошу включить в стандартную библиотеку следующей версии. Именно для этого и нужна Жава. Чтобы была совместимость. В идеале ещё хочется написать библиотеку на Си.

Раньше в пайтоне была мегатулза для шифрования. rotor Реализовала алгоритм Энигмы

Её убрали от греха подальше.
...
Рейтинг: 0 / 0
Что такое сложение по модулю?
    #34304557
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SarinТоесть мы складываем (для примера), 4 и 9 и получаем 3? Пример для десятичной системы.
Да.

SarinЗЫ: блин, как бы это ещё на жаве написать...
Лучше через and $FFFFFFFF (не помню, есть ли в яве побитовые операции, но вроде должны быть). А то еще будет считать остаток от деления напрямую.
...
Рейтинг: 0 / 0
Что такое сложение по модулю?
    #34304559
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SarinСкажите, вот так можно:
Если есть уверенность, что a*b будут меньше 2 33 , то можно. Но я бы не стал на это надеяться.
...
Рейтинг: 0 / 0
Что такое сложение по модулю?
    #34304607
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Если есть уверенность, что a*b будут меньше 2 33 , то можно. Но я бы не стал на это надеяться.
a и b имеют фиксированную длину.
...
Рейтинг: 0 / 0
Что такое сложение по модулю?
    #34304611
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Sarin

А какой процент библиотек Питона, написан на самом Питоне? Меня интересует, насколько змей производителен в плане низкоуровневых вычислений. Ведь не секрет, что криптография довольно плотно подгружает вычислительную подсистему ( CPU ). Не будет-ли интерпретатор "бутылочным горлом" в вашем проекте? В этом случае, вам желательно будет брать исходники ГОСТ-а на C/C++, компилировать и внедрять их через механизм использования external библиотек, а в Питоне - прописывать интерфейс-переходник.

Вы думали о таком сценарии?
...
Рейтинг: 0 / 0
Что такое сложение по модулю?
    #34304668
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton 2 Sarin

А какой процент библиотек Питона, написан на самом Питоне? Меня интересует, насколько змей производителен в плане низкоуровневых вычислений. Ведь не секрет, что криптография довольно плотно подгружает вычислительную подсистему ( CPU ). Не будет-ли интерпретатор "бутылочным горлом" в вашем проекте? В этом случае, вам желательно будет брать исходники ГОСТ-а на C/C++, компилировать и внедрять их через механизм использования external библиотек, а в Питоне - прописывать интерфейс-переходник.

Вы думали о таком сценарии?
Думал. Многое в питоне написано на сях. Интерпретатор действительно не шибко быстр (хотя в последних версиях многого добились в плане улучшения). В любом случае: сначала я буду писать на питоне. Чтобы почувствовать алгоритм кончиками пальцев. Потом можно переписать на сях. Мне интересно самому реализовать алгоритм

Я часто так делаю: сначала напишу на пайтоне, потом переписываю на Жаве или сях. Трудно поверить, но получается быстрее. И качество кода повышается.
...
Рейтинг: 0 / 0
Что такое сложение по модулю?
    #34304670
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати никакие интерфейсы больше не требуются. Начиная с версии 2.5 в стандартную библиотеку включен модуль для работы с so и dll. Достаточно написать обёртку чтобы человек не подозревал, что использует шаред лайбрари.

Код: plaintext
ROLLBACK;
...
Рейтинг: 0 / 0
25 сообщений из 75, страница 1 из 3
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Что такое сложение по модулю?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]