এনক্রিপশন বিপরীত করা যায় না?


9

আমি এই ছাপে আছি যে একটি এনক্রিপ্ট হওয়া স্ট্রিংটি ডিক্রিপ্ট করা যায় না তাই আসল মান চিরতরে নষ্ট হয়ে যায়।

তবে, যদি নীচের স্ট্রিংটি সর্বদা "ডমিনিক" (আমার নাম) এর সমান হয় , তবে এটিকে বিপরীত করার কোনও যৌক্তিক উপায় থাকতে পারে না; এটি এলোমেলো নয় বা তারিখ / সময় ভিত্তিক নয়, তবে এটিতে কি কোনও যৌক্তিক পদ্ধতি আছে?

0WrtCkg6IdaV/l4hDaYq3seMIWMbW+X/g36fvt8uYkE=

আমি "ডেমোমিক" (স্ট্রিং) কী বা কতবার এনক্রিপ্ট করি তা নয়, এটি সর্বদা উপরের সমান। সুতরাং, এর মতো একটি স্ট্রিং ডিক্রিপ্ট করার কোনও উপায় থাকা উচিত নয়?

আমি যে বিষয়ে কথা বলছি তার উদাহরণ:

public string EncryptPassword(string password)
{
    return Convert.ToBase64String(
        System.Security.Cryptography.SHA256.Create()
        .ComputeHash(Encoding.UTF8.GetBytes(password)));
}

3
আপনি কি কোনও নামের ক্রিপ্টোগ্রাফিক হ্যাশ সম্পর্কে কথা বলছেন (প্রায়শই পাসওয়ার্ডে ব্যবহৃত হয়)? বা এনক্রিপশন (যা অনুমোদিত ব্যক্তি দ্বারা ডিক্রিপ্ট করার উদ্দেশ্যে)?

11
SHA256একটি ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন , কোনও এনক্রিপশন অ্যালগরিদম নয়। এটি ওয়ান ওয়ে ফাংশন

1
বাধ্যতামূলক অস্বীকৃতি: হ্যাশকে লবণ দিন ( en.wikedia.org/wiki/Salt_ ( ক্রিপ্টোগ্রাফি) )। এছাড়াও SHA256 উদাহরণস্বরূপ জিপিইউ ব্যবহার করে ব্রেস্ট-ফোর্স আক্রমণে সমস্যা না হওয়ার জন্য খুব দ্রুত হতে পারে। এটি পিবিকেডিএফ 2 বা স্ক্রিপ্টের মতো কিছু ব্যবহার করার পরামর্শ দেওয়া হবে।
ম্যাকিয়েজ পাইচোটকা

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

1
আপনি কি পাবলিক- / প্রাইভেট-কী এনক্রিপশন দ্বারা বিভ্রান্ত? অন্য কেউ যদি আপনার সর্বজনীন কী সহ কোনও বার্তা এনক্রিপ্ট করে তবে সে নিজেই সেই বার্তাটি ডিক্রিপ্ট করতে পারে না। কেবলমাত্র আপনি এটি ডিক্রিপ্ট করতে পারবেন - এবং সম্ভবত এনএসএ, মোসাদ, এফএসবি এবং টিরোলার গেইমডিয়েনস্ট।
অট--

উত্তর:


39

এনক্রিপশন সর্বদা বিপরীত হতে পারে। এনক্রিপশনের মূল বিষয়টি হ'ল একটি বার্তা নেওয়া এবং এটি একটি গোপন কী দিয়ে এনকোড করা যাতে চাবী থাকা কেবলমাত্র অন্য ব্যক্তির এনক্রিপশনটি উল্টো করে বার্তাটি পড়তে পারে।

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

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

