Опубликован алгоритм генерации уникальных 11-разрядных идентификаторов для жителей РФ

    На портале проектов правовых документов regulation.gov.ru для общественного обсуждения опубликован проект постановления правительства «Об утверждении порядка формирования записей единого федерального информационного регистра, содержащего сведения о населении Российской Федерации», а также проект постановления, определяющий порядок присвоения номера записи в едином федеральном информационном регистре сведений о населении ‎России.

    С 1 января 2022 г. будет запущен единый федеральный информационный регистр сведений о гражданах страны, иностранных гражданах и лицах без гражданства. Каждому лицу присвоят 11-разрядный уникальный номер, который невозможно будет изменить. В единой базе данных будет собрана вся информация о каждом жителе, собранная из разных источников.

    Алгоритм генерации номера изложен под катом.

    1. Первые девять разрядов номера генерируются случайным образом. Последовательность из девяти цифр должна быть уникальной.
    2. В десятый разряд записывается контрольное число K1, которое вычисляется следующим образом: значения девяти разрядов умножаются на соответствующие коэффициенты из таблицы ниже. Затем девять полученных чисел суммируются. Полученное в сумме число делится на 11, и определяется остаток от деления. Определяется разность между числом 11 и остатком от деления. Это и будет значение контрольного числа K1. Если разность между числом 11 и остатком деления является двузначным числом, контрольное число К1 принимает нулевое значение.

      Разряд 1 2 3 4 5 6 7 8 9 -
      Коэффициент 4 8 7 4 11 9 5 3 8 -
    3. В одиннадцатый разряд записывается контрольное число K2, которое вычисляется по такому же алгоритму, что и контрольное число K1, только с другими коэффициентами.

      Разряд 1 2 З 4 5 6 7 8 9 10
      Коэффициент 2 4 8 7 4 11 9 5 3 8

    См. также:

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 203

      +1

      Кто-то может оценить надёжность таких чек-сумм и предположить, почему такие выбраны? Например, почему остатки по модулю 11, а не 10?

        +8
        Для модулей чаще всего используется простые числа. Здесь требуется 1 цифра, поэтому первое простое число — 11. В случае СНИЛС, где две цифры, там используется модуль по 101.
        Есть математическое обоснование этому, и, если не ошибаюсь, оно связано с более равномерным распределением при использовании хэш-функции, но не могу найти ссылок на литературу.

        UPD
        Дело, скорее всего, в делителях. Если по какой-то причине все числа будут чётными, то остаток от деления на 10 будет давать только четные числа, что уменьшит полезность контрольной суммы. Если использовать простые числа, то проблемы могут быть только при генерации чисел кратных модулю, но это очень странная ситуации. То есть, в общем случае, простые числа гарантируют, что контрольной суммой может быть любое число, которое меньше модуля, невзирая на принцип генерации исходных чисел.
          0
          Спасибо! Кажется, понял.
          +1
          Думаю, это связано с необходимостью получать остаток от деления на простое число, а 10ка таким числом не является, а ближайшее наименьшее — 5 не очень информативно.
            +6

            Уже вижу проблему!
            Можно опечататься в 5 цифре и не поломать контрольные суммы!


            Допустим k2=0, потому что остаток от деления суммы на 11 — 0.
            Далее, 5-ая цифра не влияет на k1 вообще, потому что там коэффициент 11. Поэтому k1 — не меняется вообще. А в k2 она входит с коэффициентом 4. Соответственно, ошибка на +3 в этом разряде даст +12 к контрольной сумме, что делает из остатка 0 — остаток 1. По алгоритму это оставит k2=0.


            Еще можно опечататься на +3 в четвертой цифре (если проверочные суммы 0 и 1 mod 10, k1=k2=0), тогда первая сумма изменится на +12 (+1 mod 11), а вторая на +21 (-1 mod 11).


            Вообще, кажется очень плохой идеей назначать проверочную цифру нулем для разных сумм да еще и использовать модуль в качестве коэффициента. Ввели аж 2 проверочные цифры, а опечатки в одной цифре возможны.

              0

              "Я сделаль" — https://jsfiddle.net/ktz3mLvd/5/
              У меня такая проблема не воспроизводится (
              114172744=11417274423
              114472744=11447274411


              Пятый разрад — ошибка
              370041837=37004183750
              370071837=37007183750

                0

                Введите 100000027, 100030027 и 100330027. Контрольные цифры 00 во всех трех случаях.

                • UFO just landed and posted this here
                +1

                Гораздо интереснее, почему такие алгоритмы, работающие на основе написания, выбираются.


                Можно же взять бинарное представление десятичного числа, вычислить какое-нибудь CRC-8, прицепить (или даже перемешать) его с исходным числом, снова записать в десятичном виде — и готово число со встроенной контрольной суммой.


                Или я ошибаюсь и ничего хорошего из этого не получится?

                  0

                  Ну конкретно CRC8 может оказаться больше 100 и не влезет полностью в 2 десятичных цифры, отведенные на чек-сумму. Но зачем надо было изобретать велосипед, я тоже не понимаю, наверняка что-то уже давно придумано.

                    0

                    Непонятно, почему контрольные цифры отдельно, а само число — отдельно. Нужно ведь только чтобы не каждое из 10^11 чисел подходило, а приблизительно каждое сотое. Это можно и в другом виде формулировать. "Должно являться корнем функции...". А функция пускай хоть с отдельными битами работает и логарифмы вычисляет.

                    +1
                    CRC-8? Хм. CRC-8 (ETSI...) славен тем, что гарантированно обнаруживает пакет ошибок длиной до 8 последовательных бит при передаче или хранение байт в таком порядке, где старший бит первый, и при расположении CRC-8 сразу за последним байтом данных.

                    Как бы, использование CRC-8 для контроля ошибок последовательности цифр (UTF-8/ASCII) после предварительного контроля на то, что они цифры, несколько странно. Ввиду того, что цифры это у нас 3,3 бит младших бита, какие-либо гарантии за пакеты ошибок теряются, и получаем просто некую контрольную сумму.
                      0
                      UTF-8/ASCII

                      CRC не от битовой последовательности строки как последовательности символов, а от битовой последовательности двоичного представления этого целого.


                      Те. для берем "случайное" целое '536870912'. Считаем CRC от последовательности битов CRC8(100000000000000000000000000000 BIN) = 10010100 BIN (считал тут)
                      Цепляем в конец и переводим обратно в целое, получая допустимый ID:
                      10000000000000000000000000000010010100 BIN = 1374 3895 3620 DEC. Да, я знаю, что тут не 11 цифр — просто демонстрирую идею. Если нужно именно 11 — надо будет подбирать другую функцию.


                      какие-либо гарантии за пакеты ошибок теряются, и получаем просто некую контрольную сумму.

                      К сожалению, не понял аргумента. Например, в примере выше набрали не то что надо а переставили четвертую и пятую цифры: '1347 3895 3620' (т.е. 1111101011111000100010100010110010100 BIN)
                      CRC8(11111010111110001000101000101 BIN) = 00110110 BIN
                      Что не равно 10010100, которое добавлено в конце. Можно ругаться, что при вводе допустили ошибку.

                        0
                        CRC не от битовой последовательности строки как последовательности символов, а от битовой последовательности двоичного представления этого целого
                        С учётом того, что многие каналы для передачи номера оперируют цифрами, например, ввод с клавиатуры, такое использование CRC-8 окажется не очень хорошим, если не сказать грубее. Ошибка в одной цифре, может изменить любое количество бит двоичного представления, но CRC-8 гарантировано обнаруживает искажение не более 8 последовательных бит, а любые другие искажения лишь с вероятностью примерно 1-1/256, тем более после преобразования 8-и контрольных бит в 2-е контрольные цифры.

                        Скорее всего, найдутся такие номера и такие ошибки в одной цифре, которые не будут обнаружены таким кодом. (Т.е. получится так же, как в коде из основной статьи, найдётся дырочка)
                        К сожалению, не понял аргумента.… Что не равно...
                        Просто повезло, всё таки 99/100 близко к 1.

                        Как вариант, можно рассмотреть такое использование CRC-8, которое обнаруживает почти все пакетные двойные ошибки (две последовательные цифры) в основном номере и все одинарные ошибки:
                        1. Каждой цифре сопоставляем её 4-х битное представление;
                        2. Рассчитываем CRC-8 от конкатенации некой начальной строки и всех 4-х битных строк;
                        3. 8-и битный результат делим по модулю 100.

                        Я практически уверен, что можно будет подобрать такую начальную или конечную строку, что бы гарантировать обнаружение всех одиночных ошибок. Но не уверен в возможности её вычислить аналитически, без большого перебора.

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

                        P,S. С точки зрения простоты доказательства гарантий обнаружения одиночных ошибок, CRC-4, CRC-5 или CRC-6 выглядят существенно предпочтительнее.
                          0
                          тем более после преобразования 8-и контрольных бит в 2-е контрольные цифры.

                          Весь первоначальный вопрос был, зачем нужно такое выделение. Я вот в примере отдельных десятичных цифр контрольной суммы не выделял — и вроде все работает.


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

                          Может быть. Вот как раз это мне и не очевидно. Кроме того, что-то я не верю, что оно получается при таких простых алгоритмах, как вот тут предлагается.

                            0
                            Весь первоначальный вопрос был, зачем нужно такое выделение. Я вот в примере отдельных десятичных цифр контрольной суммы не выделял — и вроде все работает.

                            Оно, конечно, работает, но получается, иногда 11 значный номер, иногда 12 значный номер, что противоречит постановке задачи и, к тому же, не имеет гарантии обнаружения ошибки в одной цифре.
                            Если нужно именно 11 — надо будет подбирать другую функцию.

                            Простейший вариант обеспечения 11 значного номера, это отобразить 8-и контрольных бит в 2-е контрольные цифры.

                            Наверное есть вариант изменения первоначальной постановки задачи — ужать случайную часть номера, тем или иным способом, скажем, брать не 9 случайных цифр, а 28 случайных бит.
                            Может быть. Вот как раз это мне и не очевидно. Кроме того, что-то я не верю, что оно получается при таких простых алгоритмах, как вот тут предлагается.
                            А что у нас с вами для CRC-8 лучше получается?

                            Пока нам с вами вариант, который гарантирует обнаружение одиночных ошибок неизвестен же. Причём, даже если мы корректируем изначальную постановку задачи, всё равно пока нет варианта, только идеи.

                            Вот с CRC-6 было бы просто, но Вам он, почему-то не нравится.
                              0
                              Наверное есть вариант изменения первоначальной постановки задачи

                              Тогда уж использовать 16-чное число. Только вместо цифр 'ABCDEF' использовать что-то вроде 'ABCEHK' — чтобы одновременно и латиницу не заставлять русскоязычных произносить и проблем с кириллицей для зарубежных систем не создавать.


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

                              В 11-ти значном числе, если в арифметике не ошибся, есть 99 вариантов ошибиться в одной цифре и 10 вариантов — переставить две рядом стоящие. Т.е. для гарантированного обнаружения таких ошибок валидным ID-ом должно быть каждое 109-ое число. Кажется, это означает, что двух десятичных разрядов контрольной суммы заведомо для этой задачи не хватить.


                              Вот с CRC-6 было бы просто, но Вам он, почему-то не нравится.

                              Почему не нравится? Мне все равно. Единственное, что я хотел выяснить — почему выбирают алгоритмы, переводящие десятичные цифры в отдельные десятичные же цифры контрольной суммы. Хотя можно выставить условие на все число сразу. Это выглядит так, как будто обеспечивают удобство ручного вычисления. Что странно.


                              А CRC-8 — это был сходу придуманный пример, возможно не очень удачный, того, как это 'на все число сразу' может выглядеть.

                                0
                                Т.е. для гарантированного обнаружения таких ошибок валидным ID-ом должно быть каждое 109-ое число.

                                Похоже, кстати, что "делится нацело на 109" — и есть алгоритм для 11-ти значного десятичного числа, гарантированно находящий ошибку в одной цифре либо одну перестановку рядом стоящих.

                                  0
                                  Посылка неверная, а обнаруживать будет, причём не только перестановки, а любые искажения двух рядом стоящих цифр.

                                  Очевидно, что для любого простого M >= 100, остатки от деления X и X + E*10n на M, где E <= 99, будут отличаться.

                                  Так что и 101 тоже подойдёт для обнаружения ошибок двух рядом стоящих цифр, но для задачи с 9 случайными цифрами и общей длинной номера 11 этот алгоритм не подходит.
                                    0

                                    Так и не надо формулировать алгоритм генерации в виде '9 случайных цифр + контрольная сумма'


                                    Просто: ID-ом является случайное число, кратное 101 (ну или, как у меня — 109) длиной меньше 12 десятичных цифр.
                                    И все.


                                    Ошибку в наборе в одном знаке находим, ошибку в двух рядом стоящих — находим. Чего еще хочется?

                                      0
                                      Ну, если Вам лень думать, или, быть может, Вам математика не нравится, и Вы заказчику на портале проектов правовых документов regulation.gov.ru для общественного обсуждения впарите такое изменение ТЗ — вперёд. Почему нет? Описание ID краткое и понятное.

                                      Как вариант, оставаясь в рамках ТЗ, возмите число 97, и наплюйте на гарантии обнаружения двойных ошибок, типа и по вероятности 1-1/97 сойдёт.

                                      Но математически задача и в изначальной постановке имеет решение, надо только правильное «поле» подобрать.
                                        0
                                        P.S. Ошибка (уточнение)
                                        Как вариант, оставаясь в рамках ТЗ, возмите число 99, и наплюйте на гарантии обнаружения двойных ошибок, типа и по вероятности 1-1/99 сойдёт.
                                      0
                                      P.S. Ошибка (уточнение)
                                      Для любого M >= 100 взаимно простого с 10, остатки от деления X и X + E*10n на M, где E <= 99, будут отличаться.
                                    0
                                    В 11-ти значном числе, если в арифметике не ошибся, есть 99 вариантов ошибиться в одной цифре и 10 вариантов — переставить две рядом стоящие. Т.е. для гарантированного обнаружения таких ошибок валидным ID-ом должно быть каждое 109-ое число. Кажется, это означает, что двух десятичных разрядов контрольной суммы заведомо для этой задачи не хватить.
                                    Ошиблись, только не в арифметике.

                                    Например, для гарантированного обнаружения ошибки в одной цифре номера любой длины достаточно иметь одну контрольную цифру. Очевидно, простейший код, где контрольная цифра является суммой по модулю 10 остальных цифр, обеспечивает обнаружение одиночной ошибку.

                                    Если говорить за ошибки в двух рядом стоящих цифрах, до для восьмеричных номеров их гарантированно обнаруживает CRC-6, а шестнадцатиричных — CRC-8. Опять же для последовательностей любой длины.
                                    Единственное, что я хотел выяснить — почему выбирают алгоритмы, переводящие десятичные цифры в отдельные десятичные же цифры контрольной суммы. Хотя можно выставить условие на все число сразу. Это выглядит так, как будто обеспечивают удобство ручного вычисления. Что странно.
                                    Я же уже объяснял почему так делать плохо.
                                    С учётом того, что многие каналы для передачи номера оперируют цифрами, например, ввод с клавиатуры, такое использование CRC-8 окажется не очень хорошим, если не сказать грубее. Ошибка в одной цифре, может изменить любое количество бит двоичного представления, но CRC-8 гарантировано обнаруживает искажение не более 8 последовательных бит, а любые другие искажения лишь с вероятностью примерно 1-1/256

                                    Правда, в приложении к CRC-8, но проблема касается почти любых кодов обнаружения ошибок.

                                    Блочность кода, разбитие входной информации на небольшие блоки: биты, цифры и т.п., это не для удобства ручных вычислений, это для удобства математических доказательств свойств кода.
                                      0
                                      Ошибка в одной цифре, может изменить любое количество бит двоичного представления
                                      Это если рассматривать число, как записанное в DEC-представлении. В BCD-представлении изменение одной цифры изменит не более четырёх подряд идущих битов.
                                        0
                                        Уже лучше, см. выше
                                        https://habr.com/ru/news/t/512936/#comment_21927332

                                        Кратко: Следующая проблема попытки использования CRC-8 в том, что он вернёт 8 бит, которые не влезают в две цифры. Готовых решений, которые бы гарантировали обнаружение одиночной ошибки нет, есть только идеи.
                                        0
                                        Я же уже объяснял почему так делать плохо.

                                        Так мы же не в техническом канале передачи ошибки ловим (там обычно какая-то защита от ошибок уже есть), а именно при наборе. Поэтому отдельно учитывать ошибки вида "n последовательных бит" вроде бы должны быть неактуально.

                                          0
                                          И я про тоже, что при преобразовании номера в число, CRC-8 от двоичного представления уже самого числа нам решительно не подходит. Ввиду своих свойств он не будет гарантировать даже обнаружение одиночных ошибок.
                        +15

                        Вообще, можно же было взять ИНН или номер пенсионного и выдать их тем, у кого их сейчас нет, а тут ещё один номер какой-то

                          +23
                          Комикс про 15 стандартов.jpg
                            –4
                            а тут ещё один номер какой-то

                            Больше идентификаторов богу идентификаторов!
                            Извините за баян, но он тут к месту.
                            image
                              +3
                              Ваш баян не грузится, используйте Хабрасторадж.
                              И в последнее время частая ситуация, почему то картинки со сторонних ресурсов грузятся через раз. Проблема не только у меня.
                                +3
                                Вообще там вставлен урл страницы, а не картинки. Поэтому и не грузится.
                                Скрытый текст
                                image
                                  –2
                                  Какой смысл от картинки, которая не картинка, да ещё и под спойлером?
                                  Ещё и выглядит как «битая» картинка(т.к. иначе отображался бы код/урл)
                                    +5
                                    Я лишь написал что автор коммента выше вставил вместо урла на картинку, урл на страницу с картинкой, и только по этому она не грузится.
                                      –3
                                      А хром думает что это всё же картинка, а не ссылка на страницу. Да и автор комента пишет про то же. Видимо картинка грузится только у него.


                                        0
                                        А что он должен думать если ему сказали что что это картинка?
                                        Скрытый текст

                                        А если вручную сходить по урлу, то попадем на страницу на которой будет также и картинка.
                                        Только урл страницы: xkcd.ru/927
                                        А урл картинки с этой страницы: xkcd.ru/i/927_v4.png
                                  +7
                                  Ну название баяна комментом выше, а не грузится он, наверное, потому, что затёрли до дыр его или превышен лимит показов на Хабре :))
                                +5

                                ИНН привязан к региону выдачи. А
                                Страховой номер индивидуального лицевого счета, или СНИЛС, в системе обязательного пенсионного страхования является уникальным, принадлежит только одному человеку и присваивается один раз в жизни. Страховое свидетельство выдается всем категориям граждан, зарегистрированным в системе обязательного пенсионного страхования, в том числе детям, неработающим гражданам и военным.
                                То есть учёт уже есть, идентификатор 11тизначный. Даёшь ещё один! И контору к нему.

                                  +3
                                  Что значит к региону выдачи? Я ИНН получил в Лен.области. Сейчас живу в Москве, использую его здесь.
                                    +4
                                    Что значит к региону выдачи? Я ИНН получил в Лен.области. Сейчас живу в Москве, использую его здесь.
                                    Он ведь на 47 начинается?
                                    0

                                    Это значит, что встречаются люди, у которых есть несколько ИНН. Челоьвек переехал — а налоговая выдала новый номер. Ещё бывали случаи, когда ИНН переходил к другому человеку. Короче, ИНН — это ненадёжная штука.

                                      +1
                                      Я вам больше скажу, встречаются люди, у которых два и более СНИЛС. Когда-то ПФР целенаправленно провел работу по объединению лицевых счетов тех, у кого СНИЛС дублировались, но случаи с дублями все-равно остались.
                                        +1

                                        Наверное, будут такие же случаи и с новым идентификатором

                                        +1
                                        И я один из них, самое печальное что платишь ты налоги на один, а потом узнаешь что с тебя их заново хочет другая налоговая. Дальше еще печальнее, как обычно суды без оповещений и аресты счетов и имущества. И уже в этой точке ты начинаешь разгребать этот ад, писать жалобы и по полгода выбивать ответы.
                                      +3
                                      ИНН привязан к региону выдачи

                                      Это так, но при смере региона и перерегистрации он не меняется.
                                        +1

                                        Все верно — потому что регион первоначальной выдачи не изменился :)

                                        +3
                                        Неграждане, проживающие в стране, трудовые мигранты, работающие по патенту — не имеют возможности оформить СНИЛС.
                                        Данный же идентификатор — выдается всем.
                                          +4
                                          не имеют возможности оформить СНИЛС

                                          А в чем проблема дать им такую возможность? Это лишь набор цифр, наличие СНИЛСа еще не означет, что человеку будут платить пенсию, пособия и т.п.
                                            0
                                            СНИЛС это по факту номер пенсионного счёта. То-есть это не зелёная, заламинированная бумажка с цифрами, а запись в БД, о ваших пенсионных накоплениях, в недрах серверов ПФР.
                                              +3
                                              И? Ну будет запись в БД у иностранца/новорожеденного/хронически безработного «пенсионных накоплений нет». В чем проблема-то?
                                                +2

                                                Скорее всего есть операции разрешённые человеку со СНИЛС. Если выдавать негражданам СНИЛС то эти процедуры/законы/регламенты нужно переписать. И ПО поправить по всей стране.

                                                  +1
                                                  Если выдавать негражданам СНИЛС то эти процедуры/законы/регламенты нужно переписать

                                                  Так уже выдают, достаточно заключит договор на работу от 6 месяцев и любой иностранец получает СНИЛС.

                                                  И нет, ничего особенного кроме доступа к госуслугам и потенциально к пенсии СНИЛС не дает.
                                                    –1

                                                    Ну вот как минимум одно ограничение уже появилось) А из-под госуслуг очень многое можно сделать. И ещё нужно проверять что этот СНИЛС даёт+ многодетно история применения СНИЛС которое придётся тоже подправить. (Ну или возможно вы точно знакомы с процедурами и законами и укажете что это не так) А если бизнес поездка, или к родителям/родственникам раз в год приезжает. А этот смогут получить вообще все (хотя не уверен, ещё только обсуждения идут) Вообщем я думаю что не стоит брать старое. Унификация нужна с прицелом на будущее. И для этого по мне лучше что то новое, что изначально разрабатывалось для широкого применения (и потом будут на это ориентироваться законы и акты) А и забыл: тогда ещё надо будет номер СНИЛС выводить из-под ведомства которое его выдаёт

                                                      0
                                                      А из-под госуслуг очень многое можно сделать.

                                                      Что именно опасного может негражданин сделать из госуслуг?

                                                      Представим, что есть два иностранца с рабочими контрактами 6 и 5 месяцев, у первого есть СНИЛС, у второго — нет.
                                                      Конкретно какие-такие удивительные привелегии есть у первого, которые нельзя дать использовать второму?
                                                +1
                                                Кстати, сейчас снилс выдают просто бумажкой с номером и печатью. Зелёные пластики канули в лету.
                                                  +2
                                                  ИНН теперь тоже распечатывают на принтере на простой бумаге. А раньше была такая гербовая бумажка с голографической защитой.
                                                    +1
                                                    Только как всегда реализация хромала на обе ноги. Одна гос. организация выдала простую бумажку с ИНН, вторая требует гербовую с голографической печатью для ксерокопии и знать ничего не хочет.
                                                      +1

                                                      Сейчас ещё веселее стало с электронной регистрацией сделок с недвижимостью. Договор купли-продажи существует исключительно в электронном виде, бумаги с печатью и подписью нет.

                                                        0
                                                        А еще можно (было? Или всё еще?) в паспорт поставить штамп с ИНН. И никто про это тоже не знает и знать не хотят.
                                                          0
                                                          У меня все основные документы занесены в учётку госуслуг. При обращении в гос. орган они им видны и требуют только паспорт для верификации.
                                                0
                                                Наверное, вы имели в виду, что у них нет обязанности получать СНИЛС. А право/возможность получить СНИЛС у них, насколько можно судить по информации ПФР, есть.
                                                  0

                                                  Буду благодарен за ссылку. Пока что, проживая в РФ с ребенком и продлевая миграционную карту каждые 90 дней поездками зарубеж, получить СНИЛС ни себе ни ребенку не удалось. А его требуют как минимум чтобы заходить в электронный школьный дневник (на mos.ru который).

                                                    0
                                                    Например, даются такие разъяснения:
                                                    www.pfrf.ru/branches/spb/info/~vopros_otvet/2638
                                                    www.pfrf.ru/branches/spb/news~2015/01/23/83849
                                                    Не знаю, насколько соответствуют вашей ситуации
                                                      +1

                                                      Да, я знаю про эту статью. На первый взгляд, СНИЛС может получить любой иностранный гражданин, но если вчитаться дальше, то только "постоянно либо временно пребывающий в РФ". А временно пребывающий — это тот у кого РВП. На РВП по квоте я в очереди уже 5 лет, и все никак. То же самое подтвердили в ближайшем ПФ.

                                                  0
                                                  в таком случае 9 цифр будет маловато
                                                +1
                                                В статье указано, что номер присваивается не только налогоплательщикам, или людям, которые должны получать пенсию, но и лицам без гражданства и иностранным гражданам (им нельзя выдать ни ИНН, ни СНИЛС). Поэтому определенный смысл в этом есть.
                                                Кроме того, в документах люди часто ошибаются, вводя различные номера, и эти ошибки зачастую приносят много проблем. Алгоритм проверки корректности номера не позволит просто так опечататься, так что и резон и плюсы в этом нововведении есть.
                                                  +2
                                                  им нельзя выдать ни ИНН, ни СНИЛС

                                                  Почему нельзя?

                                                  Можно выдать ИНН даже, если человек сейчас не платит налогов (например, новорожденный), или СНИЛС, даже если у него пока нет право на пенсию.

                                                  Например, у нас в Люксембурге основной номер это номер соцобеспечения — первый 7 цифр это год-месяц-день рождения, а потом еще пять вроде произвольных чисел. При этом его выдают любому, кто регистрируется в стране, даже временно.
                                                    +1
                                                    Кроме того, в документах люди часто ошибаются, вводя различные номера, и эти ошибки зачастую приносят много проблем. Алгоритм проверки корректности номера не позволит просто так опечататься, так что и резон и плюсы в этом нововведении есть.
                                                    Правила расчета контрольной суммы СНИЛС
                                                    СНИЛС имеет вид «XXX-XXX-XXX YY», где XXX-XXX-XXX — номер, а YY — контрольное число.

                                                    Контрольное число СНИЛС рассчитывается следующим образом:

                                                    • Каждая цифра СНИЛС умножается на номер своей позиции (позиции отсчитываются с конца);
                                                    • Полученные произведения суммируются;
                                                    • Если сумма меньше 100, то контрольное число равно самой сумме;
                                                    • Если сумма равна 100 или 101, то контрольное число равно 00;
                                                    • Если сумма больше 101, то сумма делится нацело на 101 и контрольное число определяется остатком от деления аналогично предыдущим двум пунктам.

                                                    +4

                                                    И ИНН и СНИЛС могут быть у иностранного гражданина.
                                                    А так мучительно родили абсолютно новый алгоритм (в точности повторяющий вычисление ИНН) и освоили очередной олимпиард бюджета.

                                                      0
                                                      Хотите что бы было как в штатах. ;)
                                                        0

                                                        Причём не просто номер, а номер с малым количеством цифр, ну что мешало сделать не 11 а 20? И контроль можно улучшить и проблем с тем что кто-то будет в int пихать нет :)

                                                        +6
                                                        всего 9ти значный (если отбросить 2 контрольных разряда)? Теоретически, исходя из того, что сейчас население России около 140-150 млн, должно хватить надолго, но… все равно как-то маловато. Даже мобильники — и те 10ти значные. Вон когда современные автомобильные номера вводили в 90х годах, наверно тоже думали что надолго хватит…
                                                          +5
                                                          Я бы сказал, что это весьма впритык, 999 млн.

                                                          Первые девять разрядов номера генерируются случайным образом. Последовательность из девяти цифр должна быть уникальной.

                                                          Это вообще глупо, почему просто не по порядку, если так мало чисел?
                                                          Если бы можно было выделить пару разрядов на доп.информацию, например в каком городе или каким центром выдавали номер, а не уникальный рандом, который нужно согласовывать по всей территории РФ.
                                                            0

                                                            Ну проект только на стадии общественного обсуждения. Может, и поменяют алгоритм генерации.

                                                              +1
                                                              Причем чем больше номеров будет выдаваться, тем больше коллизий будет получаться и тем больше требоваться проверок этих коллизий в БД, что вообще не шутка.
                                                                0

                                                                Так это такая работа, новые идентификаторы каждые 3 года вводить, люди на этом уже наверное лет по 20 сидят, а так если ввести с запасом то они не нужны будут :)

                                                                0
                                                                «640 Кб хватит всем». В год в РФ рождается немного меньше 2млн. человек. Минус имеющиеся 140млн. Получается (1000-140)/2=430 Т.е. при текущих темпах хватит на 430 лет. Если разработчики не планируют захватывать новые крымы, то хватит надолго.
                                                                  +1
                                                                  Так сказали же что каждый может получить, не только граждане. Если все китайцы захотят получить то тут же и закончатся.
                                                                    +7

                                                                    NAT’ить будут )))

                                                                    0
                                                                    На самом деле умирает больше, чем рождается (хотя сейчас уже около нуля), но население уверенно растет, в том числе благодаря раздаче гражданства гражданам СНГ. Так-то не +2 млн, а больше.
                                                                      0

                                                                      Но ведь умершие не отдают свои номера назад

                                                                    0
                                                                    о гражданах страны, иностранных гражданах и лицах без гражданства.

                                                                    Итого 7 миллиардов. По 1 миллиарду на десять лет — новые номера. На 1000 лет — 100 миллиардов. 12 знаков. Нужны записи сгенеренные случайным образом — возьму в два раза больше — 24 знака, + 2 контрольных цифры. Плюс добить до ближайшего круглого числа…
                                                                    Короче, я бы взял число из 32 цифр — на ближайшую тысячу лет должно хватить всем :-), при условии, что не покинем этот шарик.
                                                                      0

                                                                      640кб хватит всем! (с)

                                                                      +10
                                                                      Сколько будет стоить забить номер из семёрок?
                                                                        +12

                                                                        То есть когда рождается ребенок, ему система присваивает случайные 9 цифр. А потом надо просмотреть всю базу на 140 миллионов записей, чтобы убедиться, что число уникальное. И так пока не станет уникальным. Плюс базу надо блокировать, чтобы двум детям не дать одинаковые номера. Мне кажется, или тут перформанс потерялся.

                                                                          +6
                                                                          Не более двух тысяч детей запросов в секунду!
                                                                            +3
                                                                            Можно проще, сразу сгенерить все 999 млн. возможных комбинаций с отметкой занято/свободно. Потом генерим любое случайное число и если оно уже занято, итерируемся назад или вперед до ближайшего свободного, блокируем только одну запись и меняем ее на занято (опционально указывая ФИО и прочие данные).

                                                                            Плюсом тут будет возможность разбивать комбинации на любое количество частей и хранить их в разных физических базах (условно в первой — первых 10 миллионов комбинаций, во второй — с 10 млн. до 20 млн и т.д.).
                                                                              +8

                                                                              Зачем так сложно? Квоты. На бумаге генерируем по 100к записей и отсылаем заказным в роддом. Кончаются цифры — пишешь запрос на новую квоту. Тут тебе и майские указы по повышению рождаемости, и наказания в виде уменьшения количества квот… У — удобство. База только генерирует и печатает.

                                                                                0
                                                                                У — удобство.

                                                                                Для повышения градуса удобства печатаем на самоклейке для этикеток.
                                                                                  +3

                                                                                  Не годится. Так мы сможем узнать ФИО петра боширова при рождении.

                                                                                  +1

                                                                                  Действительно, пусть Гос. База сгенеренных номеров принимает запросы от ЗАГСов. Запросы ставятся в очередь и по-очереди загсам отправляются номера, тут же помечаясь как выданные. Всё. Не надо ничего постоянно генерить и сверять где-то в иглу оленевода или деревне гадюкино. Ну, кроме собственно уникальных защищенных запросов в сторону ГлавБазы.


                                                                                  Пусть рождается 4 человека в минуту (сейчас 3.3 чел/мин)- это совсем копеечная нагрузка, с собственно выдачей и регистрацией выдачи справится даже офисный комп.

                                                                                    0
                                                                                    Подтверждаю. У меня так ИД картинок генерятся на одном проекте. Картинок сильно больше чем население РФ и никаких проблем нет. Правда bigint
                                                                                      0

                                                                                      А если интернет в деревне пропал — то пусть подождут рождаться :)

                                                                                        0

                                                                                        Во-первых, инет нужен не собственно в деревне, а в органе, осуществляющем учет и контроль — сельсовет, загс, администрация. А там инет дольше чем на сутки как правило не пропадает.
                                                                                        Во-вторых, была хорошая идея выделять пулы номеров для локального распределения.

                                                                                      –1
                                                                                      Потом генерим любое случайное число и если оно уже занят
                                                                                      Зачем так сложно? Просто просим базу выдать следующий незанятый номер, и сразу его забить. Не надо много раз что-то там генерировать, а потом много раз проверять в базе.
                                                                                        0
                                                                                        del
                                                                                          0
                                                                                          А что если первое число свободно и в двух потоках одновременно выпало это число?

                                                                                          Один из потоков заблокирует запись на уровне строки базы данных и поменяет ее. Второй поток обламается, откатит транзакцию и пойдет искать свободное поле дальше. Это же стандартная задача для работы с любой базой данных.
                                                                                            0
                                                                                            ОК. Мой первый комментарий относился к гипотетическим структурам в памяти, без использования БД. Номера итак являются перечислимыми. Зачем тогда генерировать списки заранее, тем более в предположении что у нас есть возможность хранить и ходить по нему в отсортированном виде? Если речь о СУБД то всегда будет первичный ключ, который не позволит вставить двух одинаковых ключей и идти тогда по уже выделенным ключам и искать дырки в нумерации.
                                                                                              0
                                                                                              гипотетическим структурам в памяти

                                                                                              Ну, я бы не стал хранить данные по 140-200 млн. ключей/пользователей в памяти. По многим причинам.
                                                                                                0
                                                                                                Мои идея о блокировке была как о шутке и гипотетической ситуации, а не о серьёзном рабочем решении конкретной проблемы.
                                                                                                А я бы не стал хранить лишние (1000-140млн) или в 6 раз больше данных и это только при данном раскладе из 9 знаков, когда с тем же успехом можно не хранить.
                                                                                        +1
                                                                                        Ой да поставят автоинкремент и готово. Случайные в данном случае могут обозначать что никак не связаны с субъектом которому выдаются.
                                                                                          0

                                                                                          Уже связаны как минимум временем рождения. То есть перебор по определенной дате рождения сделать проще.

                                                                                          0
                                                                                          Почему нельзя сразу подгружать базу занятых номеров? Причём даже без остальных данных, только свободен/зарезервирован(для ВИП клиентов)/занят.
                                                                                          Да это не защищает от одновременного занятия номера, тут достаточно второго(максимум третьего) уточняющего запроса. Лучше чем тысячи повторных запросов от тысяч роддомов.
                                                                                            +1

                                                                                            Индекс существенно упрощает задачу проверки. И в каком случае не понадобится блокировка?

                                                                                              +1
                                                                                              А потом надо просмотреть всю базу на 140 миллионов записей, чтобы убедиться, что число уникальное.

                                                                                              Битовая карта на 1 млрд битов — это всего ~125МБ данных. Сканируется менее, чем за секунду.

                                                                                                +2

                                                                                                А вот реализация скана на js через electron в docker в облаке ....

                                                                                                0
                                                                                                Ну технически все проще — вставка в базу где есть уникальный индекс по этому полю или просто база ключ-значение с проверкой уникальности ключа. Если не удалось вставить (нарушение индекса/уникальности ключа) то пробуем еще раз случайное вставить. Так можно вставлять асинхронно. И блокировок по сути нет.

                                                                                                Другое дело что есть теория вероятности и она говорит, что чем больше вы в такую базу вставите, тем чаще будет возникать коллизия на следующей вставке. Вероятность коллизии = n/N где n — число уже занятых ключей, а N — максимально возможное значение ключей. И вот тут у тех кто этот идентификатор придумал есть одна проблема: под фактический идентификатор (контрольные — зависимые числа) выделено только 9 знаков. Т.е. всего идентификаторов 1 миллиард. И когда туда 140 миллионов нынешних жителей вставят то уже с вероятностью 0.14 будет получать коллизию при вставке… Но люди то умирают и рождаются — в среднем за 70-80 лет поколение полностью сменяется и если старые ID после смерти не возвращать в используемые (допустим через 5 лет), то получим через 80 лет уже 0.28 (при условии что население расти не будет). А это уже каждая третья вставка будет натыкаться на коллизию. Дальше еще хуже…

                                                                                                Хотя о чем это я — за 80 лет они наверняка еще стопятьсот уникальных идентификаторов придумать успеют :)

                                                                                                Хотели бы без коллизий (ну с минимальной вероятностью) надо было брать N на много порядков выше числа занятых номеров в перспективе — что-то типа случайного UUID.
                                                                                                  0
                                                                                                  Насколько я понял, всё хуже: люди с трудовыми визами и видом на жительство будут делить номера с гражданами, так что вероятность коллизии — ещё выше.
                                                                                                    0
                                                                                                    Все верно — мои прикидки это оптимистичные, на деле будет сильно хуже.

                                                                                                    А самое печальное что коллизии они случайно распределяются и формулировка «каждая третья вставка провалится» может создать неверное впечатление что за три попытки то всяко вставим. А вот нет. Каждое событие в вероятностью 1/3 провалится и кому-то конкретно может банально не повести и получить заветный номер только с 5 или даже с 10 попытки. Комуто повезет с первой. В среднем — да будет каждая треться вылетать в массе запросов. Но комуто конкретному может все эти третьи и будут попадаться очень долго…
                                                                                              • UFO just landed and posted this here
                                                                                                  0

                                                                                                  Социальное равенство же, цифры то случайные.

                                                                                                    +5
                                                                                                    Деление на чётных и нечётных!
                                                                                                    Неравенство — а вдруг одни из них обидятся?!
                                                                                                      +3

                                                                                                      А единицы и нули это указание на пол?
                                                                                                      Цветные штаны нельзя, цифры нельзя! Куда катится мир?

                                                                                                        0
                                                                                                        А единицы и нули это указание на пол?

                                                                                                        В корень зрите!
                                                                                                          0

                                                                                                          А если человек того, non-binary?

                                                                                                            0
                                                                                                            Ваша ссылка не про биологический пол, а про гендер — социальный конструкт, по сути пытающийся классифицировать комбинации трех сущностей — пола, направленности полового влечения и т.н. «гендерных стереотипов».

                                                                                                            Но и с «биологическим полом» не всё так просто, да.

                                                                                                            Даже на уровне биологии пол — это не одно монолитное понятие. Есть как минимум три уровня — хромосомный, гонадный и соматический. И хотя, по идее, между ними должна быть прямая зависимость (хромосомы определяют развитие половых желез — гонад, железы вырабатывают гормоны, влияющие на формирование остального организма), но мы живём не в идеальном детерминированном мире, и на любом из этапов этой зависимости может случиться какая-то поломка. Начиная с того, что и генотип (точнее, кариотип) может быть не только XX и XY, но и разные там анеуплоидии, и заканчивая тем, что гормоны действуют не «как положено» — например, в случае синдрома Морриса.

                                                                                                            А еще бывает мозаицизм и химеризм: часть клеток (и даже органов в целом) имеет один кариотип, а другая часть — иной.

                                                                                                            В общем, есть множество факторов, в результате которых получаются гермафродиты, гинандроморфы и прочие интерсексы.
                                                                                                  +3
                                                                                                  Значит, ЛСДУ3 и ЙФЯУ9 не станут новым стандартом :(
                                                                                                    +3
                                                                                                    Вспомнинается шутка из КВН: схема игр в этом сезоне простая. Шесть команд по пять человек в каждой образуют четыре тройки игроков. В семи играх мы определяем по восемь победителей, три из которых проходят в следующий круг, где нас ждет финал из 14 команд.
                                                                                                    • UFO just landed and posted this here
                                                                                                      +1

                                                                                                      Откровение Иоанна 13:18 "Здесь мудрость. Кто имеет ум, тот сочти число зверя, ибо число это человеческое".


                                                                                                      А если старообрядцы возмущаться начнут ?

                                                                                                        +1
                                                                                                        Отключат газ…
                                                                                                          0
                                                                                                          Отключат газ…

                                                                                                          1. Ну им за веру страдать не в первой.
                                                                                                          2. Да и негуманно это как-то :(
                                                                                                          3. Лучше мне кажется пока только готовятся ввести исключить из номера шестёрки напрочь. Чтобы ничьи умы не смущать во избежание.
                                                                                                            +4
                                                                                                            Ну и начнётся. Отключить 6 — сатанизм, отключить 4, 1 и 8 — нацизм, 1 и 3, не к добру. Потом ещё добростят мамкину нумерологи и пойдёт гадание по государственному GUID.
                                                                                                              0
                                                                                                              И надо ещё не забыть отключить семёрки, т.к. вдруг там получится реклама того самого «Портвейнового» казино. Кстати, если перевернуть девятку, то будет шестёрка, поэтому её тоже отключить надо.
                                                                                                              0

                                                                                                              Их проблемы. Веганы, вон, вообще от любой продукции животного происхождения испытывают гнев и возмущение, Но это не повод запрещать, или прятать мясо, кожу, или ещё что-нибудь

                                                                                                          +1

                                                                                                          И он сделает то, что всем, малым и великим, богатым и нищим, свободным и рабам, положено будет начертание на правую руку их или на чело их,
                                                                                                          и что никому нельзя будет ни покупать, ни продавать, кроме того, кто имеет это начертание, или имя зверя, или число имени его.

                                                                                                            +2
                                                                                                            Стоит тег sarcasm ставить. Или вы серьезно?
                                                                                                              +2
                                                                                                              Стоит тег sarcasm ставить

                                                                                                              Не поможет — рефлексы же у многих — что-то "противоречищее прогрессу" глаз увидел — на минус в карму палец нажал :)

                                                                                                                0
                                                                                                                Нумеризация это еще не прогресс.
                                                                                                                  0

                                                                                                                  Конечно так — поэтому и в кавычки взял !

                                                                                                                    0
                                                                                                                    Надо запретить числа!
                                                                                                                    А погодите, это уже сделали
                                                                                                                +1
                                                                                                                Ага, значит если код наносить на левую руку и затылок, то никаких претензий не будет.
                                                                                                                0

                                                                                                                Наверняка сделают обязательное указание этого номера при покупке симки, подключении к интернету, потом паспорт отпадёт за ненадобностью, полная деанонимизация. Интересно, а будут ли на чёрном рынке «левые» номера? И кстати, для чиновников наверняка будет механизм маскирования. Ну, типа вип-номер, везде отображается со звездочками.

                                                                                                                  0
                                                                                                                  а будут ли на чёрном рынке «левые» номера?
                                                                                                                  С вводом этих номеров куда-то исчезнут бомжи, используемые сейчас для подобных операций?
                                                                                                                  +3
                                                                                                                  Мечта программиста баз данных. Чтобы у всех был уникальный идентификатор. Я джва года ждал этого.
                                                                                                                    +3
                                                                                                                    предлагаете всем GUID выдавать?
                                                                                                                      +6
                                                                                                                      И отменить имя и фамилию (нафига базу захламлять, есть же GUID!).
                                                                                                                      — Привет, я — ebb3d1b9-05ca-4b5d-b344-931881555402!
                                                                                                                      — А я — eb7df85f-a798-408c-b4f3-7e50d21b0b0d.
                                                                                                                        +1
                                                                                                                        ой, а будут домашние прозвища? типа «дэнольдешечка, вставай!»
                                                                                                                          +1
                                                                                                                          Ох не завидую я тому, кому попадётся какой-нибудь ebba1XXXXXX.
                                                                                                                            0
                                                                                                                            классика же — DEADBEEF, DEADBABE и т.п.
                                                                                                                            –1

                                                                                                                            image

                                                                                                                            0

                                                                                                                            Где-то заплакал Древарх
                                                                                                                            https://bit.ly/2DglFBk

                                                                                                                              +1

                                                                                                                              Д-503, О-90...

                                                                                                                            0
                                                                                                                            Как показывает практика использования всех предыдущих уникальных идентификаторов, брать их в качестве уникальных вне той системы, в рамках которой они учитываются, — не лучшая идея, чреватая сюрпризами.
                                                                                                                              0
                                                                                                                              Во многих Западных странах, у граждан есть один единственный уникальный идентификатор практически на все случае жизни и особых проблем это не вызывает.
                                                                                                                                +1
                                                                                                                                …пока кто-то неопытный не решает сделать его уникальным ключом в базе данных.
                                                                                                                                  0

                                                                                                                                  Поэтому он должен быть максимально неудобным для бд, хотябы не int64

                                                                                                                                  0
                                                                                                                                  Так то западные. У нас свой, особый путь!
                                                                                                                                  0
                                                                                                                                  Можете развернуть мысль, в смысле?
                                                                                                                                    0
                                                                                                                                    Андрюха, у нас неопознанный труп, возможно — криминал. По коням!

                                                                                                                                    Что Андрюха будет вводить в базу данных, разработчик которой полагает, что у всех граждан есть уникальный идентификатор? Есть-то он есть, только неизвестен.

                                                                                                                                    Сюда же все вопросы замены документов, ошибок выдачи, всяких специальных случаев вроде программ защиты свидетелей. В государственных органах эти вопросы вручную, со скрипом, но решаются по каким-то внутренним регламентам. Автор системы будет на все грабли натыкаться сам.

                                                                                                                                    Предположение, что каждому объекту присвоен идентификатор — это абстрактная идеализация, даже если речь идёт о деталях на конвейере. Идентификатор появляется в процессе выдачи и учитывается в базе данных (бумажной, электронной или какой-то ещё). Если у вас нет возможности взаимодействовать с этой базой, и остаётся только гадать о соответствии одного другому, то ничего хорошего из этого не выйдет.
                                                                                                                                +2

                                                                                                                                https://jsfiddle.net/ktz3mLvd/5/
                                                                                                                                Примитивно, но работает. Описанная логика (вроде) соблюдена.


                                                                                                                                Но меня смутило "девять случайных цифр" — то есть множество ведущих нулей допустимо?
                                                                                                                                  +1

                                                                                                                                  uuid же есть
                                                                                                                                  Почему не использовать их везде где только можно?

                                                                                                                                    +1
                                                                                                                                    Полагаю они сложны для ручного ввода.
                                                                                                                                      0
                                                                                                                                      Просто печатать ШК
                                                                                                                                        0
                                                                                                                                        Да что мелочиться, татуировать сразу на плече при рождении… Чем-то нехорошим это попахивает…
                                                                                                                                          0
                                                                                                                                          Все равно ведь номер присваивается… а короткий он или длинный — есть ли разница?
                                                                                                                                          Сейчас сканер есть в любом смартфоне, так что думаю разницы нет. А вот UUID решает такие проблемы как уникальность и конечное количество.

                                                                                                                                          ШК можно и для короткого номера сгенерить, что скорей всего и так будет делаться, как на медицинский полисах. Так что стоит ли изначально себя загонять в очень узкие рамки генерации этого кода?
                                                                                                                                            0
                                                                                                                                            Вопрос в том как этими данными воспользуются.
                                                                                                                                            К примеру к QR коду привязывать/шифровать мед. данные(группа крови, аллергия, несовместимые лекарства), чтобы скорая сразу знала как действовать.
                                                                                                                                            А уникальных меток у человека и так хватает. И их уже давно собирают. Тот же сбербанк к примеру собирает лицо/голос/почерк. И можно в банкомате светануть лицом для опознания, но с учётом какие там камеры, обмануть их можно даже фотографией в теории. Кто понесёт вину(и будут ли возмещать) при этом большой вопрос.
                                                                                                                                      +1
                                                                                                                                      У большинства дееспособных граждан более 5 уникальных номеров: СНИЛС, паспорта, ИНН, вод.права, номер мобильного и пр. Но приставы все равно используют ФИО и дату рождения.
                                                                                                                                        0
                                                                                                                                        И все равно ошибаются :)
                                                                                                                                          +2

                                                                                                                                          Увы, сейчас приставам ничего не мешает взять СНИЛС и ИНН совершенно постороннего однофамильца и записать его в дело.

                                                                                                                                            0
                                                                                                                                            Увы но ни одно из них не подходит. Они могут быть не уникальными, их может быть больше 1 или вообще отсутствовать.
                                                                                                                                            +1
                                                                                                                                            А какое ведомство будет заведовать этими номерами?
                                                                                                                                              +1
                                                                                                                                              … ведение… осуществляется органом исполнительной власти, осуществляющим функции по контролю и надзору за соблюдением законодательства о налогах и сборах

                                                                                                                                              В общем, ещё один ИНН. Чуть далее расшифровка для непонятливых:
                                                                                                                                              справочники и классификаторы… устанавливаются Министерством финансов Российской Федерации по согласованию с Федеральной налоговой службой
                                                                                                                                              0

                                                                                                                                              Не люблю я это понятие «случайные числа». Коллизий быть не должно, выходит? Алгоритм получения случайного числа будет, или закупим номера на random.org?

                                                                                                                                                +5
                                                                                                                                                image
                                                                                                                                                +1
                                                                                                                                                Серия номер паспорта
                                                                                                                                                Код подразделения
                                                                                                                                                ИНН
                                                                                                                                                СНИЛС
                                                                                                                                                ОГРН
                                                                                                                                                Вод.права
                                                                                                                                                Страховой полис

                                                                                                                                                Нужно больше номеров богу номеров.
                                                                                                                                                И самое печальное, что это будет просто очередной номер, по которому половина работает, половина нет, третьей половине нужно еще ФИО, четверной хватит ИНН.
                                                                                                                                                  0
                                                                                                                                                  Паспорт — номер бланка, меняется при смене паспорта.
                                                                                                                                                  ИНН — получение для физлица необязательно.
                                                                                                                                                  СНИЛС — не оформляется для иностранцев, работающих по срочному договору менее шести месяцев.
                                                                                                                                                  ОГРН — только у юрлиц.
                                                                                                                                                  Водительские права — номер бланка, меняется при смене прав.
                                                                                                                                                  Страховой полис — номер меняется при смене страховой компании или переоформлении договора.
                                                                                                                                                    +2
                                                                                                                                                    Вы так пишите, как будто смена номеров или необязательность получения это какие-то законы природы, а не особенности бюрократии. Сделать для всех обязательный ИНН или СНИЛС и заменить им все остальные номера (вместо номера паспорта — писать СНИЛС, страхового полиса — СНИЛС, вместо ИНН — СНИЛС и этот номер никогда не менять).
                                                                                                                                                      0
                                                                                                                                                      Смена номеров — это вполне логичная процедура для бумажных бланков строгого учёта. Например, если у вас украли паспорт или вы его потеряли, то номер бланка заносится в список недействительных. Вам выдаётся паспорт на новом бланке, с другом номером.

                                                                                                                                                      Выдача ИНН и СНИЛС иностранцам, приезжающим на временную сезонную работу тоже особо не нужна, только будет захламлять базы налоговой и ПФР.
                                                                                                                                                        0
                                                                                                                                                        Выдача ИНН и СНИЛС иностранцам, приезжающим на временную сезонную работу тоже особо не нужна, только будет захламлять базы налоговой и ПФР.

                                                                                                                                                        Эээ, то есть сделать ТРЕТЬЮ базу в которой будут учитываться ВСЕ это лучше? Я уж не говорю о том, что потом скорее всего придется строить соотвествения ИНН-СНИЛС-Новый_общий_номер.

                                                                                                                                                        P.S. Я уж не говорю, что при существующих сейчас мощностях десяток миллионов записей (сколько тех иностранцев по всей РФ?) в правильно сделаной БД вообще не должен влиять ни на место, ни на скорость.
                                                                                                                                                          0
                                                                                                                                                          Выдача ИНН и СНИЛС иностранцам, приезжающим на временную сезонную работу тоже особо не нужна, только будет захламлять базы налоговой и ПФР.

                                                                                                                                                          Не захламлять, а, в случае ПФР, позволять учитывать пенсионные права)
                                                                                                                                                        0
                                                                                                                                                        Просто меняется всё. Вообще всё. Люди, социальные структуры, языки, смыслы…
                                                                                                                                                        Законы термодинамики, теорему Гёделя ещё не опровергли.
                                                                                                                                                        Я, лично, вообще вижу мало смысла во всей этой возне. Ну, кроме как отжать себе материальных благ…
                                                                                                                                                          0

                                                                                                                                                          Исходя из длины номера это просто этап…

                                                                                                                                                          +1
                                                                                                                                                          ну можно же поменять правила и выдать ИНН с СНИЛС тем, кому сейчас не выдают. Тем, кто у же их имеют, ничего делать не надо.
                                                                                                                                                            +1
                                                                                                                                                            ИНН — получение для физлица необязательно.

                                                                                                                                                            Это получение бумаги с ним необязательно. Но сам номер все равно будет сгенерирован. Просто вы его узнаете, когда он потребуется и за ним придете.


                                                                                                                                                            СНИЛС — не оформляется для иностранцев, работающих по срочному договору менее шести месяцев.

                                                                                                                                                            Не так велика проблема разрешить. Там на него идут пенсионные отчисления, но если их не делать, то будет 0.

                                                                                                                                                              0
                                                                                                                                                              Вот видите сколько вы нюансов по каждому номеру написали. Давайте добавим еще один со своими нюансами, чтобы было веселее. Я как раз об этом бреде.

                                                                                                                                                              Менять номер паспорта при смене вообще нет смысла. Сам номер не является секретным, а бумажку можно валидировать другими методами. Ну и т.д.
                                                                                                                                                                0
                                                                                                                                                                а бумажку можно валидировать другими методами
                                                                                                                                                                Какими, например?
                                                                                                                                                                  0
                                                                                                                                                                  Если говорить о реальном российском паспорте, то в качестве дополнительного значения для проверки валидности паспорта при неизменном номере кажется достаточно использовать дату выдачи.
                                                                                                                                                                    0
                                                                                                                                                                    А если бланк был украден до выдачи?
                                                                                                                                                                      0
                                                                                                                                                                      В таком случае злоумышленник может только подделать имеющийся паспорт, используя бланк, на котором нет ни айди ни даты ещё. Правильно я понимаю кейс? Да, против такой атаки даты недостаточно. В принципе для таких паспортов как российские, которые серьёзный документ, имеющий бланки с защитой и всё такое, действительно лучше использовать уникальные номера. Как в любых бланках строгой отчётности. Но можно не мешать номер бланка и айди человека.
                                                                                                                                                                        0
                                                                                                                                                                        Можно не смешивать. Но всё равно придётся проверять номер бланка, чтобы удостовериться, что он не находится в списке недействительных. То есть будет запись «Гражданин с ID ..., предъявивший паспорт №...».
                                                                                                                                                                          0
                                                                                                                                                                          Это важно при идентификации. Ну ок. Будет запись про паспорт такой-то. А в другом месте будет запись, что использовалась электронная подпись. И нормально, главное, что единый идентификатор остаётся, связывая такие операции в единое целое.
                                                                                                                                                                            0
                                                                                                                                                                            А в другом месте будет запись, что использовалась электронная подпись.


                                                                                                                                                                            Боюсь, что в этом то и будет беда, что в базе будет запись: «использовалась подпись», вместо подписанного пруфа… (верьте нам)
                                                                                                                                                                    0
                                                                                                                                                                    Например встроенный чип с зашитым внутри ID документа, который используется исключительно для валидации. Подделать сложно, визуально не скопировать. Можно отозвать. Проверка только специальным устройством.

                                                                                                                                                                    В целом паспорт — просто бумажка. Сейчас практически любой человек наоставлял копий паспорта везде где только можно. Изготовить копию паспорта, которую бы приняли в банке не такая и проблема (ни разу у меня пристально не проверяли паспорт, а какой-нибудь Тинькофф вообще просто фото тебя делает). Какой смысл скрывать номер паспорта? Понятно что не стоит писать его на лбу, но все же это не такая уж и тайна.

                                                                                                                                                                    UPD: Каждый факт валиации паспорта можно логировать, с записью ID устройства валидации, которые выдаются по отдельным законам.
                                                                                                                                                                  0

                                                                                                                                                                  При этом в законе прописана возможность по собственному желанию "изменить историю" насколько помню, но это работало когда были только паспорт + свид. о рождении, интересно сейчас как.

                                                                                                                                                                +1
                                                                                                                                                                Странный какой то алгоритм, у нас в Казахстане ИИН генерируется как число из 12-ти знаков, первые 6 чисел которого это дата рождения, потом номер, потом контрольная сумма. И из ИИН сразу можно узнать дату рождения (за исключением года, потому что он 2-х значный, и то только если человеку больше 100 лет).
                                                                                                                                                                  +1

                                                                                                                                                                  Будет считаться неприличным спрашивать у женщин ИНН?

                                                                                                                                                                    0
                                                                                                                                                                    Я не женщина, но если бы кто-то на улице вдруг стал спрашивать мой ИНН, я бы ОЧЕНЬ удивился…
                                                                                                                                                                      0
                                                                                                                                                                      Поэтому придумали СНИЛС. Его на улицах иногда спрашивали всякие опросники и страхователи :)
                                                                                                                                                                    0
                                                                                                                                                                    Мне кажется не очень хорошо кодировать в номере какие-никакие, а личные данные в виде даты рождения. Хотелось бы, чтобы номер сам по себе не позволял узнать ничего кроме того валиден он или нет.

                                                                                                                                                                    Да и такой алгоритм тоже кажется странным. 6 цифр на дату, то есть год без столетия, и через 100 лет придётся снова возвращаться в тот же диапазон. А если из 12 цифр хотя бы две контрольные, то на уникальность остаётся 10000 вариантов на день, не так уж и много. Или дата кодируется иначе? Если, например, числом дней с какой-то даты, то 6 цифрами можно 2700 лет закодировать.
                                                                                                                                                                      0
                                                                                                                                                                      Ниже прочитал подробности
                                                                                                                                                                    +1

                                                                                                                                                                    Я, конечно, понимаю, что вычислять, да ещё и по алгоритмам, это полностью в формате Хабра, но вот отвлечемся.
                                                                                                                                                                    В Казахстане ввели Регистрационный Номер Налогоплательщика ещё (емнип) в 1993. Несколько лет после объявления почти не применяли, кстати, он был привязан к региону выдачи, народ умудрился получить по два, по три. Потом начали применять, да ещё сводить в общую базу, разобрались потихоньку.
                                                                                                                                                                    Потом придумали СИК, это для пенсии, офигенная комбинация в 65 бит, записывалась цифрами и латинскими буквами (всего 32 символа) строкой из 13 символов. СИК вычислялся офигительным алгоритмом (мечта программиста) от ФИО и латы рождения. Одна ошибка в ведомости и платёж летит обратно, ну, ладно, это не технический показатель. Итак, у всей страны есть РНН и СИК, абсолютно нечитаемые и не запоминаемые.
                                                                                                                                                                    «Обнуление»
                                                                                                                                                                    Всем присвоены Индивидуальные Идентификационные Номера, с самого рождения. 12 цифр (12! Цифр!) Первые 6 — две цифры от года рождения, месяц, день. Абсолютно понятно сразу, где чей ИИН.
                                                                                                                                                                    Потом ещё одна цифра — определяет пол и век рождения, так что ближайшая заковыка-«проблема 2300 года». И ещё пять цифр, обеспечивающих уникальность и целостность.
                                                                                                                                                                    Для всех физлиц по ИИН и только по нему: налоги, пенсионный счёт ( напоминаю, в РК полноценная накопительная система без заморозки вкладов), учёт медстраховки, регистрация средств мобильной связи.
                                                                                                                                                                    Что может пойти не так? Есть примеры?
                                                                                                                                                                    И зачем каждое ведомство в РФ придумывает свой идентификатор для всей страны? (А это уже риторический вопрос :)
                                                                                                                                                                    Да, ИИН нанесён на Удостоверение Личности, размером с кредитку. Последние версии УЛ имеют память, в ней можно хранить электронную подпись, считыватели продаются. Прекрасный новый мир :)

                                                                                                                                                                      0
                                                                                                                                                                      Если удостоверение украдено или утеряно, как его инвалидировать? Или кроме ИИН на нём ещё какой-то номер есть?
                                                                                                                                                                        0
                                                                                                                                                                        Для проверки в простейшем варианте достаточно использовать дату выдачи карты в сочетании с ИИН. Но тут вопрос, а надо ли её вообще инвалидировать при потере? Ответ на него зависит от того как и в каких процессах эта карта используется.
                                                                                                                                                                        +1

                                                                                                                                                                        Проблема только в том что в итоге будут отклонения от алгоритма — пол и дату рождения могут поменять (коррекция ошибок, например, происходит чаще чем кажется). Номер от этого не перестаёт быть уникальным, но в каких-нибудь системах кто-то обязательно оптимизирует процесс и жёстко привяжет пол к 7й цифре. Непонятно зачем в ID вносить какую-то информацию. Номер должен быть просто уникальным в какой-то БД и все. Желательно случайным, но это не так важно

                                                                                                                                                                          0
                                                                                                                                                                          Вот согласен. Одно дело наш старый паспорт, который содержит всю эту информацию и гору защит просто для того чтобы выступать офлайновым источником информации. Другое дело ИИН. Причём закодированная в нём информация не очень понятно зачем в нём закодирована. Ну да, можно узнать возраст и пол из номера, а зачем? Даже чтобы не продать подростку пиво, одного номера явно не достаточно, нужно всё равно тем или иным способом сопоставить номер с человеком. Какие задачи решает дата рождения и пол в номере, что без них никак, я не понимаю.
                                                                                                                                                                            0
                                                                                                                                                                            Какие задачи решает дата рождения

                                                                                                                                                                            6 рэндомных цифр намного проще запомнить, чем 12. Ну и диапазон для проверки коллизий сильно сужается.
                                                                                                                                                                            0

                                                                                                                                                                            Так ИИН и есть «просто уникальный».
                                                                                                                                                                            Если нет отклонений от нормы (смены пола :) и даты рождения, ума не приложу, зачем), то ИИН будет ещё и легко запоминаемым ( как у большинства граждан РК) — я могу, увидев ИИН в регистрационных документах, определить ошибку привязки.
                                                                                                                                                                            А «случайность» там есть — в последних 5 цифрах, и «контрольная сумма».
                                                                                                                                                                            Да, тут писали про «пиво для подростков» — продавец просто потребует УЛ, а там дата рождения прописана отдельно, крупно, и фотография владельца.
                                                                                                                                                                            Для этнографов, в Казахстане внутренним документом гражданина является удостоверение личности ( в формате кредитной карты, с фото, ФИО, датой и местом рождения. Паспорт (книжечка с листами) существует только как «загранпаспорт».
                                                                                                                                                                            Возможно, у нас это работает из-за меньших затрат, и на единый идентификатор, и на переделку старых баз данных. Нас же всего 17-18 миллионов, и никакого федерализма, вертикаль, понимаешь.

                                                                                                                                                                              0
                                                                                                                                                                              Для этнографов, в Казахстане внутренним документом гражданина является удостоверение личности ( в формате кредитной карты, с фото, ФИО, датой и местом рождения. Паспорт (книжечка с листами) существует только как «загранпаспорт».

                                                                                                                                                                              Казахстан, по ощущениям, технологически несколько более развит, чем РФ. В то время, как в Казахстане уже были ID, в РФ проваливался проект УЭК, и вроде бы, чуть позже провалился ещё и проект электронных медицинских полисов.
                                                                                                                                                                              Даже светодиодное освещение я видел на казахстанских предприятиях на пару лет раньше, чем оно массово появилось у нас в РФ.

                                                                                                                                                                          0

                                                                                                                                                                          Удостоверение с фотографией и удостоверение имеет свой номер. Хотя, конечно, фотка маленькая и можно перепутать :)
                                                                                                                                                                          При утере заявляешь. Все, как в РФ с паспортом. И удостоверения проверяются через централизованную базу.
                                                                                                                                                                          Вообще, с ИИН больше отдаёшь (налоги, пенсионные), чем получаешь.
                                                                                                                                                                          Удостоверение личности имеет свой номер, уникальный, при замене номер удостоверения будет другим, а ИИН останется неизменным.
                                                                                                                                                                          Да, ИИН присваивают новорождённым детям с рождения :)

                                                                                                                                                                            +1
                                                                                                                                                                            Лучше бы сразу выдавали каждому ipv6 адрес:)
                                                                                                                                                                            Была бы уникальность в мировом масштабе, ну и сам протокол ipv6 продвинули бы заодно.

                                                                                                                                                                            Only users with full accounts can post comments. Log in, please.