জিপিআইও পিন ব্যবহার করে এলোমেলো নম্বর জেনারেটর?


22

আমি কেবল এভিআর এলোমেলো সংখ্যা জেনারেটর প্রশ্নের মাধ্যমে পড়েছি এবং একটি এভিআর এলোমেলো বীজ উত্পাদন করার বিভিন্ন উপায়ের মুখোমুখি হয়েছি:

  • একটি বিশেষ উদ্দেশ্য "সুরক্ষিত AVR" ব্যবহার করুন
  • অভ্যন্তরীণ তাপমাত্রা সেন্সর ব্যবহার করুন
  • অলিখিত EEPROM পড়ুন
  • ব্যবহারকারীর ইনপুটগুলির মধ্যে সময়ের ব্যবধানগুলি পরিমাপ করুন
  • ভাসমান এডিসি পিন ব্যবহার করুন।

কেন কেবল একটি একক ডিজিটাল পিন নয়, টান আপ এবং ভাসমান ছাড়াই ইনপুট হিসাবে কনফিগার করা আছে? তত্ত্ব অনুসারে যা এলোমেলো বিটের একটি স্ট্রিম উত্পন্ন করা উচিত। কেন এটি ব্যবহার করবেন না? রাজ্য কি খুব আস্তে আস্তে বদলে যাচ্ছে? এটি 1 বা 0 এ আটকে থাকে? অন্য কোন সমস্যা?


1
নিরাপদ এভিআর মারা গেছে
আফাইক

1
লিখিত এপ্রোম কি সর্বদা 0xFF নয়?
বনাম

@vsz, আপনি যদি এটিতে কিছু লিখেন এবং যা লিখেছিলেন তা ভুলে গেলে, এটি এখন "এলোমেলো"। হাঃ হাঃ হাঃ.
ভোরাক

উত্তর:


5

"এলোমেলো" একটি কৃপণ শব্দ is কিছু প্রসঙ্গে, এর অর্থ সহজেই "অনির্দেশ্য", তবে অন্যান্য প্রসঙ্গে - বিশেষত, সংকেত প্রক্রিয়াকরণ এবং ক্রিপ্টোগ্রাফির সাথে সম্পর্কিত - এর অর্থ "পরিসংখ্যানহীনভাবে অসংগঠিত"।

এমনকি যদি ভাসমান পিন থেকে পঠিত মান অপ্রত্যাশিত (প্রথম অর্থে "এলোমেলো") হয় তবে এটি দ্বিতীয় অর্থে কার্যকর হওয়ার সম্ভাবনাও নেই।


15

ডিজিটাল ইনপুট এবং একটি অ্যানালগ ব্যবহারের মধ্যে স্ব-স্পষ্ট পার্থক্যটি হ'ল এনালগটিতে বীজের মূল্যবোধের বৃহত্তর পরিমাণ থাকতে পারে।

দ্বিতীয়ত, তবে সম্ভবত আরও গুরুতর: ডিজিটাল পিনের ভাসমান "মিডিয়ান" মানটি যদি যুক্তিযুক্ত জ্ঞানের স্তরগুলির (যা পাওয়ার এবং গ্রাউন্ড রেল স্তর নয় তবে ইনপুট সার্কিটরির জন্য চৌম্বকটি স্যুইচিং করে) এর মাঝামাঝি না হয় তবে ফলস্বরূপ বিট স্ট্রিমটি একটি হবে 1 বা 0 এর দিকে শক্ত পক্ষপাত! এই পক্ষপাতটি বীজগুলিকে এনালগ স্তরের স্কিউয়ের চেয়ে অনেক বেশি দৃ strongly়ভাবে স্কিউ করে।

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


14

একটি ভাসমান ইনপুট নির্ধারিত। এটি আপনাকে এলোমেলো বিট দিতে পারে তবে এটি 0 বা 1 এ আটকে যেতে পারে Most বেশিরভাগ সময় এটি আটকে যাবে। এবং যখন এটি সত্যিকারের ভাসমান হয়, এটি সিস্টেমের শব্দ এবং বিদ্যুতের ব্যবহারকে বাড়িয়ে দিতে পারে। ইনপুটগুলি কোনও কিছুর জন্য ব্যবহার করা হচ্ছে না এমনকী ভাসমান ইনপুটগুলি সাধারণত একটি খারাপ জিনিস।


এটি কেবল বেশিরভাগ সময় 0 বা 1 এ আটকে যাবে না, তবে যদি না ইনপুট বাফারের প্রথম পর্যায়ে তৈরি হওয়া দুটি ট্রানজিস্টর যথাযথভাবে ভারসাম্যহীন হয় বা পথে বা অন্য কোনও বাহ্যিক উত্স থাকে না, তবে ইনপুটটি ভাসমান হবে অবশেষে একটি 1 বা নীচে 0 পর্যন্ত।
wjl

9

