বিগইন্টিজারের .আইসপ্রোবেবলপ্রাইম () এর সম্ভাব্য ব্যবহারের ক্ষেত্রে কী?


84

পদ্ধতিটিBigInteger.isProbablePrime() বেশ অদ্ভুত; ডকুমেন্টেশন থেকে, এটি বলবে যে কোনও সংখ্যার সম্ভাবনার সম্ভাবনা রয়েছে 1 - 1 / 2^arg, যেখানে argপূর্ণসংখ্যার যুক্তি রয়েছে whether

এটি জেডিকেতে দীর্ঘকাল উপস্থিত রয়েছে, সুতরাং এর অর্থ এটি অবশ্যই ব্যবহার করা উচিত। কম্পিউটার বিজ্ঞান এবং অ্যালগরিদমগুলিতে আমার সীমিত জ্ঞান (এবং গণিত) আমাকে বলে যে একটি সংখ্যা "সম্ভবত" প্রধান কিন্তু সঠিক নয়, এটি জানতে আসলেই বোধগম্য হয় না।

সুতরাং, একটি সম্ভাব্য পরিস্থিতি কী যেখানে কেউ এই পদ্ধতিটি ব্যবহার করতে চান? ক্রিপ্টোগ্রাফি?



6
এছাড়াও, মিলার-রবিন আদিমতার পরীক্ষা । প্রধান সুবিধা গতি হয় । উদাহরণস্বরূপ, আপনি যখন ফ্যাক্টরিং প্রক্রিয়াটি ত্বরান্বিত করতে এই জাতীয় পরীক্ষা করতে পারেন তখন আপনি কারণগুলি পরীক্ষা করতে চান। আপনি এর "সম্ভবত" অংশটি বেশ কম রাখতে পারেন এবং এটি ব্যবহারে কার্যকর। তবে আমি একমত যে এটি কিছুটা নড়বড়ে এবং উদ্ভট, ভাসমানদের মতো।
কীজার

4
@ ম্যাক্সেক্স 7777 এটি দেওয়া - আমি প্রকৃত ব্যবহারের জন্য জিজ্ঞাসা করি
fge

4
আমি সত্যই
ডাউনটা

17
"এটি জেডিকেতে দীর্ঘদিন ধরে উপস্থিত ছিল, সুতরাং এর অর্থ এটি অবশ্যই ব্যবহার করা উচিত" " - বা এটি একটি অকেজো কারণের জন্য যুক্ত করা হয়েছিল, তারপরে সরানো হয়নি কারণ কোনও কিছুই কখনই সরানো হয় না।
ব্যবহারকারী 253751

উত্তর:


67

হ্যাঁ, এই পদ্ধতিটি ক্রিপ্টোগ্রাফিতে ব্যবহার করা যেতে পারে। আরএসএ এনক্রিপশন কখনও কখনও 1024 বিট (প্রায় 300 অঙ্ক) এর অর্ডারে বিশাল প্রধান সংখ্যাগুলি সন্ধানের সাথে জড়িত। আরএসএর সুরক্ষা নির্ভর করে যে এই সংখ্যার মূল সংখ্যাগুলির মধ্যে 2 টি একসাথে গুণিত করে এমন একটি সংখ্যার ফ্যাক্টরিং করা অত্যন্ত কঠিন এবং সময়সাপেক্ষ। তবে এটি কাজ করার জন্য তাদের অবশ্যই প্রধান হতে হবে।

দেখা যাচ্ছে যে এই সংখ্যাগুলি প্রাইম প্রমাণ করা খুব কঠিন। কিন্তু মিলার-রবিন প্রিমালটি টেস্ট , যেগুলির মধ্যে অন্যতম প্রাথমিক প্রয়োগ পরীক্ষা করে isProbablePrimeতা সনাক্ত করে যে কোনও সংখ্যা সংমিশ্রিত বা কোনও উপসংহার দেয় না। এই পরীক্ষার nসময়গুলি চালানো আপনাকে এই সিদ্ধান্তে পৌঁছাতে দেয় যে এখানে 2 টিতে 1 টির মতভেদ রয়েছে যে এই সংখ্যাটি সত্যই সংমিশ্রিত। এটি 100বার চালানোর ফলে 2 টির মধ্যে 1 100 টির গ্রহণযোগ্য ঝুঁকি পাওয়া যায় যে এই সংখ্যাটি যৌগিক।


