Алгоритм Луна (Luhn algorithm) - это процесс вычисления контрольной цифры для числа в соответствии со стандартом ISO/IEC 7812. Сам процесс не является криптографическим средством и никак не защищает находящиеся в этом числе данные. Он предназначен, в первую очередь, для выявления ошибок, вызванных с непреднамеренным искажением данных. Например, при ручном вводе номера карты или любого другого числа. Данный алгоритм позволяет с некоторой степенью достоверности судить об отсутствии ошибок в блоке цифр, но никак не может исправить их.
Рубрика «алгоритм»
Генерация и валидация чисел по алгоритму Луна
2023-07-01 в 17:00, admin, рубрики: laravel, php, алгоритм, алгоритм луна, Алгоритмы, валидация, генераторы, кредитные карты, лояльность клиентовЗадача коммивояжера (TSP) точное решение — метод целочисленного линейного программирования (Integer programming)
2023-01-21 в 7:23, admin, рубрики: python, TSP, алгоритм, Алгоритмы, высокая производительность, задача коммивояжёра, Линейное программирование, Совершенный код, точное решение, целочисленное программирование![Задача коммивояжера (TSP) точное решение — метод целочисленного линейного программирования (Integer programming) - 1 Задача коммивояжера (TSP) точное решение — метод целочисленного линейного программирования (Integer programming) - 1](https://www.pvsm.ru/images/2023/01/21/zadacha-kommivoyajera-TSP-tochnoe-reshenie-metod-celochislennogo-lineinogo-programmirovaniya-Integer-programming.png)
Все пути одинаковы: они ведут в никуда. Но у одних есть сердце, а у других — нет. Один путь дает тебе силы, другой — уничтожает тебя.
- Карлос Кастанеда
Подводные камни компараторов в С++
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, рубрики: алгоритм, Алгоритмы, кейс по проекту, Тарьян![Как алгоритм 1972 года спас наш проект и при чем тут Тарьян? - 1 Как алгоритм 1972 года спас наш проект и при чем тут Тарьян? - 1](https://www.pvsm.ru/images/2023/01/05/kak-algoritm-1972-goda-spas-nash-proekt-i-pri-chem-tut-taryan.jpg)
Я часто вижу в интернете дискуссии, а должен ли True-разработчик знать теорию алгоритмов и стандартные алгоритмы. Про алгоритмические собеседования вообще молчу - мнения на этот счет у всех разные, оно и понятно.
Постквантовый переход: DH, RSA, ECDSA ->?
2022-12-13 в 11:01, admin, рубрики: DH, ecdsa, rca, алгоритм, Блог компании Газпромбанк, квантовый компьютер, криптография, криптостойкость, постквантовая криптография, управление проектами![Постквантовый переход: DH, RSA, ECDSA ->? - 1 Постквантовый переход: DH, RSA, ECDSA ->? - 1](https://www.pvsm.ru/images/2022/12/14/postkvantovyi-perehod-DH-RSA-ECDSA-gt.jpeg)
Один из предыдущих квантовых компьютеров 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 Самый простой (и неожиданный) алгоритм сортировки? - 1](https://www.pvsm.ru/images/2022/02/09/samyi-prostoi-i-neojidannyi-algoritm-sortirovki.png)
Представляем вашему вниманию чрезвычайно простой алгоритм сортировки. Может показаться, что он очевидно ошибочен, но мы докажем, что на самом деле он корректен. Мы сравним его с другими простыми алгоритмами сортировки и проанализируем некоторые его любопытные свойства.
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, алгоритм, Алгоритмы, круг, массив, многоугольник, ненормальное программирование, распознавание, Точка, фигуры, эллипсДанная статья является продолжением предыдущей статьи о распознавании простых многоугольников по нарисованной линии. В данной части будут рассмотрены алгоритмы распознавания эллипсов и алгоритм распознавания невыпуклых многоугольников.