সবচেয়ে সহজ সমাধানটি হ'ল একটি অপব্যবহৃত ওপেন-কালেক্টর ট্রানজিস্টার সার্কিটের বাইরে একটি হার্ডওয়্যার র্যান্ডম সিগন্যাল জেনারেটর সার্কিট তৈরি করা। মাইক্রো-কন্ট্রোলারের একটি ইনপুটটিতে বিট-স্ট্রিম আউটপুট ব্যবহার করুন। বিরতিতে আগত বিটগুলির নমুনা করুন। মোটামুটি এমনকি 1 এবং 0 এর সংখ্যার সংখ্যা নিশ্চিত করতে, কেবল রাজ্যের পরিবর্তনকে 1 হিসাবে এবং কোনও পরিবর্তনকে শূন্য হিসাবে ব্যবহার করুন। আরও তথ্যের জন্য ট্রানজিস্টর শব্দ জেনারেটরের জন্য গুগল।


মজাদার. "অপব্যবহারকৃত ওপেন-কালেক্টর ট্রানজিস্টর সার্কিট" দেখতে কেমন?
স্টিফেন কলিংস

7
@ রেমিয়েল - আপনি ট্রানজিস্টরের বেস-ইমিটার জংশনটি বিপরীত পক্ষপাতিত্ব করেন এবং এটি সত্যই ক্রেপি জেনারের মতো কাজ করে। আপনি খুব গোলমাল জেনার নিয়ে যান এবং এলোমেলো বিটস্ট্রিম পেতে আপনি আওয়াজকে প্রশস্ত করেন। Robseward.com/misc/RNG2
কনার ওল্ফ

3

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

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

মার্সেন টুইস্টার http://en.wikedia.org/wiki/Mersenne_twister

এটি যদিও ক্রিপ্টোগ্রাফিকভাবে সুরক্ষিত তবে কোনওটিই নয় তবে বেশিরভাগ কারণে এটি যথেষ্ট ভাল।


রেফারেন্স পূর্ববর্তী প্রশ্নে এমএসপি ৪৩০ অ্যাপ নোটটিতে নেওয়া সেই পদ্ধতিটি, আমার জ্ঞানের কাছে এভিআর ক্লক সিস্টেমটি এই কৌশলটি সমর্থন করে না
ভিস্যাটাকু

সঠিক। এটি সরাসরি সমর্থিত না হওয়া সত্ত্বেও একই ঘড়ির উত্স দিয়ে এটি করা সম্ভব হবে।
গুস্তাভো লিটোভস্কি

3

একটি এলোমেলো বীজের গুণমান এবং এর অ্যালগরিদম প্রতিটি এলোমেলো বিট এন্ট্রপি বা অনিশ্চয়তার পরিমাণ দ্বারা নির্ধারিত হয়। তারপরে একটি বীজের সেরা জেনারেটর কম এনট্রপির অনেক ধাপের চেয়ে খুব কম পদক্ষেপ সহ উচ্চ এনট্রপি ব্যবহার করে।

উচ্চ এন্ট্রপির একটি ভাল উদাহরণ একটি এলোমেলো বীজের জন্য লাতিন স্কোয়ার পদ্ধতি ব্যবহার করে।

ভাসমান ইনপুট সহজেই ত্রুটিগুলি, ফুটো বা প্রবেশের শব্দ দ্বারা পক্ষপাতিত হয়।


0

একটি পিক 18 এফ মাইক্রোপ্রসেসরে আপনার এলোমেলো সংখ্যার জন্য বীজ থাকা দরকার। বীজ 0 থেকে 32767 (15 বিট) পর্যন্ত কিছু হতে পারে। আমি আপনাকে প্রোগ্রামের শুরুতে পরামর্শ দেব আপনি একটি পিন এবং অ্যানালগ ইনপুট পিন তৈরি করুন। এই পিনটি পড়ুন এবং সর্বনিম্ন গুরুত্বপূর্ণ বিটটি নিন এবং এটি একটি 16 বিটের ভেরিয়েবলের মধ্যে রাখুন। তারপরে ভেরিয়েবলটি 1 দিয়ে বামে স্থানান্তর করুন by আবার পিনটি পড়ুন এবং ADC ফলাফলের এলএসবি রাখুন ভেরিয়েবলের প্রথম বিটটিতে আপনি শেষ বিটটি সংরক্ষণ করেছিলেন left আবার বাম দিকে শিফট করুন .....

আপনার ভেরিয়েবলে 15 বিট না হওয়া পর্যন্ত এটি পুনরাবৃত্তি করুন। এটি আপনার বীজের মধ্যে লাগাতে হবে এমন নম্বর।

আপনি এটি করার পরে, আপনি সহজেই অ্যানালগ ইনপুট পিনটি ডিজিটাল ইনপুট পিন তৈরি করতে এবং এটিতে একটি দুর্বল টান সক্ষম করতে বা এটি একটি ডিজিটাল আউটপুট পিন হিসাবে তৈরি করতে পারেন। হয় কেউ এই পিনটি ভাসমান থেকে থামিয়ে দেবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.