এত দ্রুত এফডিই (ফুল ডিস্ক এনক্রিপশন) কীভাবে কাজ করবে?


13

আমি উদ্বিগ্ন যে উবুন্টুর ফুল ডিস্ক এনক্রিপশন হুডের নীচে কীভাবে কাজ করে। এখানে একটি উদাহরণ:

নিম্নলিখিত স্ট্রিংটিকে ডিস্কের সমস্ত সামগ্রী হিসাবে বিবেচনা করা হচ্ছে:

hello world

কিছু প্রকারের এনক্রিপশন পদ্ধতি প্রয়োগ করার পরে এটি দেখতে এরকম কিছু লাগবে:
(আমি উদাহরণস্বরূপ সি + সিফার +1 এর শিফ্ট ব্যবহার করেছি, উদাহরণস্বরূপ এ → বি; বি → সি ...)

ifmmp xpsme

আমি যেমন বুঝতে পারি, কম্পিউটারটি যখন বন্ধ থাকে, তখন ড্রাইভের সামগ্রীটি উপরের স্ট্রিংটি হয়ে থাকে। কিন্তু যখন এটি আবার চালু করা হয়, hello worldসফলভাবে বুট করার জন্য উবুন্টুকে তার সামগ্রীটি আবার ফিরে আসা দরকার ।

আমি আসলে যা পাই না তা হ'ল বাস্তব জগতে ডিস্কের বিষয়বস্তু অনেক বেশি এবং এনক্রিপশন অ্যালগরিদম উপায় আরও জটিল এবং আমি কম্পিউটারকে কয়েক সেকেন্ডের মধ্যে সমস্ত কিছু সম্পূর্ণরূপে এনক্রিপ্ট / ডিক্রিপ্ট করতে অসুবিধে করি find (বুট করতে বা বন্ধ করতে বেশি সময় লাগে না)।

এটা কিভাবে সম্ভব?

উত্তর:


10

কীভাবে এএস / রিজান্ডেল এনক্রিপশন সাধারণ কাজ করে?

এই পৃষ্ঠায় মজাদার অ্যাডভান্সড এনক্রিপশন স্ট্যান্ডার্ড (এইএস) এর একটি স্টিক চিত্র গাইড যা বুঝতে সহজ মনে হচ্ছে, যদিও এটি 50+ ইমেজ বলে মনে হচ্ছে, উদাহরণস্বরূপ এই দুটি:

এখানে চিত্র বর্ণনা লিখুন

এবং

এখানে চিত্র বর্ণনা লিখুন

এটি এখানে সমস্তই সদৃশ করার পক্ষে অনেক বেশি, তবে আপনার যদি একটি সমস্ত-ইন-ওয়ান চিত্র থাকতে হয় তবে এটি এটি:

এখানে চিত্র বর্ণনা লিখুন


বা, এখানে আরও কমপ্যাক্ট ব্যাখ্যা রয়েছে http://www.password-depot.com/ blowfish_and_rijndael.htm

রিজান্ডেল এনক্রিপশন পদ্ধতিটি বাইটগুলিতে জোর অপারেশনগুলি প্রতিস্থাপন, পরিবর্তন এবং সম্পাদনের উপর ভিত্তি করে। পদ্ধতিটি দেখতে এটির মতো দেখাচ্ছে:

  • 128-বিট কী থেকে, রিজান্ডেল প্রতিটি 128 বিটের 10 টি উত্পন্ন করে।
  • এই কীগুলি 4x4 অ্যারেতে স্থাপন করা হয়েছে।
  • সরল পাঠ্যটি 4x4 অ্যারেতেও বিভক্ত করা হয় (প্রতিটি 128 বিট)।
  • 128-বিট প্লেইন-পাঠ্য আইটেমগুলির প্রত্যেকটি 10 ​​রাউন্ডে (128-বিট-কীগুলির জন্য 10 রাউন্ড, 192 এর জন্য 12, 256 এর জন্য 14) প্রসেস করা হয়।
  • দশম রাউন্ডের পরে কোডটি উত্পন্ন হয়।
  • প্রতিটি একক বাইট একটি এস বাক্সে প্রতিস্থাপিত হয় এবং জিএফ (2 8) এর পারস্পরিক প্রতিস্থাপন দ্বারা প্রতিস্থাপিত হয়।
  • তারপরে একটি বিট-ওয়াইজ মডুলো -2 ম্যাট্রিক্স প্রয়োগ করা হবে, তার পরে 63 দিয়ে একটি এক্সওআর অপারেশন করা হবে।
  • ম্যাট্রিকগুলির লাইনগুলি চক্রাকারে বাছাই করা হয়।
  • ম্যাট্রিক্সের গুণকের কলামগুলি জিএফ (2 8) এ পরিবর্তিত হয়।
  • প্রতিটি রাউন্ডের সাবকিগুলি একটি এক্সওআর ক্রিয়াকলাপের শিকার হয়।

