Алгоритм Луна (Luhn algorithm) - это процесс вычисления контрольной цифры для числа в соответствии со стандартом ISO/IEC 7812. Сам процесс не является криптографическим средством и никак не защищает находящиеся в этом числе данные. Он предназначен, в первую очередь, для выявления ошибок, вызванных с непреднамеренным искажением данных. Например, при ручном вводе номера карты или любого другого числа. Данный алгоритм позволяет с некоторой степенью достоверности судить об отсутствии ошибок в блоке цифр, но никак не может исправить их.
Рубрика «алгоритм»
Генерация и валидация чисел по алгоритму Луна
2023-07-01 в 17:00, admin, рубрики: laravel, php, алгоритм, алгоритм луна, Алгоритмы, валидация, генераторы, кредитные карты, лояльность клиентовЗадача коммивояжера (TSP) точное решение — метод целочисленного линейного программирования (Integer programming)
2023-01-21 в 7:23, admin, рубрики: python, TSP, алгоритм, Алгоритмы, высокая производительность, задача коммивояжёра, Линейное программирование, Совершенный код, точное решение, целочисленное программированиеВсе пути одинаковы: они ведут в никуда. Но у одних есть сердце, а у других — нет. Один путь дает тебе силы, другой — уничтожает тебя.
- Карлос Кастанеда
Подводные камни компараторов в С++
2023-01-18 в 10:54, admin, рубрики: c++, debug, qa, qa testing, testing, алгоритм, Алгоритмы, баг, Блог компании «Лаборатория Касперского», компаратор, математика, отладка, Программирование, разработка, тестирование, тестирование веб-приложений, тестирование по
Чаще всего при сортировке объектов пользовательских типов написание кода сравнения элементов коллекции не вызывает вопросов. Компаратор должен возвращать true, если первый аргумент меньше второго, то есть в отсортированном массиве первый аргумент должен идти перед вторым. Алгоритмы сначала вызывают компаратор для пары элементов x и y. Если компаратор вернул true, значит, элемент x меньше y и он должен идти в коллекции перед элементом y, если false, то компаратор вызывается повторно для пары y и x. Если компаратор опять вернул false, значит, элементы равны, иначе порядок определен.
Меня зовут Олег Игнатов, я — Development Team Lead в команде KICS (Kaspersky Industrial CyberSecurity) «Лаборатории Касперского». Мы защищаем промышленные инфраструктуры и сети от специализированных киберугроз. В этой статье расскажу о некоторых особенностях использования компараторов в С++, знание которых позволит не наступить на различные грабли и сэкономить время при разборе багов.
Читать полностью »
Как алгоритм 1972 года спас наш проект и при чем тут Тарьян?
2023-01-04 в 13:48, admin, рубрики: алгоритм, Алгоритмы, кейс по проекту, ТарьянЯ часто вижу в интернете дискуссии, а должен ли True-разработчик знать теорию алгоритмов и стандартные алгоритмы. Про алгоритмические собеседования вообще молчу - мнения на этот счет у всех разные, оно и понятно.
Постквантовый переход: DH, RSA, ECDSA ->?
2022-12-13 в 11:01, admin, рубрики: DH, ecdsa, rca, алгоритм, Блог компании Газпромбанк, квантовый компьютер, криптография, криптостойкость, постквантовая криптография, управление проектамиОдин из предыдущих квантовых компьютеров IBM, предок рекордного Osprey на 433 кубита
Угроза кибератак с применением квантовых компьютеров — это хороший пример ситуации, когда в салоне первого класса ещё играет приятная музыка и разносят напитки, но корабль уже плывет к айсбергу в нужном направлении.
Google, Amazon, Microsoft и другие крупные игроки активно вкладываются в исследования и пилотные проекты в этой области уже сейчас. Например, тот же Cloudflare уже пилотировал постквантовую криптографию для TLS 1.3 в некоторых зонах. Хотя бы просто потому, что дамп зашифрованного трафика, где для обмена симметричным ключом использовался алгоритм RSA, будет оставаться зашифрованным ровно до того момента, когда у атакующего появится возможность запустить алгоритм Шора на квантовом компьютере с достаточным количеством кубитов. Поэтому, несмотря на то, что подобных квантовых вычислительных комплексов ещё не существует, квантово-устойчивые алгоритмы в критических областях нужно применять уже сейчас. Скорее всего, одними из первых практические атаки смогут осуществить спецслужбы крупных стран. В разработку квантовых компьютеров вкладываются не менее активно.
Сегодня я расскажу, что происходит в области разработки решений по кибербезопасности на основе квантово-устойчивых алгоритмов шифрования. Газпромбанк с 2015 года активно участвует в развитии российских квантовых технологий. Мы ведем пилотные проекты по тестированию продуктов кибербезопасности на основе постквантовых алгоритмов совместно с компанией QApp. Это отечественный разработчик решений по кибербезопасности на основе квантово-устойчивых алгоритмов шифрования, единственный в стране, у кого есть готовые решения в этой области.
Так что будем обсуждать варианты атак на классическую криптографию, разные подходы в реализации постквантовой криптографии и текущий конкурс NIST, где отбираются лучшие постквантовые алгоритмы.
Читать полностью »
Автоматический подбор синаптических весов. Самое начало. Циклический перебор
2022-09-03 в 13:32, admin, рубрики: алгоритм, искусственный интеллект, машинное обучение, нейронки, нейронная сеть, нейронные сети, ПрограммированиеВ одной из предыдущих статей (Синаптические веса в нейронных сетях – просто и доступно) мы разбирались со смыслом синаптических весов на примере определения цифры на 13-ти сегментном индикаторе и подбирали веса "вручную", путем логических рассуждений.
С этой статьи приступаем к автоматическому подбору и рассматриваем один из наиболее простых способов – циклический перебор.
Чтобы решать «нерешаемые» задачи, нужно знать алгоритмы
2022-03-16 в 8:51, admin, рубрики: amazon, FAANG, алгоритм, Алгоритмы, Блог компании Southbridge, Карьера в IT-индустрии, собеседование в ITАртём Мурадов — Senior Software Development Engineer в Amazon и автор курса «Алгоритмы: roadmap для работы и собеседований». Уже больше 14 лет он использует алгоритмы для решения рабочих задач и прохождения собеседований. С помощью алгоритмов он повышал производительность приложений, побеждал в спорах с коллегами и ускорял исследование ДНК. Даже попасть в Amazon ему помогло знание алгоритмов.
Мы пообщались с Артёмом, чтобы узнать о его опыте. Он подробно рассказал, как изучал алгоритмы и как они помогали ему в работе.
Самый простой (и неожиданный) алгоритм сортировки?
2022-02-09 в 10:35, admin, рубрики: алгоритм, Алгоритмы, Блог компании Sportmaster Lab, дональд кнут, Программирование, сортировкаПредставляем вашему вниманию чрезвычайно простой алгоритм сортировки. Может показаться, что он очевидно ошибочен, но мы докажем, что на самом деле он корректен. Мы сравним его с другими простыми алгоритмами сортировки и проанализируем некоторые его любопытные свойства.
1. Алгоритм
Большинству из нас хорошо известны такие простые алгоритмы сортировки, как сортировка пузырьком. По крайней мере, нам так кажется. Оказывались ли вы когда-нибудь в ситуации, когда вам нужно записать псевдокод сортировки пузырьком, и вы осознавали, что он не так прост, как кажется, и с первого раза правильно написать его не удаётся? Нужно внимательно следить за тем, чтобы индексы циклов начинались и заканчивались нужными значениями и не выходили за границы, а также правильно обрабатывать флаговые переменные. Разве не было бы здорово иметь простой алгоритм без всей этой возни? Ниже представлен такой алгоритм, сортирующий массив A из n элементов в неубывающем порядке. Для простоты доказательства массив начинается с 1, то есть имеет элементы A[1],..., A[n].
Алгоритм 1 ICan’tBelieveItCanSort(A[1..n]):
for i = 1 to n do
for j = 1 to n do
if A[i] < A[j] then
swap A[i] and A[j]
Вот, собственно, и всё. Он просто обходит в цикле каждую пару значений (i, j) стандартным способом из двойного цикла for, выполняет сравнение и обмен значениями. Разве можно придумать что-то ещё более простое? Возможно первой реакцией увидевшего этот алгоритм будет что-то типа «это не может быть верно» или «знак неравенства направлен в другую сторону, да и индексы цикла указаны неверно». Но нет, он действительно правильно сортирует в возрастающем порядке.Читать полностью »
Реализация алгоритма Краскала на С#
2022-01-22 в 23:02, admin, рубрики: .net, C#, алгоритм, алгоритм краскала, Алгоритмы, графы, Краскала, математика, минимальное остовное дерево, Программирование, реализация, система непересекающихся множеств, сортировка графа, структуры данных, хранение информацииВ данной статье для реализации алгоритма будут рассмотрены:
-
Система хранения графа на основе List<>
-
Сортировка рёбер графа по весу
-
Система непересекающихся множеств
Алгоритм Краскала необходим для нахождения минимального остовного дерева графа.
О чём речь?
Если прочитав предложение выше вы невольно задались этим вопросом, то вам следует изучить пару книг по теории графов информацию, представленную в этом блоке.
Распознаем фигуры по массиву точек: эллипсы и не выпуклые фигуры
2022-01-06 в 19:09, admin, рубрики: java, алгоритм, Алгоритмы, круг, массив, многоугольник, ненормальное программирование, распознавание, Точка, фигуры, эллипсДанная статья является продолжением предыдущей статьи о распознавании простых многоугольников по нарисованной линии. В данной части будут рассмотрены алгоритмы распознавания эллипсов и алгоритм распознавания невыпуклых многоугольников.