חישוב ספרת ביקורת

ספרת הביקורת במספרי תעודות זהות ומספרי כרטיס אשראי היא הספרה שממוקמת כספרה הימנית ביותר במספר. ספרה זו היא איננה ספרה אקראית אלא מיוצרת באמצעות אלגוריתם מיוחד ("אלגוריתם לוהן – Luhn algorithm") כאשר מפיקים את תעודת הזהות או כרטיס האשראי, מאמר זה נכתב על מנת לפרט אודות אלגוריתם זה.

 
מדוע חישוב ספרת ביקורת מצריכה אלגוריתם מיוחד ולא סתם לסכום את כל המספרים יחד ?

מאחר ומספרי ת.ז וכרטיסי אשראי הם מספרים מאוד רגישים מסיבות דיי ברורות, מקבלי ההחלטות בנושאים אלו בחרו להטמיע שכבת הגנה על המספרים שזוהי בעצם מטרת ספרת הביקורת, והיא, בדיוק כשמה, "ביקורת", והכוונה כמובן, עבור זיהוי שגיאות הקלדה של מספר.
בכדי לזהות שגיאות הקלדה נפוצות, האלגוריתם חייב להיות מספיק "חכם" בכדי לעלות עליהן, למשל אם לפנינו מספר ת.ז והוקלד בו שגיאת הקלדה של הספרות 45 במקום 54 אם היינו משתמשים באלגוריתם פשוט של סכימה פשוטה של כל הספרות של ת.ז היינו מקבלים תוצאה זהה גם בהקלדה השגויה וגם בת.ז התקין והשגיאה לעולם לא הייתה מאותרת ולכן היה צורך באלגוריתם קצת יותר "מתוחכם".

 
ההיסטוריה בקצרה של מספרי הזהות:

במדינת ישראל, עד שנות ה 70 של המאה ה-20, מספרי הזהות עברו מספר שינויים, היו תקופות של חמש ספרות, שש ספרות, היו קידומות של אותיות אך החל משנות ה 70 מספרי הזהות מיוצגים ב 9 ספרות, באשר למספרים הישנים, הם עברו "נרמול", שכן, מספרים שהכילו אותיות, האות הוחלפה בגימטריה שלה, ולמספרים עם פחות מ 9 ספרות הוצמדו אפסים מובילים בצידו השמאלי של המספר עד השלמת 9 ספרות.

 
אלגוריתם לחישוב ספרת ביקורת בת.ז:

אם ככה, נקודת המוצא שלנו לחישוב ספרת הביקורת במספר ת.ז היא שיש לפנינו 9 ספרות כאשר הספרה הימנית ביותר היא ספרת הביקורת שאותה אנחנו מעוניינים לאמת או לחשב, לכל אחת משמונת הספרות ניתן משקל, הספרה הימנית ביותר (הספרה השמינית מאחר ואנחנו מתעלמים מספרת הביקורת התשיעית) תקבל את המשקל 2, אחריה הספרה השביעית תקבל את הספרה 1, אחריה הספרה השישית תקבל את הספרה 2 וככה עד סוף המספרים. לאחר הצמדת משקלות לכל אחת מהספרות, אנחנו מכפילים את כל ספרה במשקל שלה, אם תוצאת המכפלה נותן לנו מספר דו-ספרתי, אנחנו מחברים בין ספרות (למשל 18 יהיה 1+8=9). לאחר שיש לנו רצף של מספרים חד-ספרתיים אנחנו מחברים את כולם, בכדי שיתקבל לנו תוצאה אחת. את התוצאה המתקבלת אנחנו צריכים להשלים לכפולה הקרובה ביותר של 10, למשל אם הסכום שהתקבל הוא 63 ההשלמה שלנו תהיה 7 בכדי שהמספר שלנו יגיע לכפולה הקרובה של 10 שבמקרה הזה הוא 70, ולמעשה זאת ספרת הביקורת שלנו – 7.

לדוגמה מספר ת.ז 04798562

מס' ת.ז

2 6 5 8 9 7 4 0

משקל

2 1 2 1 2 1 2

1

מכפלה

4 6 10 8 18 7 8

0

חיבור

4 6 1=1+0 8 9=1+8 7 8

0

43 = 4 + 6 + 1 + 8 + 9 + 7 + 8 + 0

ההשלמה למכפלה הקרובה ביותר של 10 היא 7 בכדי להשלים ל 50 ולכן ספרת הביקורת היא 7

אלגוריתם לחישוב ספרת ביקורת בכרטיס אשראי:

אלגוריתם לחישוב מספר ביקורת של כרטיס אשראי זהה לאלגוריתם של מספר הביקורת של ת.ז, רק שאורכם של מספרי כרטיסי אשראי שונה משל ת.ז ולמעשה גם הם שונים אחד מהשני (נע בין 8-18 ספרות). למשל אורך מספרם של כרטיסי אשראי מאסטרכרד (Master-Card) וויזה (Visa) הוא 16 ספרות, בעוד כרטיס אשראי דיינרס (Diners) הוא 14 ספרות ואמריקן אקספרס (American Express) הוא 15 ספרות. כל זה לא משנה את אלגוריתם החישוב, שכן אנחנו פועלים בדיוק כמו בתרחיש ת.ז, ומחילים משקל מהספרה הימנית ביותר ונותנים לה את המשקל 2, לאחר מכן 1 וחוזר חלילה עד לסיום המספרים ומחשבים באותה הצורה יש לציין כי כרטיסי אשראי מסוג "ישרכארט" יוצאים מהכלל וקברניטי חברת אשראי זו בחרו להשתמש באלגוריתם קצת שונה שאנחנו לא נתייחס אליו כאן.