এই এনক্রিপশন পদ্ধতির সুরক্ষা স্তরটি বৃদ্ধি পায় যদি রিজান্ডেল বিভিন্ন সাবকি দিয়ে কয়েকবার সঞ্চালিত হয়।


উবুন্টুর ফুল ডিস্ক এনক্রিপশন কীভাবে কাজ করে?

আমি বিশ্বাস করি এটি LUKS (AES এর সাথে ডিফল্ট সেটিংস) এর সাথে একটি পার্টিশন এনক্রিপ্ট করে কাজ করে এবং তারপরে এটিতে কিছু ভলিউম LVM (যেমন /, অদলবদল) এর সাহায্যে রাখে এবং আপনি পাসফ্রেজ প্রবেশের পরে ডিক্রিপ্টগুলি এবং বুটে এগুলিকে মাউন্ট করে। এবং একটি নিয়মিত (এনক্রিপ্ট করা নয়) বুট পার্টিশন রয়েছে যা পাসফ্রেজ জিজ্ঞাসা করার জন্য যথেষ্ট বুট করে।

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


এনক্রিপশন কত দ্রুত?

আপনি যদি cryptsetup benchmarkএটি চালনা করেন তবে পরীক্ষা চালানো হবে এবং একা এনক্রিপশনটি কীভাবে দ্রুত নেয় সে সম্পর্কে আপনাকে জানায়, (বর্তমানে) ডিফল্ট এসেস-এক্সটিস লাইনগুলি দেখুন:

#  Algorithm | Key |  Encryption |  Decryption
     aes-xts   256b    150.0 MiB/s    145.0 MiB/s

গড় হার্ড ড্রাইভের পড়ার গতি 80-160 এমবি / সেকেন্ড হতে পারে, সুতরাং আপনি নিয়মিত পড়ার চেয়ে বেশি দীর্ঘ হতে পারবেন না এবং আপনি এখনও অপেক্ষা করতে থাকা অবস্থায় কেবলমাত্র পঠিত খাতগুলি ইতিমধ্যে ডিক্রিপ্ট করা সম্ভব হয়েছে it's আরও পড়তে হার্ড ড্রাইভ

একটি এসএসডি সম্ভবত 200-550 এমবি / গুলি দ্রুততর হতে পারে , তাই আপনি এটি লক্ষ্য করতে পারেন। তবে, এলোমেলো পড়াগুলি ধীর হতে পারে এবং আমি পড়েছি যে এসএসডি গতি ব্যবহারের পরে ধীর হয়ে যেতে পারে (সম্ভবত যখন ড্রাইভটি পুরোপুরি পূর্ণ হয় এবং এটি "মুছে ফেলা" সেক্টর শুরু করতে পারে?)

কীভাবে কম্পিউটার কেবল কয়েক সেকেন্ডের মধ্যে সমস্ত ড্রাইভের সম্পূর্ণ এনক্রিপ্ট / ডিক্রিপ্ট করতে পারে (বুট করতে বা শাট ডাউন করতে বেশি সময় নেয় না)?

এটি প্রথমে সবকিছু ডিক্রিপ্ট করতে হবে না। এনক্রিপশন (LUKS) ডেটা ব্লকে কাজ করে , যেকোন ব্লককে এলোমেলোভাবে ডিক্রিপ্ট করতে পারে এবং ড্রাইভের এনক্রিপ্ট করা ডেটা এবং ফাইলসিস্টেম যা দেখায় তার মধ্যে একটি স্তরের মতো কাজ করে।

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