4
@ মিঃ 777 R আমি একবার বা দু'বার রবিন-মিলারকে দেখেছি কিন্তু মিলার-রবিন দশকবার। যদিও অফিসিয়াল নাম আছে কিনা তা আমি নিশ্চিত নই।
কীজার

4
@ মি .777 আমি উপরে উল্লিখিত উইকিপিডিয়া পৃষ্ঠাটিতে প্রথমে "মিলার-রবিন" উল্লেখ করা হয়েছে, তবে দুটি নামই স্বীকার করে: "মিলার – রবিন আদিমত্ব পরীক্ষা বা রবিন – মিলার প্রাথমিকতা পরীক্ষা"।
rgettman

4
এর বাস্তবায়ন isProbablyPrime(যতদূর আমি বলতে পারি) সম্পূর্ণরূপে নির্বিচারবাদী। কীভাবে পরীক্ষার nসময় চালানো সঠিক ফলাফলের প্রতিকূলতাকে উন্নত করবে? (এটি যদি এলোমেলোতার উপাদানও ছিল তবে আপনার বর্ণনা অনুসারে ঝুঁকিকে প্রভাবিত করার জন্য একাধিক কলের এলোমেলো হওয়া প্রয়োজন))
টেড হপ

11
@ টেডহপ্প বাস্তবায়নটি এলোমেলো জেনারেটর ব্যবহার করে এবং একটি নতুন এলোমেলো সংখ্যাসহ প্রতিটি রাউন্ড একটি সংমিশ্রণ সনাক্ত করার 3/4 সুযোগ দেয়। ডিফল্ট জেনারেটরটি সিকিউরআর্যান্ডম, শক্তিশালী এলোমেলো গ্যারান্টি সহ।
সে অন্য লোক

4
এটি কঠিন হতে পারে, তবে মনে রাখবেন যে প্রাইমস পি-তে রয়েছে। একেএস পরীক্ষা মিলার-রবিনের চেয়ে ধীর হতে পারে তবে তাদের মধ্যে কোনও তাত্পর্যপূর্ণ পার্থক্য বা বহুবর্ষ নেই। আপনি সম্ভাব্য প্রাইমগুলির একগুচ্ছ সন্ধান করতে মিলার-রবিন ব্যবহার করতে পারেন এবং এ কেএস অবশ্যই প্রাইমস তা প্রমাণ করার জন্য ব্যবহার করতে পারেন।
বাকুরিউ

20

যদি পরীক্ষা আপনাকে বলে দেয় যে কোনও পূর্ণসংখ্যা প্রাথমিক নয় তবে আপনি অবশ্যই এটি 100% বিশ্বাস করতে পারবেন।

এটি কেবল প্রশ্নের অন্য দিক, যদি পরীক্ষা আপনাকে একটি পূর্ণসংখ্যা বলে দেয় "সম্ভাব্য প্রধান", যাতে আপনি সন্দেহ বজায় রাখতে পারেন। বিভিন্ন "ঘাঁটি" দিয়ে পরীক্ষার পুনরাবৃত্তিটি প্রাইমকে (একাধিক ঘাঁটির প্রতি শ্রদ্ধাশীল দৃ p় সিউডো প্রাইম হিসাবে) "নকল" করার ক্ষেত্রে মিথ্যাভাবে সফল হওয়ার সম্ভাবনাটিকে পছন্দসই হিসাবে ছোট করে তোলে।

পরীক্ষার উপযোগিতা তার গতি এবং সরলতার মধ্যে রয়েছে। এক অগত্যা একটি চূড়ান্ত উত্তর হিসাবে "সম্ভাব্য প্রধানমন্ত্রী" স্থিতি সন্তুষ্ট হবে না, কিন্তু এক স্পষ্টভাবে দ্বারা প্রায় সব যৌগিক সংখ্যা উপর কালক্ষেপ এড়াতে হবে primality পরীক্ষার বড় বন্দুক আনার আগে এই রুটিন ব্যবহার