একটি শক্তিশালী ক্রিপ্টোগ্রাফিক হ্যাশের অন্যান্য সম্পত্তি হ'ল এটির বিপরীত হওয়া খুব কঠিন। আপনি জানেন যে মানটি 0WrtCkg6IdaV/l4hDaYq3seMIWMbW+X/g36fvt8uYkE="ডমিনিক" এর হ্যাশ কারণ আপনি কেবল এটি তৈরি করেছেন, তবে আপনি যদি এটি জানতেন না এবং কোথায় সন্ধান শুরু করবেন এবং আপনার যা কিছু ছিল তা না জানলে 0WrtCkg6IdaV/l4hDaYq3seMIWMbW+X/g36fvt8uYkE=এটি আক্ষরিক অর্থে আপনাকে বিলিয়ন নিতে পারে বছরের কয়েক বছর ধরে বের করতে হবে যে হ্যাশটি যদি ভাল হয় তবে মূলটি "ডমিনিক"। আবার, পাসওয়ার্ডের তালিকাটি চুরি হয়ে গেলে জামানত ক্ষতি রোধ করতে এটি দরকারী।


2
আমি হ্যাশ ম্যাচ না পাওয়া পর্যন্ত আমি কেবল পরিচিত শব্দগুলির একটি তালিকা এবং লুপটি পেরেছি না? এই কারণেই ওয়েবসাইটগুলি আরও সুরক্ষিত করতে আপনার পাসওয়ার্ডগুলিতে বড় হাতের অক্ষর এবং সংখ্যা যুক্ত করার পরামর্শ দেয়?
ব্যবহারকারী 1477388

15
@ ব্যবহারকারী 1477388: হ্যাঁ, ঠিক এই কারণেই ওয়েবসাইটগুলি এটির পরামর্শ দেয়। হ্যাশ পাসওয়ার্ড আক্রমণ করার এটি একটি সুপরিচিত উপায়: স্পষ্ট কারণে এটি একে "অভিধান আক্রমণ" বলা হয় এবং অভিধানে নেই এমন শব্দ ব্যবহার করা তাদের বিরুদ্ধে সুরক্ষিত থাকার জন্য একটি গুরুত্বপূর্ণ পদক্ষেপ ..
ম্যাসন হুইলারের

1
ভালো দেখায় "বিশ্বাস করতে যে, এই একরকম ফেরানো যাবে না অক্ষমতা" আমার কিছু ভাল অন্তর্দৃষ্টি হয়েছে security.stackexchange.com/questions/11717/... এমন নয় যে আমি চাই / তাদের বিপরীত কোনো প্রয়োজন আছে; আমি উৎসুক.
ব্যবহারকারী 1477388

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

1
@ মেসনহিলার: অভিধানে নেই এমন শব্দ ব্যবহার করা সত্যিই প্রয়োজনীয় নয়, বিশেষত বিবেচনা করা হচ্ছে যে একটি সাধারণ আক্রমণে ব্যবহৃত "অভিধান" কীভাবে অক্সফোর্ড অভিধানের মতো কিছু নয়, বরং পাসওয়ার্ডে প্রায়শই ব্যবহৃত স্ট্রিংগুলির একটি তালিকা । এই শব্দগুলি এড়াতে চেষ্টা করার পরিবর্তে, 2000 বা এর মতো শব্দের একটি তালিকা থেকে 5 টি এলোমেলো শব্দ বাছাই করা ভাল: এই জাতীয় পাসফ্রেজ, এমনকি 2000-শব্দ অভিধানটি জানা থাকলেও এটি প্রায় 100 গুণ বেশি সময় নেয় 64. এর বাইরে বল চেয়ে 8 র্যান্ডম অক্ষর
tdammers

9

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

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