ঠিক যেমন কোনও নিয়মিত ফাইল সিস্টেমের মতো কোনও ফাইল পড়ার জন্য পুরো ড্রাইভটি পড়ার দরকার নেই, যখন এনক্রিপশন যুক্ত করা হয় তখন এটি পুরো ড্রাইভটি পড়ার প্রয়োজন হয় না এবং এটি জিনিসগুলিকে অনেক ধীর করে দেয় না ।

হার্ড ড্রাইভে থাকা ডেটা সবসময় এনক্রিপ্ট থাকে তাই কীটি ভুলে যাওয়া ছাড়া শাটডাউন করার কিছুই নেই।


@ হিউবট আমি ফাইল এবং ব্লকগুলির জন্য ডিক্রিপশন গতির বিষয়ে কিছু তথ্য (নীচে) যুক্ত করেছি, যেহেতু আপনার প্রশ্নটির শিরোনাম "এত তাড়াতাড়ি" যুক্ত করার জন্য সম্পাদনা করা হয়েছিল ? (আপনি কি জিজ্ঞাসা করতে চেয়েছিলেন শিরোনাম এখনও কি?)
Xen2050

3

এটি কিছুটা সরলকরণ হবে তবে আমি একটি এনক্রিপ্ট করা ফাইল সিস্টেমে কোনও ফাইল অ্যাক্সেস করার প্রক্রিয়াটি অনুসরণ করার চেষ্টা করব।

উদাহরণস্বরূপ, আসুন একটি ফাইল টেবিল আছে এনক্রিপ্ট করা ফাইল সিস্টেমের শুরু বলি; আসুন আমরা বলতে চাই যে আমরা পড়তে চাই /foo.bar। সুতরাং, আমরা প্রথমে যা করি তা হ'ল পার্টিশনের শুরুটি পড়ুন, এটি ডিক্রিপ্ট করুন এবং আমাদের যে ফাইলটি চান সেটি অনুসন্ধান করুন; আসুন এটি বলে যে ফাইলটি 0x10000000 বাইটে শুরু হয়। সুতরাং পড়তে, আমরা সেই জায়গা থেকে ডিস্ক থেকে পড়া এবং এটি ডিক্রিপ্ট করা শুরু করি; একইভাবে, লিখতে, আমরা নতুন সামগ্রীগুলি এনক্রিপ্ট করতে পারি এবং সেগুলি সেই নতুন জায়গায় লিখতে পারি।

আশা করি এটি প্রক্রিয়া সম্পর্কে যে কোনও বিভ্রান্তি দূর করতে সহায়তা করবে।


1
আমি মনে করি এটিই উত্তর যা আসলে ওপি-র প্রশ্নের উত্তর দেয় - তার / তার ভ্রান্ত ধারণাটি হ'ল এটি পুরো ড্রাইভকে পুরোপুরি এনক্রিপ্ট / ডিক্রিপ্ট করতে হবে, কেবল যে বিটগুলি ব্যবহার করা হয় সেভাবে পড়ে / লিখিত হয় না।
উইমিসোমোয়ারসোহোয়ারসোপার্সসমনসিকা 1'16

2

প্রসেসর নিবেদিত নির্দেশ সেট ব্যবহার করে। এটি কারণেই এটি সম্ভব, এইএস-এনআই । এটি দ্রুত এনক্রিপশন এবং ডিক্রিপশন সক্ষম করে অথবা আপনি বলতে পারেন যে এটি ওভারহেড কেটে দেয়। এটি দ্রুত কারণ এটি হার্ডওয়্যার বাস্তবায়ন, এখানে বর্ণিত ।

আপনি এখানে পারফরম্যান্সের প্রভাব সম্পর্কে চেক করতে পারেন এবং এটি অতিরিক্ত সুরক্ষার জন্য উপযুক্ত।


