जब प्राइम नंबर का उपयोग किया जाता है तो इसका कारण टकराव को कम करना होता है जब डेटा कुछ विशेष पैटर्न प्रदर्शित करता है।
पहली चीजें पहले: यदि डेटा यादृच्छिक है तो प्राइम नंबर की कोई आवश्यकता नहीं है, आप किसी भी संख्या के खिलाफ एक मॉड ऑपरेशन कर सकते हैं और आपके पास मापांक के प्रत्येक संभावित मूल्य के लिए समान संख्या में टकराव होंगे।
लेकिन जब डेटा यादृच्छिक नहीं होता है तो अजीब चीजें होती हैं। उदाहरण के लिए संख्यात्मक डेटा पर विचार करें जो हमेशा 10 का गुणक होता है।
यदि हम mod 4 का उपयोग करते हैं तो हम पाते हैं:
10 मॉड 4 = 2
20 मॉड 4 = 0
30 मॉड 4 = 2
40 मॉड 4 = 0
50 मॉड 4 = 2
इसलिए मापांक के 3 संभावित मानों (0,1,2,3) से केवल 0 और 2 में टकराव होगा, यह बुरा है।
अगर हम 7 जैसी एक अभाज्य संख्या का उपयोग करते हैं:
10 मॉड 7 = 3
20 आधुनिक 7 = 6
30 मॉड 7 = 2
40 मॉड 7 = 4
50 मॉड 7 = 1
आदि
हम यह भी ध्यान देते हैं कि 5 एक अच्छा विकल्प नहीं है, लेकिन 5 प्रमुख कारण यह है कि हमारी सभी चाबियाँ 5 से अधिक हैं। इसका मतलब है कि हमें एक अभाज्य संख्या चुननी होगी, जो हमारी कुंजियों को विभाजित न करे, एक बड़ी अभाज्य संख्या का चयन करना है। आमतौर पर पर्याप्त है।
तो पुनरावृत्ति होने के पक्ष में ग़लती के कारण अभाज्य संख्याओं का उपयोग होता है, जो हैश फ़ंक्शन के टकरावों के वितरण में कुंजियों में पैटर्न के प्रभाव को बेअसर करता है।