সংখ্যার ফ্যাক্টরিংয়ের অসুবিধার সাথে তুলনা করা একটি লাল রঙের হারিংয়ের কিছু। এটি পরিচিত যে একটি পূর্ণসংখ্যার প্রাথমিকতা বহুবর্ষের সময় নির্ধারণ করা যেতে পারে, এবং প্রকৃতপক্ষে একটি প্রমাণ রয়েছে যে মিলার-রবিন পরীক্ষার পর্যাপ্ত পরিমাণে অনেকগুলি ভিত্তিতে বিস্তৃত হওয়া সুনির্দিষ্ট (সম্ভাব্য প্রাইমগুলির বিপরীতে প্রাইমগুলি সনাক্তকরণে) তবে এটি জেনারেলাইজড রিমন হাইপোথেসিসকে ধরে নিয়েছে, সুতরাং এটি (আরও ব্যয়বহুল) একেএস প্রিমিটিটি টেস্ট হিসাবে এতটা নিশ্চিত নয় ।


4
এটি লক্ষণীয় যে এ কেএস কেবলমাত্র আগস্ট ২০০২ সালে আবিষ্কার হয়েছিল, এই পদ্ধতিটি ফেব্রুয়ারী ২০০২ থেকে
জেডিকে রয়েছে

4
না, অপেক্ষা করুন, এটি ফেব্রুয়ারী 1997 থেকে probablePrimeisProbablePrime
জেডিকে রয়েছে

4
বস্তুত, আগরওয়াল, Kayal এবং সাক্সেনা এর 2002 কাগজ "primes পি তার" উপাধি প্রথম সংকেত নিঃশর্ত বহুপদী প্রমাণ (বিট দৈর্ঘ্যের এন নির্ণায়ক (সাধারণ পূর্ণসংখ্যা) primality পরীক্ষার জন্য জটিলতা)। মিলার (1975) দেখিয়েছিল যে, জিআরএইচ ধরে ধরে , একটি পূর্ণসংখ্যার দৈর্ঘ্যের বিট দৈর্ঘ্যের চতুর্থ শক্তির সমানুপাতিক পদক্ষেপগুলিতে নির্বিচারে পরীক্ষা করা যেতে পারে, এটি বর্তমানে একেএস বা এর রূপগুলির জন্য বেশি পরিচিত এক্সপোনেন্ট হিসাবে।
হার্ডম্যাথ

একেএসটি অসম্পূর্ণভাবে দ্রুত হলেও ইসিপিপির মতো পদ্ধতিগুলি 'ক্রিপ্টোগ্রাফিক' বা 'শিল্প' প্রাইমগুলির জন্য আরও বেশি দক্ষ হবে।
ব্রেট হেল

4
একেএস অত্যন্ত ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে রয়েছে এবং এটি জিওলজিকাল স্কেল টাইমে গণনাযোগ্য কোনও সংখ্যার জন্য এপিআর-সিএল এর চেয়ে দ্রুততর হবে না human এপিআর-সিএল এবং ইসিপিপি ইতিমধ্যে 1997 সালে ছিল Bret ব্রেটের যেমন উল্লেখ করা হয়েছে, আমরা প্রমাণ চাইলে ইসিপিপি একটি ভাল পছন্দ। এই সমস্তগুলি সম্ভাব্য প্রাথমিক পদ্ধতিগুলির (যেমন এমআর, বিপিএসডাব্লু, ফ্রোবেনিয়াস) তুলনায় ধীরে ধীরে।
দানাজে

19