1
এছাড়াও, ডিস্কের ডেটা কেবল প্রয়োজন অনুসারে এনক্রিপ্ট / ডিক্রিপ্ট করা হয়; উদাহরণস্বরূপ, বুটে, কেবল স্টার্টআপ স্ক্রিপ্টগুলি, ব্যবহারকারীর তথ্য, ডিএম / ডাব্লুইই এক্সিকিউটেবলস ইত্যাদি ডিক্রিপ্ট করা হয়
নিক মের্টিন

CPU- র এর প্রচুর কাজ না হবে AES সমর্থন আছে এবং উবান্টু এনক্রিপশন এখনও তাদের উপর কাজ করে ... এমনকি যদি তারা করেনি, এই এখনও সত্যিই কিভাবে উবুন্টু এনক্রিপশন কাজ করে প্রশ্নের উত্তর দিতে না
Xen2050

@shsh তারপরে, আমি যদি সত্যিই একটি পুরানো কম্পিউটারে থাকতাম তবে এফডিই ব্যবহার করা অসম্ভব, কারণ সেখানে হার্ডওয়্যার বাস্তবায়ন হত না? তখন কি আমার বুঝতে হবে যে পুরো ডিস্কটি বুট এবং শাটডাউনটিতে এনক্রিপ্ট এবং ডিক্রিপ্ট হয়েছে?
হিউবট

@ MagikM18 যদি তা হয় তবে পুরো "স্ট্রিং" এ ডিক্রিপ্টিং শুরু করতে অ্যালগরিদম কীভাবে জানতে পারে? আমি বোঝাতে চাইছি, আমি যদি কোনও নথি খোলি তবে এটি "স্থানাঙ্ক" কোথায় তা জানতে পারে?
হিউবট

@ হবুবোট যেভাবেই হোক ঠিক তেমনভাবে; মূলত, এনক্রিপশন হ'ল ফিজিকাল ডিস্ক এবং ফাইল সিস্টেম ডিমন এর মধ্যে একটি স্তর। সুতরাং, যখন এটি ডিস্ক থেকে ডেটা পড়ার অনুরোধ করে, তখন এটি ডিক্রিপ্ট করা হয়; একটি নিয়মিত fs এর মত, এটি প্রথমে ফাইল টেবিলটি পড়বে, ফাইলের প্রারম্ভিক অবস্থানটি আবিষ্কার করবে, তারপরে সেখান থেকে পড়বে।
নিক মার্টিন

0

আধুনিক কম্পিউটারগুলি প্রতি সেকেন্ডে কয়েক মিলিয়ন ক্রিয়াকলাপ করতে পারে, সুতরাং এটি আমার অবাক করে দেয় না যে এনক্রিপশন এবং ডিক্রিপশন দ্রুত।

কম্পিউটারগুলি কাজগুলি করতে কত দ্রুত হয় তা আমি এইভাবেই স্বজ্ঞাতভাবে র‌্যাঙ্ক করব:

  1. মেমরির মধ্যে গণনা করা (বিশেষত এল 1 এবং এল 2 মেমরি) অত্যন্ত দ্রুত
  2. স্থানীয় স্টোরেজ থেকে পড়া, কম দ্রুত (সলিড স্টেট ডিস্কগুলি হার্ড ডিস্কের চেয়ে দ্রুত হয়)
  3. নেটওয়ার্ক থেকে পড়া, আরও কম দ্রুত।

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

স্বজ্ঞাতভাবে, আমি আশ্চর্য হই না যে ফুল ডিস্ক এনক্রিপশনটির পারফরম্যান্সের উপর খুব বেশি প্রভাব পড়ে না, যেহেতু আমি বোতল-ঘাড়টিকে ডিস্ক হিসাবে কল্পনা করি।

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


1
এই উত্তরটি সম্ভব এমন কোনও উপায় আমি খুঁজে পাচ্ছি না। কেবল ইউএসবি 3.0 এর সাথে 1 টিবি অনুলিপি করতে কয়েক মিনিট সময় লাগে, যদি মাঝারি প্রক্রিয়াটি করতে হয় (ডিক্রিপশন), এফডিই দিয়ে কম্পিউটার বুট করতে কয়েক মিনিট সময় নিতে পারে।
হিউবট

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