দুর্ভাগ্যক্রমে, আমাদের কাছে আদর্শ র্যান্ডম ওরাকল নেই; ডিজিটাল বাস্তবায়নের ক্ষেত্রে ধারণার ব্যবহারিক অসম্ভাব্যতা যেমন: যে কোনও জায়গায় যে কোনও বার্তায় ব্যবহৃত প্রতিটি বার্তা দক্ষতার সাথে সঞ্চয় এবং দক্ষতার সাথে স্মরণ করার দক্ষতা এবং ক্লায়েন্টদের এমন একটি সংখ্যা গ্রহণ করার ক্ষমতা যা শত বা কয়েক হাজার দশমিক সংখ্যার হতে পারে দৈর্ঘ্যে. পরিবর্তে, আমাদের হ্যাশ ফাংশন রয়েছে, যা অপরিবর্তনীয় (একমুখী) গাণিতিক ক্রিয়াকলাপ যা নিজেই বার্তাটিতে কাজ করে, একটি ডেসটিনিস্টিক ট্রান্সফর্মেশন (একই বার্তা => একই হ্যাশ) তৈরি করার জন্য কোনও স্পষ্ট নয়হ্যাশ এবং মূল বার্তার মধ্যে সম্পর্ক। মন্তব্যে উল্লিখিত হিসাবে, বার্তায় নিয়মতান্ত্রিক পরিবর্তন করে উত্পাদিত হ্যাশ মানের কোনও পূর্বাভাস পরিবর্তনও হওয়া উচিত নয়; আদর্শভাবে, প্রতিটি ডাইজেস্টের বার্তায় একক বিটকে পরিবর্তিত করে 50% পরিবর্তন করার সুযোগ থাকবে।

হ্যাশ ফাংশনের জন্য অনেকগুলি ব্যবহার রয়েছে; এগুলি উভয় পক্ষের সরল পাঠ্য গোপনীয়তা না জেনে চ্যালেঞ্জ যাচাইকরণের জন্য (পাসওয়ার্ডের মতো লগইন শংসাপত্রগুলি ভাবার জন্য) ব্যবহার করা হয় এবং কোনও বার্তায় টেম্পার করা বা দুর্নীতিগ্রস্থ হয়নি তা যাচাই করার জন্য তারা চেকসাম হিসাবে ব্যবহৃত হয়। এগুলি তথাকথিত "কাজের প্রমাণ" দৃশ্যেও ব্যবহৃত হয়; গণনা সংক্রান্ত কাজগুলি যা সম্পূর্ণ করা কঠিন তবে যাচাই করা সহজ।

যদি আপনি কখনই কোনও SHA256 হ্যাশ ডাইজেস্টকে দক্ষতার সাথে বিপরীত করার জন্য কোনও বার্তা (যে কোনও বার্তা) তৈরি করে সেই হ্যাশের ফলস্বরূপ কোনও ফলাফল খুঁজে পান, তবে এটি প্রমাণ করে প্রমাণ করে যে বাস্তবে হ্যাশটি মূলত নষ্ট হয়ে গেছে। SHA256 প্রকৃতপক্ষে সুরক্ষিত বলে বিশ্বাস করা হয়েছে যার অর্থ হ্যাশ ডাইজেস্ট দিয়ে শুরু করার এবং একটি সংঘর্ষক বার্তা উত্পন্ন করার জন্য কোনও হস্ত ডাইজেস্ট দিয়ে শুরু করার এবং কোনও সংঘর্ষ বার্তা উত্পন্ন করার জন্য কোনও ডকুমেন্টেড পদ্ধতি নেই, যা SHA-256 এর জন্য আদর্শভাবে 2 6 256 ~ = 10 ^ 77 সম্ভাবনা)।


এটি উল্লেখ করার মতোও হতে পারে যে একটি আদর্শ হ্যাশ ফাংশনে, ইনপুটটিতে এক-বিট পরিবর্তনের ফলে আউটপুট বিটের 50% পরিবর্তন হওয়া উচিত। একে হিমসাগর প্রভাব বলে
একটি সিভিএন

2
@ মাইকেলকার্জলিং: যথাযথভাবে বলতে গেলে, প্রতিটি বিটটি ৫০% সম্ভাব্যতার সাথে পরিবর্তিত হওয়ার আশা করা উচিত, যা গড়ে বিটগুলির ৫০% পরিবর্তনের প্রত্যাশার চেয়ে আলাদা (তবে বোঝা যায়) is
ডায়েটারিচ এপ্প

@ ডায়েত্রিচএপ্প আসলে, এবং আমি যে উইকিপিডিয়া নিবন্ধটি লিঙ্ক করেছি তা এটি পরিষ্কার করে দিয়েছে, তবে শেষ দুটি ব্যবহারকারীর পক্ষে দুটি ইনপুটগুলির মধ্যে পরিবর্তিত বিটের সংখ্যার পরিমাণ নির্ধারণ করা আরও সহজ।
একটি সিভিএন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.