এর জন্য স্ট্যান্ডার্ড ব্যবহারের ক্ষেত্রে BigInteger.isProbablePrime(int)ক্রিপ্টোগ্রাফি ography বিশেষত, কিছু ক্রিপ্টোগ্রাফিক অ্যালগরিদম, যেমন আরএসএ এর জন্য এলোমেলোভাবে নির্বাচিত বড় প্রাইমগুলির প্রয়োজন। গুরুত্বপূর্ণভাবে, তবে, এই অ্যালগোরিদমগুলিতে এই সংখ্যাগুলি প্রাইম হওয়ার গ্যারান্টিযুক্ত হওয়ার দরকার নেই - এগুলি কেবল খুব উচ্চ সম্ভাবনার সাথে প্রাইম হওয়া দরকার ।

খুব উঁচুতে কত? ঠিক আছে, একটি ক্রিপ্টো অ্যাপ্লিকেশনটিতে, কেউ সাধারণত .isProbablePrime()128 এবং 256 এর মধ্যে কোথাও একটি যুক্তি দিয়ে কল করতে পারে Thus সুতরাং, এই জাতীয় পরীক্ষায় উত্তীর্ণ অ-মৌলিক সংখ্যাটির সম্ভাবনা 2 128 বা 2 256 এর মধ্যে একটিরও কম ।

এই দৃষ্টিকোণে রাখি: যদি আপনার 10 বিলিয়ন কম্পিউটার থাকে, প্রতি সেকেন্ডে 10 বিলিয়ন সম্ভাব্য প্রাথমিক সংখ্যা উত্পন্ন হয় (যার অর্থ কোনও আধুনিক সিপিইউতে সংখ্যার চেয়ে এক ঘড়ি চক্র কম হবে), এবং সেই সংখ্যার আদিত্ব পরীক্ষা করা হয়েছিল .isProbablePrime(128), আপনি , প্রতি ১০০ বিলিয়ন বছরে গড়ে একটি অ-মৌলিক সংখ্যা একবারে পিছলে যাওয়ার আশা করবে ?

এটি হ'ল, যদি সেই 10 বিলিয়ন কম্পিউটারগুলি কোনওরকম কোনও হার্ডওয়্যার ব্যর্থতা না দেখে শত শত বিলিয়ন বছর ধরে চালাতে পারে । বাস্তবে, যদিও, এটি একটি অনেক সম্ভাবনা বেশি একটি র্যান্ডম মহাজাগতিক রশ্মি জন্য শুধু অধিকার সময় এবং ফেরত মান টুসকি স্থানে আপনার কম্পিউটারে ধর্মঘট এর এর .isProbablePrime(128)অন্য কোন নির্ধারণযোগ্য প্রভাব ঘটাচ্ছে ছাড়া, মিথ্যা থেকে সত্যতে চেয়ে এটি একটি অ জন্য হয় -প্রাইম নম্বরটি সেই সম্ভাব্যতা স্তরে সম্ভবত সম্ভাব্য প্রাথমিক পরীক্ষায় উত্তীর্ণ হয়।

অবশ্যই, এলোমেলোভাবে মহাজাগতিক রশ্মি এবং অন্যান্য হার্ডওয়্যার ত্রুটিগুলির একই ঝুঁকিটি একেএসের মতো ডিটারমিনিস্টিক প্রিমিটিলিটি পরীক্ষায়ও প্রযোজ্য । সুতরাং, বাস্তবে, এমনকি এই পরীক্ষাগুলিতে এলোমেলো হার্ডওয়্যার ব্যর্থতার কারণে ত্রুটির অন্যান্য সম্ভাব্য উত্সগুলি যেমন: প্রয়োগের বাগগুলি উল্লেখ না করা) কারণে একটি (খুব ছোট) বেসলাইন ভুয়া ইতিবাচক হার রয়েছে।

যেহেতু মিলার – রবিন.isProbablePrime() প্রাথমিক পরীক্ষার অভ্যন্তরীণ ভ্রান্ত ইতিবাচক হারটিকে সহজেই এই বেসলাইন রেটের নীচে ব্যবহার করা সহজ করা যায়, কেবলমাত্র পরীক্ষাকে যথেষ্ট পরিমাণে পুনরাবৃত্তি করে এবং যেহেতু, মিলার – রবিন পরীক্ষা এখনও রয়েছে একেএসের মতো সর্বাধিক পরিচিত ডিটারমিনিস্টিক প্রিমালটি টেস্টের তুলনায় অনুশীলনে অনেক দ্রুত, এটি ক্রিপ্টোগ্রাফিক অ্যাপ্লিকেশনগুলির জন্য স্ট্যান্ডার্ড প্রাথমিকতা পরীক্ষা হিসাবে রয়ে গেছে।

