যেমনটি সুপরিচিত, জার্মান IBAN-এ কান্ট্রি কোড (DE), একটি দুই-সংখ্যার চেক ডিজিট ( ISO 7064 অনুযায়ী), ব্যাঙ্ক কোড (8-সংখ্যা) এবং অ্যাকাউন্ট নম্বর (সাব-অ্যাকাউন্ট নম্বর, 10 সহ) রয়েছে। -অঙ্ক, অনুপস্থিত সংখ্যাগুলি অগ্রণী শূন্য দিয়ে পূর্ণ) এবং তাই 22-অঙ্ক। চেক ডিজিট গণনা করার জন্য, তথাকথিত BBAN (ব্যাঙ্ক কোড এবং অ্যাকাউন্ট নম্বর) পাশাপাশি জার্মানির সংখ্যাসূচক দেশের কোড \(1314\) এবং চেক ডিজিট \(00\) ) গঠিত হয়।
উদাহরণ স্বরূপ, ব্যাঙ্ক কোড 21050170 এবং অ্যাকাউন্ট নম্বর 12345678 BBAN 210501700012345678 ফেরত দেয়, দেশের কোড এবং চেক ডিজিট 00 দিয়ে প্রসারিত করে তারপরে ফলাফল হয় \(x = 210501700012345678131400\) (এখন চেকটি \(এখন \(98 - (x \mod 97)\) \90\94 ডিজিট) \(98 - (x \mod 97)\) । এটা কোন কাকতালীয় ঘটনা নয় যে এটিকে \(97\) দ্বারা ভাগ করা হয়েছে। বৃহত্তম সম্ভাব্য দুই-অঙ্কের মৌলিক সংখ্যা হিসাবে, এটি সম্ভাব্য সর্বাধিক সম্ভাব্যতার সাথে ট্রান্সপোজড ডিজিটের মতো ভুল এন্ট্রিগুলিকে স্বীকৃতি দেয়। আমরা এখন নিম্নলিখিত বিবৃতি দেখান:
- একটি বৈধ IBAN-এর একটি সংখ্যা পরিবর্তন করলে একটি অবৈধ IBAN হবে৷
- একটি বৈধ IBAN এর দুটি ভিন্ন সংখ্যা পরিবর্তন করলে একটি বৈধ IBAN হতে পারে।
- যদি একটি বৈধ IBAN এর দুটি ভিন্ন অবস্থান বিনিময় করা হয়, তাহলে একটি অবৈধ IBAN তৈরি হয়।
- আপনি যদি একটি বৈধ IBAN এর দুটি ভিন্ন অবস্থান দুবার অদলবদল করেন, তাহলে একটি বৈধ IBAN ফলাফল হতে পারে।
যাক $$A = DE P_1 P_2 N_1 N_2 N_3 N_4 N_5 N_6 N_7 N_8 N_9 N_{10} N_{11} N_{12} N_{13} N_{14} N_{15} N_{16} N_{17} N_{18}$$ একটি বৈধ IBAN।
তারপর $$A_B = N_1 N_2 N_3 N_4 N_5 N_6 N_7 N_8 N_9 N_{10} N_{11} N_{12} N_{13} N_{14} N_{15} N_{16} N_{17} N_{18} 131400$$ সংশ্লিষ্ট BBAN (সংখ্যা-কোডেড দেশের কোড DE এবং চেক ডিজিট \(00\) সহ প্রসারিত)।
- এখনই পরিবর্তন করুন \(N_k\), হয় \(A_B^* = A_B + l \cdot 10^{24-k}\) সঙ্গে \(1 \leq k \leq 18\) এবং \((-1) \cdot N_k \leq l \leq 9-N_k \wedge l \neq 0\). সঙ্গে \( P = 98 - (A_B \mod 97) \) কিন্তু হয় \(P^* = 98 - \left((A_B + l \cdot 10^{24-k}) \mod 97\right) \). সাধারণত প্রযোজ্য \( a \equiv a' \mod m, b \equiv b' \mod m \): \(a + b \equiv a' + b' \mod m\). সঙ্গে \(A_B \equiv R_1 \mod 97\) এবং \(l \cdot 10^{24-k} \equiv R_2 \mod 97\) হয় \( (A_B + l \cdot 10^{24-k}) \equiv R_1 + R_2 \mod 97 \). কিন্তু এখন এটা \( 0 < R_2 < 97 \) এবং এগুলো \( P^* = 98 - (R_1+R_2) \neq 98 - R_1 = P \) এবং সেইজন্য \( P_1 \neq P_1^* \vee P_2 \neq P_2^* \). এটি থেকে একটি সংখ্যার শুধুমাত্র একটি সম্ভাব্য পরিবর্তন ছেড়ে যায় \( P \) প্রতি \( P^* \neq P \). এখানে কিন্তু \( N_k \) অপরিবর্তিত থাকে, চেকসাম তৈরি হয় \( P \neq P^* \).
- নিম্নলিখিত দুটি IBAN বৈধ:
$$\begin{align} A_1 = DE89207300\boldsymbol{\color{red}01}0012345674 \\ A_2 = DE89207300\boldsymbol{\color{red}98}0012345674 \end{align}$$ লাভ করুন , যে আমরা \(A_1\) এ দুটি সন্নিহিত সংখ্যা \(97\) দ্বারা বৃদ্ধি করেছি। উপরন্তু, IBAN শুধুমাত্র আনুষ্ঠানিকভাবে বৈধ নয়, অন্তর্নিহিত ব্যাঙ্ক কোড 20730001 এবং 20730098 আসলে বিদ্যমান। - আমরা প্রথমে চেষ্টা করি, \( N_{k_1} \) এবং \( N_{k_2} \) বিনিময় করা. প্রথম হল \( P = 98 - (A_B \mod 97) \) যেমন \(P^* = 98 - \left((A_B + l \cdot 10^{24-k_1} - l \cdot 10^{24-k_2}) \mod 97\right) \) সঙ্গে \(l = N_{k_2} - N_{k_1}\) এবং \(1 \leq k_1, k_2 \leq 18\). এখন কারণ
$$\begin{array} {|c|c|} \hline k & R = 10^{24-k} \mod 97 \\ \hline 1 & 56 \\ \hline 2 & 25 \\ \hline 3 & 51 \\ \hline 4 & 73 \\ \hline 5 & 17 \\ \hline 6 & 89 \\ \hline 7 & 38 \\ \hline 8 & 62 \\ \hline 9 & 45 \\ \hline 10 & 53 \\ \hline 11 & 15 \\ \hline 12 & 50 \\ \hline 13 & 5 \\ \hline 14 & 49 \\ \hline 15 & 34 \\ \hline 16 & 81 \\ \hline 17 & 76 \\ \hline 18 & 27 \\ \hline \end{array}$$
\( \forall k_1 \neq k_2 \in \left\{ 1, \ldots, 18 \right\} : R_{k_1} \neq R_{k_2}\). তাই হয় \( P \neq P^* \). তাই এটা চেক করা অবশেষ \(P_n\) এবং \(N_k\) সঙ্গে \( 1 \leq n \leq 2 \) এবং \( 1 \leq k \leq 18 \) ব্যবসা হতে পারে \(P = 98 - (A_B \mod 97)), (R_1 = (A_B \mod 97)\), \(P^* = 98 - (A_B + (l \cdot 10^{24-k}) \mod 97)\), \(R_2 = (A_B + (l \cdot 10^{24-k}) \mod 97)\). যেহেতু আমরা \(A_B\) কাছাকাছি \(l \cdot 10^{24-k}\) আমাদের পরিবর্তন করতে হবে \(P_1\) বা \(P_2\) কাছাকাছি \(-l\), তাই \(P\) কাছাকাছি \(-10^m l\) সঙ্গে \(m \in \{0,1\}\) পরিবর্তন: তারপর হয় \(P^* = 98 - R_2\) কিন্তু এছাড়াও \(P^* = P - 10^m l = 98 - R_1 - 10^m l\), অতএব \(R_2 = R_1 + 10^m l,\) এবং এগুলো
$$((A_B \mod 97) + (l \cdot 10^{24-k} \mod 97)) \mod 97 = (A_B \mod 97) + 10^m l$$ যাইহোক, এই সমীকরণটি কখনই পূরণ হয় না, যেমনটি নিম্নলিখিত স্ক্রিপ্টটি দেখায়:See the Pen IBAN FORMULA CHECK by David Vielhuber (@vielhuber) on CodePen.
এই শুধুমাত্র একটি সম্ভাব্য বিনিময় ছেড়ে \(P_1\) এবং \(P_2\). এখানে কিন্তু \( N_k \) অপরিবর্তিত থাকে, চেকসাম তৈরি হয় \( P \neq P^* \). - নিম্নলিখিত দুটি IBAN বৈধ:
$$\begin{align*}A_1 = DE\boldsymbol{\color{red}8}\boldsymbol{\color{green}3}20220800\boldsymbol{\color{red}1}000000\boldsymbol{\color{green}0}00 \\ A_2 = DE\boldsymbol{\color{red}1}\boldsymbol{\color{green}0}20220800\boldsymbol{\color{red}8}000000\boldsymbol{\color{green}3}00\end{align*}$$ এখানেও, BIC 20220800 আসলে বিদ্যমান।