Що означають номери банківських карт
Будь-яка банківська карта має власний ідентифікатор - унікальний 16-значний номер. Можна подумати, що раз людей (а значить і карт) так багато, то можна обдурити систему, запровадивши придуману комбінацію цифр при, скажімо, реєстрації в якомусь сервісі, що не передбачає оплату з вказаною карти прямо зараз. Однак такий трюк не спрацює. Справа в тому, що номери банківських карт будуються виходячи з певних правил, і це дозволяє обчислити вірогідність існування введеної карти навіть без звернення безпосередньо до банку.
Наприклад, при вказівці карти Visa і введенні будь першої цифри, відмінною від четвірки, нічого не спрацює. Номери всіх карт Visa починаються з цифри «4».
Абсолютна більшість карт в Росії випускаються від платіжних систем Visa і MasterCard. Для них справедливі наступні комбінації цифр на початку номера:
- Visa: 4
- MasterCard: 51- 52- 53- 54- 55-
Повний список префіксів банківських карт, в залежності від платіжної системи, можна знайти тут .
Контрольна сума
Реальність така, що, незважаючи на поширення всіляких додатків, що спрощують зберігання і введення даних з карт, люди дуже неохоче зберігають інформацію в такому вигляді (і в цьому є свій сенс). У підсумку, доводиться постійно вводити номер руками, що неминуче призводить до людських помилок.
Для миттєвого виявлення помилок при введенні, були розроблені перевірочні алгоритми. Остання цифра в номері будь-якої банківської карти - це результат послідовності попередніх 15 цифр, і його завжди можна «вгадати», якщо знати перші 15 цифр і алгоритм Місяць .
У 1954 році Ганс Пітер Лун створив алгоритм, який в подальшому увійшов в міжнародний стандарт ISO / IEC 7812-1, на основі якого і будуються номера карт.
Причинами вибору такого алгоритму стали його простота і ефективність. Звичайна людина після пари-трійки пробних прорахунків зможе обчислювати контрольну цифру в умі. При цьому, метод гарантовано виявляє помилку при неправильному введенні однієї цифри номера. Крім цього, алгоритм виявляє майже всі випадкові парні заміни цифр (типова помилка людини при введенні). Однак тут є і мінуси. Контрольна сума - всього 1 цифра. Значить, існує 10% шанс, що випадково згенерований номер виявиться вірним для алгоритму.
Алгоритм Місяць працює дуже просто і має варіації тільки в залежності від кількості цифр в послідовності (парне чи непарне число елементів). Також творець пропонував нумерувати цифри справа наліво, але можна і так.
Спочатку у нас є послідовність з 16 цифр.
Нумеруємо все цифри зліва направо. Першу і наступні через одну цифри множимо на два, і, якщо твір виявляється більше дев'яти, то віднімаємо з нього 9. Як варіант - складаємо цифри отриманого двозначного числа. Буде те ж саме.
Отримана послідовність складається.
Результат відтворення повинен бути кратний 10, інакше контрольна цифра невірна. Щоб зробити її вірною для вихідної послідовності, потрібно збільшити її настільки, щоб сума після перетворення була кратна 10.
існують і більш наворочені алгоритми перевірки , Але порахувати їх в розумі вже не так просто.
Інші приклади використання
Контрольні суми використовуються повсюдно. Це дозволяє миттєво обчислювати помилки при введенні важливих послідовностей цифр. Штрих-коди, ідентифікаційні номери різних персональних документів в різних країнах - скрізь використовуються контрольні суми. Варто зауважити, що контрольні суми застосовуються взагалі у всій електроніці, де важлива цілісність і збереження достовірності даних.
парність
На зорі розвитку ери комп'ютерів, пам'ять в обчислювальних машинах була не настільки надійною і періодично спотворювала дані. Інженери хотіли знайти спосіб виявлення помилок в даних.
Рішення полягало в контролі за паритетом. 8 біт в байті складалися, і їх сума була або парної, або непарної. Для кожного біта створювався додатковий контрольний біт - біт парності. Якщо сума бітів в байті була парною, то в контрольний біт записувалася одиниця, інакше - нуль.
Метод дуже простий, але також і дуже неефективний. Не можна сказати, який з бітів в байті був записаний некоректно. Бути може, сам контрольний біт записався невірно? Подвійна помилка також могла просто проскочити.
Зараз пам'ять куди надійніше, і звичайні комп'ютери більш не використовують перевірку на парність. Однак до сих пір існують особливо вимогливі до надійності системи (банківська сфера, енергетика і так далі). Там застосовується особливий тип пам'яті під назвою ECC (Error Correcting Code Memory). алгоритми, подібні до тих , Що застосовуються в ECC, дозволяють з абсолютною точністю виявляти кожен некоректний біт і виправляти його значення на вірне.
RAID
Незважаючи на активний перехід до твердотілим накопичувачам (SSD), магнітні жорсткі диски (HDD) як і раніше залишаються основним методом зберігання інформації. Вони значно дешевше, а співвідношення ціни за біт інформації, що зберігається в них поки що недосяжно для SSD.
HDD має в своїй конструкції рухливі елементи і закономірно є одним з найбільш часто виходять з ладу пристроїв в комп'ютері. Якщо ви жодного разу в житті не стикалися з фактом що вийшло з ладу жорсткого диска, то ви або дуже молоді, або неймовірно везучий.
У випадку з зберіганням важливих даних, доводиться звертатися до самого дієвого, хоч і не найвигіднішим рішенням - щоб дані не пропали в разі поломки одного диска, потрібно зберігати їх паралельно на двох і більше дисках.
Альтернативний і трохи більш ефективний з фінансів метод полягає в дробленні даних по різних дисках і записи контрольних сум на ці диски. Весь сенс RAID будується на припущенні про те, що поломка одного диска може трапитися в будь-який момент, а ось поломка відразу двох - куди менш імовірна. Як тільки в роботі одного диска виявляються неполадки, то, з надією на нормальну роботу решти дисків, поламаного брата прибирають і ставлять на місце новий диск. Потім на нього заливається інформація і система продовжує працювати як треба.
Спочатку абревіатура RAID означала «Redundant Array of Inexpensive Disks». Сенс полягав саме у використанні більш дешевих і менш надійних дисків. Було зрозуміло, що диски виходять з ладу, але з урахуванням збереження даних, такі диски обходилися сумарно дешевше, ніж більш дорогі і відносно більш надійні диски.
Зараз, коли жорсткі диски в цілому стали куди надійніше, саме значення RAID змінилося. Тепер це «Redundant Array of Independent Disks».
Подібні заходи, безумовно, потрібні, і ми, якщо подивимося на це з позиції життя окремої людини, легко зможемо спроектувати такі методи на щоденну діяльність - різні чек-листи, todo-менеджери, ремайндери, посмикати двері після того, як замкнули її ключем. Все це перевірки на помилки і спроби уникнути їх.
Бути може, сам контрольний біт записався невірно?