(তদ্ব্যতীত, যদি আপনি দুর্ঘটনাক্রমে আপনার আরএসএ মডুলাসের অন্যতম কারণ হিসাবে শক্তিশালী সিউডোপ্রাইম নির্বাচন করেন তবে এটি সাধারণত একটি বিপর্যয়কর ব্যর্থতার কারণ হতে পারে না Typ অর্ধ দৈর্ঘ্যের, যার অর্থ হল আপনি একাধিক-প্রাইম আরএসএ কী দিয়ে শেষ করেছেন As যতক্ষণ পর্যন্ত কোনও কারণই খুব ছোট ছিল না (এবং যদি সেগুলি হয় তবে প্রাথমিকতা পরীক্ষাটি তাদের ধরা উচিত ছিল), আরএসএ অ্যালগরিদম হবে এখনও ঠিক ঠিক কাজ করে এবং কীটি একই দৈর্ঘ্যের সাধারণ আরএসএ কীগুলির তুলনায় কিছু ধরণের আক্রমণগুলির তুলনায় কিছুটা দুর্বল হলেও আপনি কী দৈর্ঘ্যে অপ্রয়োজনীয়ভাবে স্ক্যামিং না করলে অবশ্যই যুক্তিসঙ্গত সুরক্ষিত হওয়া উচিত))


ফল্ট ইস্যু হ'ল এক কারণ যা আসলে একেএস ব্যবহার করা হয়নি (আশ্চর্যরকম ধীর গতি অন্যটি), এবং ইসিপিপি বেশি সাধারণ। আপনি যেমন লক্ষ করেছেন, অ্যালগরিদমে বাস্তবায়ন ত্রুটিগুলি যথেষ্ট সম্ভব, তাই স্বতন্ত্র কোডের সাথে শংসাপত্র যাচাই করা সহায়ক।
দানাজে

8

একটি সম্ভাব্য ব্যবহারের ক্ষেত্রে প্রদত্ত সংখ্যার প্রাথমিকতা পরীক্ষা করা হয় (পরীক্ষায় যা নিজে নিজেই অনেকগুলি ব্যবহার করে)। isProbablePrimeঅ্যালগরিদম অনেক দ্রুত একটি সঠিক অ্যালগরিদম তুলনায় চালানো হবে, তাই যদি সংখ্যা ব্যর্থ isProbablePrime, তারপর এক প্রয়োজন আরো ব্যয়বহুল অ্যালগরিদম চলমান ব্যয় যাবে না।


তাহলে, তা কি বাস্তবতার জন্য? এবং এই কারণে যে প্রাইম ফ্যাক্টরাইজেশন একটি এনপি সমস্যা?
fge

@fge - হ্যাঁ, আমি প্রস্তাবিত ব্যবহারের ক্ষেত্রে ব্যবহারিকতার জন্য। আমি জানি না যে এটি প্রাথমিক ফ্যাক্টরীকরণের সাথে সহায়তা করে যা প্রাথমিকত্ব পরীক্ষা করার চেয়ে উল্লেখযোগ্যভাবে আরও কঠিন সমস্যা। পরবর্তীকালের জন্য, বহু-কালীন অ্যালগরিদম রয়েছে: একেএস প্রিমিটিটি পরীক্ষা
টেড হপ

4
@ ফিজ: ফ্যাক্টরাইজেশন প্রকৃতপক্ষে এনপি-তে রয়েছে তবে আমার সন্দেহ হয় যে আপনি "এনপি-সম্পূর্ণ" বলতে চেয়েছিলেন, যা অনুকরণীয় হিসাবে জানা যায়নি । বিপরীতে এটি এনপি-হার্ড না হওয়ার বিষয়ে দৃ strongly় সন্দেহ রয়েছে ।
এইচএমখোলম

