Query On Encrypted Data-v2.ppt

‫‪MCI‬‬
‫پرس و جو روی داده های رمز شده‬
‫رسول جلیلی‬
‫درس امنیت پایگاه داده‬
‫مقدمه‬
‫• روشهاي کنترل دسترسي برای محافظت از داده ها کافي نیستند‬
‫– سرقت رسانه محتوی داده‬
‫– عدم اعتماد به اعمال کننده خط مشی های کنترل دسترسی‬
‫– امکان دور زدن مکانیزم های کنترل دسترسی توسط مهاجمین‬
‫• مطرح شدن ایده ‪ Database as A Service‬و سیستم های‬
‫کارگزار غیرقابل اعتماد‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫مدل پایگاه داه به عنوان خدمت‬
‫•‬
‫پایگاه داده به عنوان خدمت (‪ )Database as A Service‬به عنوان رویکردی جدیدد در‬
‫برونسپاری پایگاه دادهها‬
‫•‬
‫در دسترس بودن داده ها توسط کارگزار تضمین می شود‪.‬‬
‫•‬
‫کلیه اعمال مدیریت داده را کارگزار فراهم می کند‪.‬‬
‫•‬
‫کارگزار از نظر نگهداري دادهها و عدم ارسال عمدي پاسخ اشتباه مورد اعتماد است‪.‬‬
‫•‬
‫کارگزار در مورد محرمانگي دادهها مورد اعتماد نیست‪.‬‬
‫– کارگزار درستکار ولی کنجکاو است (‪.)Honest but curious‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫مدل پایگاه داده به عنوان خدمت‬
‫• چالش اصلی در این مدل تأمین امنیت دادههای برونسپاری شده است‪.‬‬
‫• راه حل اولیه رمزنگاری داده های برونسپاری شده است‪.‬‬
‫• برای حفظ محرمانگی مالک داده‪ ،‬داده خود را رمز کرده و آن را در پایگاه داده‬
‫رمز شده در سمت کارگزار ذخیره می کند‪.‬‬
‫• ریزدانگی رمزنگاری به خط مشی های محیط برای سطح دسترسی‪ ،‬امنیت و‬
‫کارایی بستگی دارد‪.‬‬
‫– بیشتر فعالیت ها ریزدانگی را در سطح چندتایی تعریف کرده اند‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫عناصر مدل ‪DAS‬‬
‫‪.1‬‬
‫مالک دادهها‪ :‬فرد یا سازمان است که دادهها را ایجاد و آن را برونسپاري ميکند‪.‬‬
‫‪.2‬‬
‫کاربر‪ :‬پرسوجوها را به سیستم ارائه ميکند‪.‬‬
‫‪.3‬‬
‫کدددارخواه‪ :‬پرسوجوهددداي کددداربر را بددده پرسوجوهددداي قابدددل اجدددرا روي دادههددداي‬
‫رمزشده تبدیل ميکند‪.‬‬
‫‪.4‬‬
‫کارگزار‪ :‬محل ذخیرهي دادههاي رمدز شدده اسدت و پرسوجوهداي ارسدالي از سدمت‬
‫کارخواه را روي دادههاي رمزشده اجرا کرده و نتیجه را به کارخواه ارائه ميدهد‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫سناریوی پرس و جو در مدل ‪DAS‬‬
‫‪.1‬‬
‫کاربر پرس و جوی ‪ Q‬را با توجه به شمای پایگاه داده ی رمز نشده ‪ B‬از طریق کارخواه وارد می‬
‫کند‪.‬‬
‫–‬
‫‪.2‬‬
‫برون سپاری داده می تواند از دید کاربر شفاف باشد‪.‬‬
‫کارخواه پرس و جوی کاربر را به دو بخش ‪ Qs‬و ‪ Qc‬تقسیم می کند‪Qs .‬پرس و جوی اعمال شده بر‬
‫روی داده های رمز شده در سمت کارگزار و ‪ Qc‬پرس و جوی اعمال شده در سمت کارفرما بر روی‬
‫داده های برگشتی از کارگزار به کارخواه است‪.‬‬
‫–‬
‫کارخواه ساختار پایگاه داده عادی و رمز شده را می داند‬
‫‪.3‬‬
‫کارگزار پرس و جوی ‪ Qs‬را روی داده رمز شده اجرا و نتایج (مجموعه ای از چندتایی های رمز شده)‬
‫را به کارخواه بر میگرداند‪.‬‬
‫‪.4‬‬
‫کارخواه نتایج را رمزگشایی کرده و چندتایی های اضافی را با اعمال ‪ Qc‬به نتایج اولیه حذف می کند‪.‬‬
‫نتایج نهایی به کاربر ارائه می شود‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫سناریوی پرس و جو در مدل ‪DAS‬‬
‫‪MCI‬‬
‫)‪1‬‬
‫)‪4‬‬
‫‪DBK‬‬
‫)‪2‬‬
‫`‬
‫)‪3‬‬
‫‪DBK‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫مالحظات رمزنگاری در برون سپاری داده‬
‫•‬
‫روش هایی که بتوانند به طور مستقیم با داده های رمز شده کار کند باید مالحظات زیر را درنظر بگیرند‪:‬‬
‫– میزان اعتماد به کارگزار‬
‫• در مدل ‪ DAS‬امکان رمزگشایی توسط کارگزار نامطمئن وجود ندارد‪.‬‬
‫– کارایی روش اجرای پرس و جو‬
‫• رمزگشایی کل داده های قبل از اجرای پرس و جو کارا نیست‪.‬‬
‫– تمرکز اجرای اعمال در سمت کارگزار‬
‫– سربار قابل قبول برای ذخیره سازی و ارتباطات بین کارفرما و کارگزار‬
‫– ریزدانگی رمزنگاری‬
‫• اگر رمزنگاری بصورت درشتدانه باشد امکان بهینهسازی پرسوجو کم می شود‬
‫• رمزنگاری به صورت ریز دانه نیز کارایی را کمتر و در شرایطی به ممکن است به مهاجم اجازه استنتاج از دادهها‬
‫را بدهد‪.‬‬
‫– کنترل دسترسی در سیستم های چند کاربره‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫مالحظات رمزنگاری در برون سپاری داده (‪)2‬‬
‫•‬
‫مقاومت در برابر حمالت‬
‫–‬
‫حمله متن رمزشده معلوم‪ :‬به طور کلدي فدرم ميشدود کده مهداجم بده داده رمزشدده دسترسدي دارد‪ .‬هددف در ایدن‬
‫حمله شکستن متن رمزشده خاص یا پیدا کردن کلید است‪.‬‬
‫–‬
‫حمله متن اصلی معلوم‪ :‬مهداجم بده تعددادي مدتن اصدلي و معدادل رمزشدده آنهدا دسترسدي دارد کده از آن بدراي بده‬
‫دست آوردن بقیهي متون رمزشده یا پي بردن به کلید رمز استفاده ميکند‪.‬‬
‫–‬
‫حمله متن اصلی انتخابي‪ :‬مهاجم ميتواند معادل رمزشده متن اصلي دلخدواه خدود را بده دسدت بیداورد‪ .‬ایدن حملده‪،‬‬
‫نوع قویتري نسبت به حملهي متن اصلی معلوم است‪.‬‬
‫–‬
‫حمله متن رمز شده انتخابی‪ :‬مهاجم میتواند رمزگشایی شده معادل متن رمزشده دلخواه را بدست آورد‪.‬‬
‫–‬
‫حمالت تحلیل فرکانسی‪ :‬ممکن است مهاجم (‪ )server‬اطالعات اولیهای راجع به دامنده مقدادیر و فرکدانس رخدداد‬
‫دادههای رمزنشده داشته باشد و از آن برای نفوذ به پایگاه داده استفاده کند‪.‬‬
‫–‬
‫حمالت مبتنی بر اندازه‪ :‬ممکن است مهاجم اطالعاتی راجعبه ارتباط طول متن اصلی و متن رمزشده داشته باشدد‪.‬‬
‫بنابراین اگر مهاجم مجموعهای از دادههای اصلی و متن رمز شدده معدادل را داشدته باشدد میتواندد بده پایگداه داده‬
‫حمله کند‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫مالحظات رمزنگاری در برون سپاری داده (‪)3‬‬
‫• پشتیبانی از انواع پرس و جو‬
‫– پرس و جو روی داده های عددی‬
‫• پرس و جو با شرط تساوی‬
‫• پرس و جوی بازه ای‬
‫– پرس و جو روی داده های رشته ای‬
‫• پرس و جو با شرط تساوی‬
‫• پرس و جو های تطبیق الگویی‬
‫– پرس و جوهای شامل توابع تجمعی‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫روش های جستجو روی داده های رمز شده‬
‫• جستجوی مستقیم روی داده های رمز شده‬
‫• جستجوی مبتنی بر شاخص‬
‫• روش های مبتنی بر حفظ ترتیب‬
‫• روش های مبتنی بر توابع همریخت اختفایی‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫جستجوی مستقیم روی داده های رمز شده‬
‫• داده بدده گوندده ای رمددز مددی شددود کدده جسددتجو بتوانددد دقیقدا ر روی همددان‬
‫داده رمز شده به صورت مستقیم صورت گیرد‪.‬‬
‫• سانگ روشی را بر اساس این ایده برای جستجو روی داده های‬
‫رشته ای ارائه داده است‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫روش ‪ - Song‬معرفی‬
‫•‬
‫جستجوی کلمات روی اسناد رمز شده (تمرکز بر ‪ DB‬نیست)‬
‫•‬
‫کاربرد مفهوم دریچه‬
‫•‬
‫کارگزار میتواند با گرفتن اطالعات کوچکي در مورد هر کلمه (دریچده)‪ ،‬جسدتجو را بددون اطدالع از‬
‫کلمات دیگر متن انجام دهد‪.‬‬
‫•‬
‫توابع مبتنی بر دریچه توابعی هستند که محاسبهي معکوس آنها بدون داشتن اطالعات خاصی به نام‬
‫دریچه مشکل است‪.‬‬
‫•‬
‫در رمزنگاري مبتني بر دریچه‪ ،‬رمزگشایي با داشتن دریچه امکانپذیر است‪.‬‬
‫•‬
‫در این روشها‪ ،‬به همراه هر کلمهاي که کارخواه جستجوي آنرا تقاضا کرده است‪ ،‬دریچهي آن نیدز‬
‫ارسال ميشود‪ .‬بدین شکل کارگزار فقط ميتواند کلمه درخواست شده را رمزگشایي کند‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫روش ‪ - Song‬رمزگذاری‬
‫‪.1‬‬
‫متن اصلی به تعدادی کلمه ‪ w‬با طول یکسان (‪ n‬بیت) تقسیم می شود‪.‬‬
‫‪.2‬‬
‫اسناد اصدلی پدس از رمزشددن بده روش شدرح داده شدده‪ ،‬بده سدمت کدارگزار ارسدال و در‬
‫آنجا ذخیره میشوند‪.‬‬
‫‪.3‬‬
‫کددارگزار بددا دریافددت دریچددهاي از طددرف کددارخواه مددی توانددد کلمددهی مددورد نظددر کدداربر را‬
‫جستجو کند‪.‬‬
‫•‬
‫پارامترهای رمزنگاری‬
‫–‬
‫‪ :S‬مولد اعداد شبه تصادفی‬
‫– ‪ F‬و ‪ :f‬توابع شبه تصادفی‬
‫– ’‪ :K‬کلید تابع ‪( f‬برای تمام کلمات متن ثابت است)‬
‫– دریچه هر کلمه‪ :‬کلید تابع ‪f k’(first n-m bits of Ek’’(wi)) :F‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫روش ‪ – Song‬رمزگذاری(‪)2‬‬
‫• رمزگذاری در دو سطح انجام می شود‪.‬‬
‫– سطح اول‪:‬‬
‫• هر کلمه با یکی از الگوریتمهای رمزنگاري متقارن و کلید ("‪ )k‬رمز می شود‪.‬‬
‫• کارگزار در هنگام اجراي پرسوجو از کلمهي درخواست شده کارخواه مطلع نمی شود‪.‬‬
‫– سطح دوم‪:‬‬
‫• مولد شبه تصادفي ‪ ،S‬دنبالهاي از اعداد شبه تصدادفي ‪ si‬بدا طدول ‪ n-m‬بیدت بده تعدداد کلمدات مدتن‬
‫اصلي ایجاد ميکند‪.‬‬
‫• اعداد شبه تصادفی تولید شده ‪ si‬با استفاده از تدابع ‪ F‬درهمسدازي شدده و خروجدی ‪ m‬بیتدی تولیدد‬
‫می شود‪.‬‬
‫• (رمزشددهي ییدهي اول هدر کلمدده ()‪ ))Ek"(wi‬بدا ( ‪ si‬و حاصدل درهمسددازی شدده در مرحلده قبددل)‪،‬‬
‫‪ XOR‬میشود‪.‬‬
‫داری کلمددهي ‪ wi‬بدده عنددوان ‪i‬امددین کلمددهي مددتن رمزشددده (‪ )ci‬در سددند‬
‫• نتیجددهی ییددهي دوم رمزنگد ‌‬
‫رمزشده قرار میگیرد‪.‬‬
‫‪15‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫روش ‪ - Song‬رمزگذاری(‪)3‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫روش ‪ - Song‬اعمال پرس و جو‬
‫‪.1‬‬
‫کارخواه برای جستجوی یک کلمه (‪ )w‬در اسناد رمزشدده‪ ،‬معدادل رمدز شددهي ییدهي اول کلمده ()‪)Ek"(w‬‬
‫به همراه دریچهي آن ()‪ )fk'(w‬را به کارگزار ارسال میکند‪.‬‬
‫‪.2‬‬
‫کارگزار با دریافت ()‪ )Ek"(w‬کلمات تمام اسناد را با آن ‪ XOR‬میکند‪.‬‬
‫‪.3‬‬
‫اگر کلمهي ‪P‬ام سندی با کلمهي درخواست شده برابدر باشدد‪ ،‬حاصدل ‪ )Tp( XOR‬بایدد سداختاری بده شدکل‬
‫>)‪ <Sp, Ff (k’(w)) (sp‬داشدته باشدد‪ .‬بدرای بررسدی وجدود سداختار فدوی بدرای کلمدهي ‪p‬ام مدتن رمزشدده‪،‬‬
‫حاصل تابع ‪ F‬روی ‪ n-m‬بیت پرارزش ‪ Tp‬به دست آورده میشود‪.‬‬
‫‪.4‬‬
‫اگر مقدار بده دسدت آمدده بدا ‪ m‬بیدت باقیمانددهي ‪ Tp‬برابدر باشدد‪ ،‬سداختار برقدرار بدوده و کلمدهي ‪P‬ام مدتن‬
‫رمزشده به همراه سندی که به آن متعلق است در مجموعهي جواب ارسالی به کارخواه قرار میگیرد‪.‬‬
‫•‬
‫تددابع ‪ F‬یددک تددابع درهمسدداز دارای برخددورد اسددت‪ .‬بنددابراین امکددان وجددود اشددتباه مثبددت در نتددایج ارسددالی بدده‬
‫کارخواه وجود دارد‪.‬‬
‫–‬
‫در سمت کارخواه پس از رمزگشایی سند‪ ،‬مقددار اصدلی کلمدهي پیددا شدده بدا کلمدهي درخواسدت شددهي کداربر مقایسده‬
‫میشود تا نتایج درستی به کاربر برگردانده شود‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫روش ‪ - Song‬رمزگشایی‬
‫•‬
‫بددرای رمزگشددایی کلمددهي ‪i‬اُم سددند رمزشددده (‪ ،)ci‬ابتدددا ‪ n-m‬بیددت پددرارزش ‪ ci‬بددا ‪XOR ،si‬‬
‫میشود و ‪ n-m‬بیت پر ارزش )‪ Ek"(wi‬به دست می آید‪.‬‬
‫•‬
‫از مقدار فوی برای ساختن دریچهي ‪ wi‬استفاده میشود‪.‬‬
‫•‬
‫اعمال دریچه بدست آمده و ‪ n-m‬بیت پر ارزش ‪ si‬بده تدابع ‪ m ،F‬بیدت نتیجده دارد کده بدا ‪XOR‬‬
‫کددردن بددا ‪ m‬بیددت کددم ارزش ‪ m ،ci‬بیددت کددم ارزش )‪ Ek"(wi‬حاصددل مددی شددود‪ .‬بدددین ترتیددب تمددام‬
‫بیتهای )‪ Ek"(wi‬به دست میآیند‪.‬‬
‫•‬
‫)‪ Ek"(wi‬رمزگشایی شده تا مقدار اصلی ‪ wi‬حاصل شود‪.‬‬
‫‪18‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫ویژگی های روش ‪Song‬‬
‫•‬
‫کارگزار نمی تواند در مورد متن اصلی تنها با استفاده از متن رمز شده اطالعاتی بدست آورد‪.‬‬
‫•‬
‫سربار ذخیره سازی و ارتباطاتی آن کم است‪.‬‬
‫•‬
‫نتیجه حاوی مکان هایی از سند است که ‪ W‬در آن ظاهر شده است و ممکن است دارای اشتباهات‬
‫مثبت باشد‪.‬‬
‫•‬
‫اشتباهات مثبت با مقدار ‪ m‬مرتبط است‪ .‬هر جواب اشتباه با احتمال ‪ 1/2m‬رخ می دهد‪ .‬بنابراین‬
‫برای سندی با طول ‪ l‬کلمه انتظار ‪ l/2m‬جواب اشتباه وجود دارد‪.‬‬
‫•‬
‫متن باید تقسیم به کلماتی با طول مساوی شود که با توجه به ساختار زبان‪ ،‬روش مناسبی نیست‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫ویژگی های روش ‪)2( Song‬‬
‫•‬
‫امکان جستجو با هر طول دلخواه وجود ندارد‪ .‬فقط ميتوان کلمات با طول ‪ n‬یا ضریبي از ‪ n‬بیت‬
‫را جستجو کرد‪.‬‬
‫•‬
‫گروه محدودي از الگوها قابل جستجو است‪.‬‬
‫•‬
‫–‬
‫الگوهایي به شکل"]‪ "ab[a-z‬با تبدیل به ‪ aba, abb, abc, …, abz‬قابل جستجو هستند؛‬
‫–‬
‫جستجوي الگوهایي به شکل ”*‪ "ab‬مشکل است‪ .‬زیرا تعداد رشتههاي تولیدي بسیار زیاد خواهند شد‪.‬‬
‫در الگوریتم سانگ‪ ،‬براي یافتن هر کلمه باید کل محتویات تمام اسناد جستجو شود‪ .‬زمان جستجو‬
‫نسبت به طول متن خطی است‪ .‬بنابراین در مقیاس بزرگ (مانند پایگاه داده) کارا نیست‪.‬‬
‫–‬
‫یک روش افزایش سرعت بکارگیری شاخص های از پیش تعریف شده است‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫جمع بندی ‪ -‬جستجوی مستقیم روی داده رمز شده‬
‫•‬
‫فضای ذخیره سازی نسبت به ذخیره سازی داده اصلی تفاوت زیادی ندارد‪.‬‬
‫•‬
‫معموی ر احتمال اجرای حمالت فرکانسی نسبت به روش مبتنی بر شاخص کمتر است‪.‬‬
‫–‬
‫در برخی روش ها کلمه ای که چندین بار بکار رفته‪ ،‬هر بار به شکل جدیدی رمز می شود (بسته به جایگاه کلمه در‬
‫متن)‬
‫•‬
‫بیشتر اجرای پرس و جو در سمت کارگزار است‪ .‬تنها رمزنگاری کلمه مورد پرس و جو در سمت کارخواه‬
‫انجام می شود‪.‬‬
‫•‬
‫نسبت به روش های مبتنی بر شاخص دارای جواب اشتباه کمتری است‪.‬‬
‫•‬
‫پیچیدگی محاسباتی باییی دارند و زمان جستجو در آن ها خطی است‪ .‬بنابراین در مقیاس بزرگ قابل استفاده‬
‫نیست‪.‬‬
‫•‬
‫این روش ها بیشتر برای ابزارهایی با جستجوی در مقیاس کوچک (مانند تلفن همراه) مناسب است‪.‬‬
‫•‬
‫پرس و جوهای با شرایط تطبیق دقیق را پاسخ می دهند‪.‬‬
‫•‬
‫پرس وجوی شامل شرایط بازه ای و جستجوی الگوها بر روی داده های رشته ای در این روش سخت است‪.‬‬
‫•‬
‫پرس و جو شامل توابع تجمعی امکان پذیر نیست‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫جستجوی مبتنی بر شاخص‬
‫•‬
‫اطالعاتی با نام شاخص همراه با داده رمز شده در سمت کارگزار ذخیره می شود‪.‬‬
‫•‬
‫جستجوی داده با استفاده از شاخص ذخیره شده انجام می گیرد‪.‬‬
‫•‬
‫برای هر عنصر که بخواهد جستجو بر مبنای آن انجام شود‪ ،‬باید یک شاخص تعریف کرد‪.‬‬
‫•‬
‫شاخص نباید اطالعاتی در مورد داده اصلی را فاش نماید‪.‬‬
‫•‬
‫روش های مختلف تولید شاخص باید از یک سو کارایی پرس و جو و از سوی دیگر عددم‬
‫سوءاستفاده کارگزار از مقدار شاخص در استنتاج داده اصلی را در نظر بگیرند‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫جستجوی مبتنی بر شاخص‬
‫•‬
‫)‪ Ri (Ai1, Ai2, …, Ain‬در پایگاه داده رمز نشده به )‪ Rki (Counter, Etuple, I1, I2, . . ., In‬در پایگاه‬
‫داده رمز شده نگاشت می شود‪ Counter .‬کلید اصلی جدول رمز شده‪ Etuple ،‬رمز شده چندتایی معادل در‬
‫پایگاه داده رمزنشده‪ I1 ،‬تا ‪ In‬شاخص های متناظر با ‪ Ai1‬تا ‪ Ain‬هستند‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫روش های اصلی مبتنی بر شاخص‬
‫• ‪Bucket Based Index‬‬
‫• ‪Hash Based Index‬‬
‫• ‪B+ Tree Index‬‬
‫‪24‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫شاخص مبتنی بر ‪ -Bucket‬معرفی‬
‫‪MCI‬‬
‫•‬
‫هاسیگموس و همکدارانش مبتندی بدر افدزودن شداخص مبتندی بدر باکدت‪ ،‬روشدی بدرای پدرس و جدو‬
‫روی داده رمز شده ارائه دادند‪.‬‬
‫•‬
‫ردیفهداي هددر جدددول بدده طددور جداگاندده و بده کمددک یکددي از الگوریتمهدداي رمزنگدداري متقددارن‪ ،‬رمددز‬
‫ميشوند‪.‬‬
‫•‬
‫به ازاي هدر مشخصده کده جسدتجو روي آن انجدام ميشدود‪ ،‬یدک مشخصده بده ندام شداخص بده جددول‬
‫اضافه ميگردد‪.‬‬
‫‪Year‬‬
‫‪Author‬‬
‫‪Title‬‬
‫‪ID‬‬
‫‪2001‬‬
‫‪Alfred J. Menezes‬‬
‫‪Handbook of Applied Criptography‬‬
‫‪123‬‬
‫‪IY‬‬
‫‪IA‬‬
‫‪IT‬‬
‫‪IID‬‬
‫‪Enc_Tuple‬‬
‫‪Ψ‬‬
‫‪Φ‬‬
‫‪Π‬‬
‫‪Σ‬‬
‫‪4%n+!~kl?7klm\||fcapkmvk380($%‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫نحوه تعریف شاخص در روش ‪Bucket‬بندی‬
‫براي ایجاد شاخص امن‪ ،‬بازهي دادههاي هر صفت به تعدادي زیربازه تقسیم ميشود‪.‬‬
‫‪.1‬‬
‫– بازه ها نباید اشتراک داشته باشند‪.‬‬
‫ایجاد بازهها ميتواند با استفاده از انواع روشهاي تقسیمبندي صورت گیرد‪.‬‬
‫‪.2‬‬
‫– طول برابر‬
‫– تعداد اعضاي برابر‬
‫به هرکدام از بازهها مقداري تعلق ميگیرد‪.‬‬
‫‪.3‬‬
‫–‬
‫•‬
‫می توان از یک تابع تولید اعداد شبه تصادفي استفاده کرد‪.‬‬
‫به ازاي تمام دادههایي که در یک زیربازه قرار ميگیرند‪ ،‬مقدار تعلق گرفته بده زیربدازهی آنهدا در‬
‫شاخص رمزشده قرار داده ميشود‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫مثال – بازه بندی و اعطای شاخص‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫پرسوجو در شاخص دهی مبتنی بر ‪Bucket‬‬
‫•‬
‫پرسوجو در دو مرحله صورت ميگیرد‪:‬‬
‫‪.1‬‬
‫کارگزار سعي ميکند تا آنجا که امکان دارد پاسخ درستي برگرداند‬
‫‪.2‬‬
‫کارخواه نتیجهي ارسالي کارگزار را رمزگشایي کرده و آنرا پردازش ميکند‪.‬‬
‫•‬
‫در ‪ SQL‬یددک پددرس و جددو مددی توانددد بددا درختهدداي متفدداوت کدده از نظددر نتیجدده یکسددان‬
‫هستند‪ ،‬نمایش داده شود‪.‬‬
‫•‬
‫هاسددیگموس جداسددازی پددرس و جددو را (بخشددی در سددمت کددارگزار و بخشددی در سددمت‬
‫کارخواه) را با استفاده از درخت پرسوجو انجام داده است‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫پرس و جو در شاخص دهی مبتنی بر ‪)2( Bucket‬‬
‫•‬
‫نمایش هر پرسوجو به دو قسمت تقسیم ميشود‪.‬‬
‫در روش هاسیگموس‪ ،‬درخت‬
‫‌‬
‫‪.1‬‬
‫بخش زیر عملگر رمزگشایی‪ :‬کلیه اعمالی که می تواند در سمت کارگزار انجام شود‪.‬‬
‫‪.2‬‬
‫بخش بایی عملگر رمزگشایی‪ :‬اعمالی که باید در سمت کارخواه انجام شوند‪.‬‬
‫اَعمددال جبددر رابطددهاي وقتددي بدده زیددر عمددل رمزگشددایي بددرده ميشددوند‪ ،‬بایددد بدده اَعمدال‬
‫جدیدي که روي دادههاي رمزشده قابل اجرا هستند‪ ،‬تبدیل شوند‪.‬‬
‫•‬
‫–‬
‫‪29‬‬
‫هاسیگموس جبر رابطهاي جدیدي را براي ا‌عمال روي دادههاي رمزشده تعریف کرد‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫بهینه سازی اجرای پرس و جو‬
‫‪MCI‬‬
‫‪SELECT name FROM books, keeper‬‬
‫"‪WHERE keeper.ID = books.keeping AND Title = "Handbook of applied cryptography‬‬
‫‪πname‬‬
‫• فقط عملگرهایی که در زیر عملگر رمزگشایی هستند‬
‫قابل اجرا در سمت کارگزار هستند‬
‫• در این اجرا هیچ عملگری قابل اجرا به روی کارگزار‬
‫نیست‪.‬‬
‫‪‬‬
‫‪Books.keeper = Keeper.id‬‬
‫• سربار ارتباطي و محاسباتي در سمت کارخواه بای است‪.‬‬
‫• براي افزایش کارآیي باید سعي کرد تا حد امکان‪،‬‬
‫عملگرهاي رابطهاي را به زیر عملگر رمزگشایي منتقل‬
‫کرد‪.‬‬
‫‪D‬‬
‫”‪σTitle = “Cryptography‬‬
‫‪KeeperS‬‬
‫‪D‬‬
‫‪BooksS‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫اجرای بهینه پرس و جو‬
‫‪MCI‬‬
‫‪πname‬‬
‫•‬
‫اَعمال تا حد امکان باید در سمت کارگزار انجام شود‪.‬‬
‫•‬
‫رابطددده ‪ SELECTION‬روي جددددول ‪ Books‬بددده زیدددر‬
‫عملگر رمزگشایي برده شده است‪.‬‬
‫•‬
‫براي بردن این عملگر به زیر عملگر رمزگشایي بایدد آندرا‬
‫تبدددددیل بدددده ‪ σ s‬کدددده در جبددددر جدیددددد هاسددددیگموس بددددراي‬
‫‪ SELECTION‬روي جدددداول رمزشدددده و مشخصدددههاي‬
‫شاخص تعریف شده است‪ ،‬تبدیل کرد‪.‬‬
‫•‬
‫این اجرا از پرسوجدو بده دلیدل اجدرای برخدی از عملگرهدا‬
‫در سمت کارگزار اجرای کارایی است‪.‬‬
‫‪Λ Books.keeper‬‬
‫”‪σTitle = “Cryptography‬‬
‫‪= keeper.id‬‬
‫‪D‬‬
‫‪‬‬
‫‪Bookss.keepers = Keepers.ids‬‬
‫‪0‬‬
‫= ‪σsTitle‬‬
‫‪BooksS‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪KeeperS‬‬
‫مزایا و معایب روش باکت بندی برای تولید شاخص‬
‫•‬
‫روش های مبتنی بر ‪ Bucket‬برای اجرای شروط تساوی مناسب هستند‪.‬‬
‫– ‪Aij = v  Ij = β‬‬
‫•‬
‫پرس و جوهای بازه ای نیز با کمی تغییر در این روش شاخص دهی قابل اجرا است‪.‬‬
‫– ( ‪Aij> v  )Ij = β1 or β2 or …or βk‬‬
‫•‬
‫مثال‪:‬‬
‫– شرط ‪ Salary>50000‬در جدول صفحات قبل باید به شکل زیر تبدیل شود‪:‬‬
‫‪Salarys=2 OR Salarys=10 OR Salarys=3‬‬
‫•‬
‫عدم امکان اجرای توابع تجمعی مانند ‪ Avg ،MAX ،MIN ،SUM‬و ‪...‬‬
‫– هاسددیگموس ایددن روش را تعمددیم داد و بددا اسددتفاده از یددک تددابع همریخددت اختفددائی اجددراي‬
‫توابعي مثل جمع و ضرب را فراهم کرد‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫مزایا و معایب روش باکت بندی برای تولید شاخص (‪)2‬‬
‫•‬
‫وجود مقدار زیادی از داده های اضافی در نتایج کارگزار (به ویژه اگر اعمالی مانند پیوند در پدرس‬
‫و جو وجود داشته باشد)‬
‫– روشهایي براي بهبود و کاهش اشتباههاي مثبت در روش هاسیگموس ارائه شده است‪.‬‬
‫•‬
‫این روش بیشتر براي دادههاي عددي کداربرد دارد و بده کدارگیری روش بدراي دادههداي رشدتهاي یدا‬
‫متني که دامنهي دادهها بزرگ است‪ ،‬چندان مناسب نیست‪.‬‬
‫– در تعریف بازه برای دادههای رشتهای‪ ،‬ممکن است تعداد زیادی داده در یک بازه قدرار گیدرد کده ایدن خدود‬
‫بدده معنددای ارسددال تعددداد زیددادی دادهي اضددافی در پاسددخ بدده یددک پرسوجددو و در نتیجدده سددربار ارتبدداطي و‬
‫محاسباتي بای است‪.‬‬
‫•‬
‫اگر بازه ها طوری ساخته شوند که مثالر در هر بدازه یدک مقددار قدرار بگیدرد امکدان تحلیدل فرکانسدی‬
‫وجود دارد‪.‬‬
‫‪33‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫شاخص مبتنی بر توابع درهم ساز‬
‫•‬
‫از مفهوم توابع درهم ساز برای ساختن شاخص استفاده می شود‪.‬‬
‫•‬
‫دداز دارای تصدددادم‬
‫بدددراي سددداخ ‌‬
‫ت شددداخص در ایدددن روش‪ ،‬دادههدددا توسدددط یدددک تدددابع درهمسد ‌‬
‫دستهبندی میشوند‪.‬‬
‫•‬
‫مزیددت ایددن نددوع شدداخص دهددی نسددبت بدده روش باکددت بندددی ایددن اسددت کدده دسددتهبندي روي‬
‫دادههاي پشت سرهم انجام نميشود که این ميتواند باعث افزایش امنیت گردد‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫شاخص مبتنی بر توابع درهم ساز (‪)2‬‬
‫•‬
‫اکر ‪ ri‬رابطه ای با شمای )‪ Ri(Ai1, Ai2, . . . , Ain‬و ‪ rki‬رابطه متناظر رمز شده آن باشد‪ ،‬برای‬
‫هر صفت ‪ Aij‬در ‪ Ri‬که بخواهیم برای آن شاخص تعریف کنیم‪ ،‬تابع درهم ساز یک طرفه‬
‫‪ h: Dij  Bij‬تعریف می شود که ‪ Dij‬دامنه ‪ Aij‬و ‪ Bij‬دامنه شاخص ‪ Ij‬متناظر با ‪ Aij‬است‪.‬‬
‫)‪for all x, y in Dij; if x = y then h(x)= h(y‬‬
‫•‬
‫برد ‪ h‬از دامنه آن کوچکتر است ‪.‬‬
‫– امکان برخورد وجود دارد‪.‬‬
‫•‬
‫‪MCI‬‬
‫برای هر دو مقدار تصادفی متفاوت ولی نزدیک به هم ‪ x‬و ‪ y‬در دامنه ‪،(| x − y |< ε) Dij‬‬
‫توزیع احتمالی )‪ h(x) − h(y‬یکنواخت است‪.‬‬
‫– تابع درهم ساز ترتیب خصیصه در دامنه را حفظ نمی کند‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫•‬
‫شاخص مبتنی بر توابع درهم ساز – ویژگی ها‬
‫•‬
‫اجرای پرس و جوهای تساوی (مانند روش های شاخص دهی مبتنی بر ‪ )bucket‬ممکن است‪.‬‬
‫– هر شرط ‪ Aij=v‬به شرط )‪ ،Ij=h(v‬که ‪ Ij‬شاخص متناظر با ‪ Aij‬در جدول رمز شده است‪ ،‬تبدیل می‬
‫شود‪.‬‬
‫•‬
‫برخورد در توابع درهم ساز باعث ارسال چندتایی های اضافی به سمت کارخواه می شود‪.‬‬
‫– تابع درهم ساز فاقد برخورد مشکل ارسال نتایج زیادی به کارخواه را رفع می کند ولی احتمال تحلیل‬
‫های فرکانسی را افزایش می دهد‪.‬‬
‫•‬
‫مشکل اصلی روش های شاخص دهی مبتنی بر توابع درهم ساز عدم پشتیبانی از پرس و‬
‫جوهای بازه ای است‪.‬‬
‫– دامیاني و همکارانش براي اضافه کردن قابلیت انجام جستجوي بازهاي به این روش از شاخص مبتنی‬
‫بر درخت ‪ B+‬در کنار این نوع شاخص دهی استفاده کردند‪.‬‬
‫‪36‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫شاخص مبتنی بر درخت ‪B+‬‬
‫•‬
‫یکی از روش های شاخص دهی استفاده از ساختار داده ای درخت ‪ B+‬است‪.‬‬
‫•‬
‫در درخت ‪ ،B+‬گره های داخلی به طور مستقیم به چندتایی ها در پایگاه داده اشاره نمی کنند‬
‫بلکه به سایرگره ها در ساختار اشاره می نمایند‪.‬‬
‫•‬
‫گره های برگ مستقیما ر به چندتایی هایی در پایگاه داده با مقادیر مشخص برای صفت‬
‫شاخص اشاره می کنند‬
‫•‬
‫درخت ‪ B+‬می تواند برای هر صفت ‪ Aij‬در شمای ‪ Ri‬که در شروط پرس و جو ظاهر می‬
‫شود‪ ،‬تعریف شود‪.‬‬
‫•‬
‫شاخص توسط کارخواه روی مقادیر رمز نشده صفت ساخته شده و سپس به شکل رمز شده‬
‫روی کارگزار همراه با پایگاه داده رمز شده ذخیره می گردد‪.‬‬
‫•‬
‫ساختار درخت ‪ B+‬به جدولی با دو صفت شناسه گره و محتوای گره تبدیل می شود‪ .‬این‬
‫جدول برای هر گره یک ردیف دارد‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫مثال‬
‫‪38‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫روش ارزیابی پرس و جو در درخت ‪B+‬‬
‫•‬
‫فرم کنید‪ ،‬کارخواه اجراي پرسوجویي با شدرط ‪ A > v‬را درخواسدت کدرده کده ‪ v‬یدک مقددار ثابدت‬
‫است‪ .‬کارخواه باید درخت ‪ B‬ذخیره شده روي کارگزار را براي یافتن محل ‪ ،v‬پیمایش کند‪.‬‬
‫ردیدف بدا شدمارهي ‪1‬‬
‫– کارخواه درخواستي براي دریافت ریشدهي درخدت ‪ B‬انجدام ميدهدد‪(.‬ریشدهي درخدت‪،‬‬
‫‌‬
‫است‪ ).‬این ردیف به کارخواه ارسال و در آنجا رمزگشایي و پردازش ميشود‪.‬‬
‫– با توجه به مقدار ‪ ،v‬گرهي بعدي که باید پیمایش شود انتخاب شده و درخواستی مبني بر ارسال آن گره بده‬
‫کارگزار فرستاده ميشود‪ .‬این روند تا پیدا کردن برگ حاوي ‪ v‬ادامه پیدا ميکند‪.‬‬
‫– پددس از پیدددا شدددن ‪ ،v‬تمددام برگهدداي بعددد از آن بدده سددمت کددارخواه ارسددال ميشددوند‪ .‬ایددن گرههددا در سددمت‬
‫کارخواه رمزگشایي شده و شمارهي رکوردهاي مورد نظر پیدا شده به سمت کارگزار ارسال ميشود‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫شاخص مبتنی بر درخت ‪ -B+‬ویژگی ها‬
‫•‬
‫درخت ‪ B+‬در پاسخ به پرس و جو‪ ،‬چندتایی اضافی به سمت کارخواه نمی فرستد‪.‬‬
‫•‬
‫هزینه ارزیابی شرایط پرس و جو برای کارخواه نسبت به روش های مبتنی بر باکت و‬
‫توابع درهم ساز بسیار بیشتر است‪.‬‬
‫– به همین دلیل معمویر درخت ‪ B+‬را در کنار یکی از روش های شاخص دهی مبتنی بر باکت یا‬
‫توابع در هم ساز بکار برده و از درخت ‪ B+‬تنها در هنگام ارزیابی بازه ها در پرس و جو ها‬
‫استفاده می نمایند‪.‬‬
‫•‬
‫با توجه به این که محتوای درخت ‪ B+‬در سمت کارگزار رمزنگاری شده است‪ ،‬این روش‬
‫در برابر حمالت استنتاجی مقاوم است‪.‬‬
‫‪40‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫جستجوی مبتنی بر شاخص در داده های رشته ای‬
‫•‬
‫روشی مبتنی بر شاخص برای پرس و جو روی داده هدای رشدته ای توسدط ‪ Wang‬ارائده‬
‫شده است (‪.)2004‬‬
‫•‬
‫با اسدتفاده از روش واندگ‪ ،‬ميتدوان بده جسدتجوي الگوهداي دلخدواه در دادههداي رمزشدده‬
‫پرداخت‪.‬‬
‫•‬
‫ریزدانگی رمزنگاری در روش ‪ ،Wang‬در سطح فیلد است‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫مراحل رمزنگاری‬
‫‪.1‬‬
‫به هر رشته ‪ S‬که از ‪ n‬کاراکتر ‪ c1c2…cn‬تشکیل شدده اسدت‪ ،‬مقددار شاخصدی بده طدول‬
‫‪ m‬بیت اختصاص داده ميشود‪.‬‬
‫‪.2‬‬
‫هر رشتهی ‪ S = c1c2…cn‬به رشدتهی ‪S'= s1s2…s2n-2‬کده در آن ‪si = cici+1‬اسدت‪،‬‬
‫بسط داده میشود‪.‬‬
‫‪.3‬‬
‫با اسدتفاده از تدابع درهمسداز ‪ ،h‬مقدداري بدین ‪ 0‬تدا ‪ m‬بدراي هدر کددام از ‪ si‬هدا بده دسدت‬
‫ميآید‪.‬‬
‫‪.4‬‬
‫اگددر مقدددار )‪ h(si‬برابددر بددا ‪ k‬باشددد‪ .‬در آن صددورت بیددت شددماره ‪k‬ام در شدداخص مربوطدده‬
‫برابر با یک ميشود‪.‬‬
‫‪42‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫مثال‬
‫‪MCI‬‬
‫)‪S1= (abcehklst‬‬
‫•‬
‫‪m=16‬‬
‫•‬
‫•‬
‫تابعی در هدم سداز دوتدایی هدای ‪ ،... ،bc ،ab‬و ‪ st‬را بده عدددی بدین ‪ 0‬تدا ‪ 15‬نگاشدت‬
‫می کند‪.‬‬
‫•‬
‫‪S2=Index(abcehklst)= (0010100010101001)2‬‬
‫•‬
‫هشت رشته ‪ 2‬تایی وجود دارد در حالیکه ‪ 6‬بیت یک در ‪ S2‬دیده می شود‪ .‬یعنی برخدی‬
‫از کاراکترهای دوتایی به یک مقدار توسط ‪ h‬نگاشت می‪ .‬شوند‬
‫‪43‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫روش جستجو‬
‫مقدددار رشددتهای موجددود در الگددوی رشددته ای مددورد پددرس و جددو بسددط داده میشددود و مقددادیر‬
‫اختصاص داده شده توسط تابع ‪ h‬به هر دو حرف متوالی آن به دست میآید‪.‬‬
‫‪.1‬‬
‫–‬
‫پرس و جو روی مقدار رشته ای به پرس و جو روی شاخص (رشته بیتی) تبدیل می شود‪.‬‬
‫‪.2‬‬
‫مقادیر به دست آمده‪ ،‬مکان بیتهایی از مقادیر شاخص را که باید ‪ 1‬باشدند تدا شدرط پرسوجدو‬
‫ارضاء شود‪ ،‬مشخص میکند‪ .‬این مقادیر به سمت کارگزار ارسال میشوند‪.‬‬
‫‪.3‬‬
‫کارگزار به ازای هر مقددار شداخص‪ ،‬مقدادیر بیتهدای آن در مکانهدای ارسدال شدده را بررسدی‬
‫میکند‪ ،‬اگر همه دارای مقدار ‪ 1‬بودند‪ ،‬مقدار شاخص را بده عندوان یکدی از جوابهدا بده سدمت‬
‫کارخواه برمی گرداند‪.‬‬
‫–‬
‫در جواب های ارسال شده ممکن است نتایج اضافی وجود داشته باشد که باید توسط کدارخواه مجدددا ر‬
‫پردازش شده تا جواب دقیق به دست آید‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫حالت های مختلف پرس و جوی رشته ای‬
‫‪.1‬‬
‫تطبیق دقیق‬
‫◦ شرط ‪ attribute=value‬روی جددول رمدز نشدده تبددیل مدی شدود بده )‪ aS = index (value‬کده ‪ aS‬مقددار‬
‫رمز شده ‪ attribute‬در سمت کارگزار است‪.‬‬
‫‪.2‬‬
‫تطبیق الگویی‬
‫◦ شرط ‪ attribute LIKE value‬روی جدول رمز نشده‪:‬‬
‫)‪a like c0c1…ck => ((as)H(c0c1)=1 AND (as)H(c1c2)=1 AND … AND (as)H(ck-1ck)=1‬‬
‫‪.3‬‬
‫پرس و جوی با شرایط بولی‬
‫‪(attribute=value 1) OR (attribute=value 2), (attribute like value 1) AND (attribute like‬‬
‫)‪value 2), (attribute like value 1) AND NOT (attribute like value 2‬‬
‫– از حالت اول و دوم قابل استنتاج است‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫مثال‬
MCI
select eid, age from employee where did like ‘chess’
Transforms to
select * from employeeE where
(didsH(ch)=1) and (didsH(he)=1) and (didsH(es)=1) and (didsH(ss) =1)
92-91 ‫ نيمسال دوم تحصيلي‬-‫درس امنيت پايگاه داده ها‬
46
‫تحلیل روش‬
‫•‬
‫در این روش‪ ،‬در صورتي که طول ‪ m‬بزرگ انتخاب شود‪ ،‬حمله متن اصلی معلوم محتمل‬
‫است‪.‬‬
‫– هر زوج کاراکتر به مقدار یکتایی در شاخص منتسب می شوند و امکان تحلیل فرکانسي و‬
‫شکستن شاخص وجود دارد‪.‬‬
‫•‬
‫در صورت کوچک بودن ‪ ،m‬تعداد زیادی داده اشتباه به سمت کارخواه ارسال خواهد شد‪.‬‬
‫•‬
‫در جدول رمز شده فیلد اضافه ای برای شاخص باید در نظر گرفته شود که حجم آن به‬
‫اندازه شاخص (‪ )m‬وابسته است‪.‬‬
‫– در صورتی که ‪ n‬فیلد نیاز به رمز شدن داشته و طول شاخص به طور متوسط ‪ m‬بیت باشد‪ ،‬میزان‬
‫فضای اضافی مورد نیاز ‪ m*n‬بیت برای شاخص است‪.‬‬
‫‪47‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫جمع بندی روش ها ی مبتنی بر شاخص‬
‫•‬
‫تحقیقات زیادی روی این گونه روش ها صورت گرفته و دارای زمینه تئوریک قوی می باشند‪ .‬حتی‬
‫دارای جبر رابطه ای مخصوص می باشند‪.‬‬
‫•‬
‫بیشتر فرایند اجرای پرس و جو بر روی کارگزار متمرکز است‪.‬‬
‫•‬
‫هزینه ذخیره سازی تقریبا ر دو برابر ذخیره سازی معمولی است‪ .‬زیرا غیر از مقدار رمز شده ذخیره‪،‬‬
‫مقدار شاخص نیز ذخیره می گردد‪.‬‬
‫•‬
‫امکان استنتاج و افشای اطالعات وجود دارد که میزان آن وابسته به تعریف شاخص است‪.‬‬
‫–‬
‫‪ Evdokimov‬و همکارانش اثبات کرده اند که تقریبا ر تمام روش های مبتنی بر شاخص ذاتا ر امن نیستند‪ .‬به ویژه‬
‫روشهایی که در پاسخ به پرس وجو چندتایی های اضافی تولید نمی کنند‪ ،‬در معرم تهدید افشای اطالعات قرار‬
‫دارند‪.‬‬
‫•‬
‫پرس و جوهای شامل پیوند در این روش قابل اعمال است‪.‬‬
‫•‬
‫پرس و جوهای تساوی‪ ،‬و الگویی برای داده های عددی و رشته ای قابل انجام است‪.‬‬
‫•‬
‫امکان اجرای پرس و جوهای بازه ای بسته به تعریف شاخص دارد‪.‬‬
‫•‬
‫امکان اجرای پرس و جوهای شامل توابع تجمعی وجود ندارد‪.‬‬
‫•‬
‫چون با تغییر توزیع داده ها نیاز به دسته بندی مجدد داده ها برای تعریف شاخص وجود دارد‪ ،‬این‬
‫روش بیشتر برای داده های فقط خواندنی مناسب است‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫روش های مبتنی بر کاربرد توابع همریخت اختفایی‬
‫‪MCI‬‬
‫•‬
‫توابع همریخت اختفایی نوعی توابع برای رمزنگاری است‪.‬‬
‫•‬
‫در روش رمزنگداری همریخدت اختفدایی (‪ ،)privacy homomorphism‬حاصدل انجدام یدک عمدل‬
‫روي دادههاي رمزشده‪ ،‬معادل رمزشده حاصل عملي دیگر روي دادههاي اصلي است‪.‬‬
‫‪β(xE , yE) = (α(x,y))E‬‬
‫•‬
‫)‪– E(x) . E(y) = E(x+y‬‬
‫•‬
‫بوسیلهي توابع رمزنگاري همریخدت اختفدائی ميتدوان برخدي از عملیدات مانندد جمدع و ضدرب را بده‬
‫طور مستقیم روي دادههاي رمزشده انجام داد‪.‬‬
‫•‬
‫فیلدهایی را که روی آنها پرس و جدوی تجمعدی اجدرا مدی شدود‪ ،‬بدا اسدتفاده از رمزنگداری همریخدت‬
‫رمز می کنند‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫روش هاسیگموس‬
‫‪MCI‬‬
‫•‬
‫هاسددیگموس بددا اسددتفاده از یددک تددابع رمزنگدداري همریخددت اختفددائی کدده دو خاصددیت جمعددي و‬
‫ضربي را پشتیبانی می کند‪ ،‬توابع جمع و ضرب را روي دادههاي رمزشده اجرا کرد‪.‬‬
‫•‬
‫خواص تابع رمزنگاری همومورفیسم استفاده شده‪:‬‬
‫– کلید رمزنگاری )‪ K=(p, q‬که ‪ p‬و ‪ q‬به وسیله کاربر تعیین می شوند‪.‬‬
‫که به کارگزار داده می شود ‪n = p.q‬‬
‫–‬
‫)‪– qq-1 =1 (mod p‬‬
‫)‪– pp-1 = 1 (mod q‬‬
‫)‪– Ek(a mod p, a mod q‬‬
‫–‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫مثال‬
‫‪MCI‬‬
‫‪• p=5,q=7‬‬
‫)‪• n = p.q = 35 k = (5, 7‬‬
‫•‬
‫می خواهیم ‪ a1 = 8‬و ‪ a2 = 12‬را جمع کنیم‬
‫)‪• E(a1) = (3,1‬‬
‫)‪• E(a2) = (2,5‬‬
‫)‪• E (a1) + E (a2) = (3+2, 1+5) = (5, 6‬‬
‫)‪• D (5, 6) = 5*qq-1 + 6*pp-1 (mod 35‬‬
‫‪= (5*7*3 + 6*5*3) (mod 35) =195 (mod 35) = 20‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫مشکل استنتاج‬
‫•‬
‫اختفائی معرفي شده کامالر امن نیست و کارگزار ميتواندد مقددار‬
‫استفاده از تابع رمزنگاري همریخت‬
‫‌‬
‫اصلي برخي از مقادیر رمزشده را به دست آورد‪.‬‬
‫–‬
‫فدددرم کنیدددد‪ x ،‬و ‪ y‬دو عددددد باشدددند کددده بددده صدددورت )‪ (xp,xq‬و )‪ (yp,yq‬رمدددز شددددهاند‪ .‬اگدددر ‪z=x.y‬باشدددد‪ ،‬رابطدددهي‬
‫)‪ (zp,zq)=(xp,xq).(yp,yq‬نیز بین مقادیر رمزشده این متغیرها وجود دارد‪ .‬در چنین حالتی کارگزار ميتواند مقادیر اصلي‬
‫این متغیرها را به دست آورد‪ .‬کارگزار شروع به جمع کردن )‪ (xp, xq‬با خودش ميکند و این کار را آنقدر ادامه ميدهد تا‬
‫نتیجه آن با )‪ (zp, zq‬برابر شود‪ .‬تعداد این جمع کردنها برابر با عدد ‪ y‬است‪.‬‬
‫•‬
‫هاسیگموس با اضافه کردن ندویز تصدادفي بده مقدادیر رمزشدده‪ ،‬مشدکل را حدل مدی کندد‪ R(x) .‬یدک‬
‫تابع شبه تصادفي است‪.‬‬
‫•‬
‫نویز در هنگام رمزگشایي از دادهها حذف ميشود‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫روش های رمزنگاری مبتنی بر حفظ ترتیب‬
‫•‬
‫در روش های رمزنگاری با حفظ ترتیب (‪ )Order Preserving‬داده ها به گونه ای رمز می‬
‫شوند که ترتیب داده ها پس از رمز شدن با ترتیب داده های اصلی یکسان باشد‪.‬‬
‫•‬
‫این نوع رمزنگاری برای اجرای پرس و جو های بازه ای مناسب است‪.‬‬
‫•‬
‫آگراوال برای رمزنگاری داده های عددی و اجرای پرس و جوهای بازه ای روی آنها از این روش‬
‫استفاده کرده است‪.‬‬
‫•‬
‫فرم کنید‪ ،‬دادههاي اصلي داراي توزیدع اولیده ‪ A‬هسدتند‪ .‬ایدن دادههدا بده نحدوي رمدز ميشدوند‪ ،‬کده‬
‫عالوه بر حفظ ترتیب از توزیع دلخواه '‪A‬تبعیت کنند‪.‬‬
‫– ابتدا دادهها به توزیع یکنواخت ‪ f‬نگاشت شده و سپس توزیع ‪ f‬به توزیع هدف '‪ A‬نگاشت ميشود‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫مراحل رمزنگاری‬
‫• ‪ OPES‬در سه مرحله کار ميکند‪(Order Preserving Encryption Scheme).‬‬
‫مدددل کددردن‪ :‬دادههدداي اصددلي بدده تعدددادي دسددته تقسددیم ميشددوند و توزیددع دادههدداي هددر دسددته مدددل‬
‫ميشود‪.‬‬
‫‪.1‬‬
‫•‬
‫روش هایی برای تعیین تعداد دسته ها و طول هر دسته وجود دارد‪.‬‬
‫•‬
‫افزایش دستهها منجر به افزایش هزینههاي مدل ميشود‪.‬‬
‫مسطح کردن‪ :‬دادههای اصلي ‪ P‬به دادههای مسطح ‪F‬بده قسدمي تبددیل شدود کده مقدادیر ‪F‬داراي‬
‫توزیع یکنواخت باشند‪.‬‬
‫‪.2‬‬
‫‪.3‬‬
‫•‬
‫در مرحلهي مسطح کردن براي هر دسته‪ ،‬یک تابع نگاشت ‪ M‬ایجاد ميشود‪ .‬تابع ‪ M‬هر دسته را بده دسدتهاي‬
‫با توزیع یکنواخت نگاشت ميکند‪.‬‬
‫•‬
‫دو مقدار متفاوت در داده های اصلي همیشه به دو مقدار متفاوت از فضاي مسطح شده نگاشت شوند‪.‬‬
‫تغییر‪ :‬دادههای مسطح ‪ F‬به دادههدای رمزشدده ‪ C‬تبددیل ميشدود‪ ،‬بده قسدمي کده مقدادیر ‪ C‬داراي‬
‫توزیع نهایي که براي دادههاي رمزشده در نظر گرفته شده بود‪ ،‬باشند‪.‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫‪MCI‬‬
‫‪B0c‬‬
‫‪B0f‬‬
‫‪B0f‬‬
‫‪B0‬‬
‫‪Bm 1‬‬
‫‪Bkf1‬‬
‫‪Bmf 1‬‬
‫‪Bkc1‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫ویژگی های روش رمزنگاری با حفظ ترتیب‬
‫•‬
‫اجرای پرس و جوها در این روش چندتایی های اضافی به سمت کارخواه ارسال نمی‬
‫کند‪.‬‬
‫•‬
‫امنیت در این روش زمانی تامین می شود که کارگزار‪/‬حمله کننده اطالعاتی در مورد‬
‫پایگاه داده اصلی و یا دامنه صفت ها نداشته باشد‪.‬‬
‫– این روش در مقابل حمله متن اصلی معلوم آسیب پذیر است‪.‬‬
‫‪56‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬
‫‪MCI‬‬
‫‪MCI‬‬
‫پایان‬
‫‪57‬‬
‫درس امنيت پايگاه داده ها‪ -‬نيمسال دوم تحصيلي ‪92-91‬‬