6

খোঁজা সম্ভাব্য মৌলিক ক্রিপ্টোগ্রাফি একটি গুরুত্বপূর্ণ সমস্যা। দেখা যাচ্ছে যে সম্ভাব্য কে-বিট প্রাইম সন্ধানের জন্য যুক্তিসঙ্গত কৌশল হ'ল বারবার একটি এলোমেলো কে-বিট নম্বর নির্বাচন করা এবং এর মতো পদ্ধতি ব্যবহার করে সম্ভাব্য আদিমতার জন্য এটি পরীক্ষা করা isProbablePrime()

আরও আলোচনার জন্য, প্রয়োগকৃত ক্রিপ্টোগ্রাফির হ্যান্ডবুকের বিভাগ 4.4.1 দেখুন ।

আরো দেখুন ক্রমবর্ধমান অনুসন্ধানে সম্ভাব্য মৌলিক সংখ্যার প্রজন্মের উপর Brandt এবং Damgård দ্বারা।


5

আরএসএ কী প্রজন্মের মতো অ্যালগরিদম কোনও সংখ্যা প্রধান কিনা তা নির্ধারণ করতে সক্ষম হওয়ার উপর নির্ভর করে।

যাইহোক, isProbablePrimeজেডিকে (ফেব্রুয়ারী 1997) এ পদ্ধতিটি যুক্ত হওয়ার সময় , কোনও সংখ্যক যুক্তিসঙ্গত পরিমাণে প্রধান ছিল কিনা তা নির্বিচারে সিদ্ধান্ত নেওয়ার কোনও প্রমাণিত উপায় ছিল না। তত্কালীন সর্বাধিক পরিচিত পদ্ধতিটি ছিল মিলার-রবিন অ্যালগরিদম - একটি সম্ভাব্য অ্যালগরিদম যা কখনও কখনও মিথ্যা ধনাত্মকতা দেয় (অর্থাত্ প্রাইম হিসাবে নন-প্রাইম হিসাবে রিপোর্ট করবে), তবে ব্যয় করে মিথ্যা ধনাত্মক হওয়ার সম্ভাবনা হ্রাস করার জন্য সুর করা যেতে পারে রানটাইমে বিনয়ী বৃদ্ধি।

তার পর থেকে, অ্যালগরিদমগুলি আবিষ্কার করা গেছে যা সংখ্যার ভিত্তিতে দ্রুত অগ্রগতিশীল কিনা তা যেমন নির্ধারিতভাবে সিদ্ধান্ত নিতে পারে যেমন ২০০২ সালের আগস্টে একেএস অ্যালগরিদম আবিষ্কৃত হয়েছিল। তবে, এটি লক্ষ করা উচিত যে এই অ্যালগোরিদমগুলি এখনও মিলার-রবিনের মতো দ্রুত নয়।

সম্ভবত আরও ভাল প্রশ্ন হ'ল কেন isPrime২০০২ সাল থেকে জেডিকে কোনও পদ্ধতি যুক্ত করা হয়নি।


Theতিহাসিক দৃষ্টিভঙ্গির জন্য ধন্যবাদ! দেখে মনে হচ্ছে @ জমিদারের জিমকে কিন্তু কখনোই সরানো হয়নি "এই মন্তব্যটি সহ মিম্বিস সঠিক পথে ছিল? :)
fge

4
আমি জানি জাভা বিখ্যাতভাবে কখনও স্ট্যান্ডার্ড লাইব্রেরি থেকে জিনিসগুলি সরিয়ে দেয় না, তবে আমি নিশ্চিত নই যে তারা এগুলি সরিয়ে ফেলতে পারলেও তারা তা সরিয়ে ফেলবে। কিছু অ্যাপ্লিকেশনগুলির জন্য, 99.999999999% নিশ্চিত হওয়া নিশ্চিত যে কোনও কিছুর মূল যথেষ্ট ভাল, এবং 100% নিশ্চিত হওয়ার চেয়ে অনেক দ্রুত is
জেমস_পিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.