CryptoMath

سایتی برای آشنایی با رمزنگاری

CryptoMath

سایتی برای آشنایی با رمزنگاری

۲ مطلب با کلمه‌ی کلیدی «SageMath» ثبت شده است

سیج برای رمزنگارها

مرصاد | شنبه, ۱۰ مهر ۱۳۹۵، ۰۹:۵۹ ب.ظ

مارتین آلبرشت (Martin Albrecht) یکی از محققین رمزنگاری و همچنین یکی از توسعه‌دهندگان نرم‌افزار متن‌باز و رایگان Sage است. او تحقیقات زیادی در زمینه حمله‌های جبری داشته و پایان‌نامه ارشد و دکترا  وی نیز در زمینه‌ حمله‌های جبری بوده است. قسمتی از ماژول‌های مرتبط با رمزنگاری در نرم‌افزار سیج (به خصوص آن دسته از ماژول‌های مرتبط با حمله‌های جبری نظیر mq) توسط وی طراحی و پیاده‌سازی شده‌اند.

martin albrecht

malb home page: https://martinralbrecht.wordpress.com

یکی از خصوصیات بارز این محقق این است که سورس بسیاری از کد‌ها و ارائه‌های خود را از طریق سایت‌هایی نظیر Github و Bitbucket در اختیار عموم قرار می‌دهد. او فعالیت‌های زیادی در زمینه ترویج و آموزش سیج در جامعه دانشگاهی داشته و به‌خصوص سعی کرده روش استفاده از ماژول‌های مختص رمزنگاری در نرم‌افزار سیج را به رمزنگارها آموزش دهد تا  به نحوی آن‌ها را به استفاده از نرم‌افزار سیج تشویق کند. در زیر اسلاید یکی از ارائه‌های وی با موضوع «سیج برای رمزنگارها» را قرار داده‌ام تا شما نیز با کاربرد این نرم‌افزار در رمزنگاری آشنا شوید.


دریافت
عنوان: Sage for Cryptographers
حجم: 1.43 مگابایت
توضیحات: آشنایی با کاربرد سیج در رمزنگاری

  • مرصاد

SageMath

System for Algebra and Geometry Experimentation


sagemath یک نرم‌افزار ریاضی است که بسیاری از شاخه‌های ریاضی از جمله جبر مجرد، جبر خطّی، نظریه‌ی اعداد و نظریه‌ی گراف، آمار و احتمال و مثل همه‌ی نرم‌افزار‌های ریاضی دیگر ریاضی عمومی و بهینه‌سازی و آنالیز عددی را می‌پوشاند. امّا آن‌چه سبب شده تا در این وبگاه به معرفی این نرم افزار بپردازم بسته‌ها و توابع مرتبط با رمزنگاری تعبیه شده در این نرم‌افزار و از آن مهم‌تر استقبال جامعه رمزنگاری در استفاده از این نرم‌افزار بوده است.


در جامعه‌ی دانشگاهی ایران (و جهان) نرم افزار‌های ریاضی نظیر Matlab ،Maple و Mathematica بیشتر شناخته شده‌اند. این نرم افزار‌ها هر یک در زمینه‌ی خاصی قدرتمند هستند برای مثال Matlab برای محاسبات ماتریسی و هر آن‌چه بتوان با ماتریس مدل کرد قدرت زیادی دارد علاوه بر آن بیشتر از هر نرم‌افزار ریاضی دیگر در جامعه مهندسی شناخته شده و جعبه‌ابزارهای زیادی به آن افزده شده و به نوعی آن را به یک نرم افزار همه‌کاره در مهندسی تبدیل کرده و در بسیاری از رشته‌های مهندسی مثل برق، مکانیک، مهندسی شیمی و ... نیز از آن استفاده می‌شود. اما این نرم افزار، علی‌رغم اپلیکیشن Mupad تعبیه شده در آن برای محاسبات نمادین، در محاسبات نمادین حرفی برای گفتن ندارد، در عوض Maple و Mathematica در محاسبات نمادین خوب عمل می‌کنند. قصد ندارم در این نوشته جایگزینی برای نرم‌افزار‌های فوق معرفی کنم چون همه‌ی ما به نوعی به نرم افزار‌های فوق عادت کرده‌ایم و ترک عادت موجب مرض است، بلکه قصد دارم تا شما را با نرم‌افزاری دیگر که بیشتر مناسب رمزنگاری است آشنا کنم.

sage اولین بار در ۲۴ فوریه‌ی ۲۰۰۵ به عنوان یک نرم‌افزار متن‌باز و رایگان تحت گواهی نامه‌ی GNU GPL و با هدف اولیه‌ی ((نرم افزاری متن‌باز و جایگزین برای Magma و Maple و Mathematica, Matlab)) تحت سرپرستی ریاضی‌دانی از دانشگاه واشنگتون به نام ویلیام آرتور اشتاین منتشر شد.


ویلیام اشتاین- سرپرست پروژه sagemath

http://www.wstein.org

سیج نرم‌افزاری پایتون مبنا است و شما می‌توانید برنامه‌هایتان محیط سیج را به زبان پایتون بنویسید. به این ترتیب به راحتی می‌توان توابع و رویه‌ها را در آن تعریف کرد ضمن این که از ویژگی شئ‌گرایی به خوبی پشتیبانی می‌کند. همان‌طور که در تیتر این مطلب مشاهده می‌کنید کلمه Sage مخفف عبارت System for Algebra and Geometry Experimentation و به معنای سامانه‌ی برای آزمایش‌های جبری و هندسی است.

خصوصیات بارز  نرم افزار sagemath:

  • محیط کاربری گرافیکی مبتنی بر مرورگر و سازگار با انواع مرورگرهای اینترنتی از جمله  Firefox, Opera, Konqueror, Google Chrome , Safari

  •  رابط کابری command-line با استفاده از IPython علاوه بر رابط گرافیکی

  • پشتیبانی از پردازش موازی با استفاده از پردازنده‌های چند هسته‌ای و یا چند پردازنده

  • حساب دیفرانسیل و انتگرال با استفاده از Maxiama و Sympy

  • جبر خطّی عددی با استفاده از GSL و SciPy و NumPy

  • کتاب‌خانه‌ای شامل توابع مقدماتی و پیشرفته‌ی ریاضی

  • رسم دو و سه بعدی گراف توابع عددی و یا نمادین

  • محاسبات ماتریسی (البته نه به سادگی کار با ماتریس‌ها در Matlab)

  • کتاب‌خانه‌ی آمار چند متغیره با استفاده از R و SciPy

  • حاوی توابعی آماده برای آنالیز و بصری سازی گراف‌ها و تحقیق در زمینه‌ی نظریه‌ی گراف

  • کتاب‌خانه‌‌‌‌ی شامل بسیاری از توابع نظریه اعداد

  • پشتیبانی از اعداد مختلط و دقت دلخواه در محاسبات و از همه مهم‌تر پشتیبانی خوب از محاسبات نمادین

  • حاوی کتاب‌خانه‌های استاندارد Python

  • اجرای کدهای Fortran و C و C++ ,Cython 

  • قابلیت فراخوانی از طریق نرم‌افزار Mathemtica

  • کتاب‌خانه‌ی حاوی  توابع مرتبط با رمزنگاری کلاسیک و مدرن

  •  شامل بسته‌های نرم‌افزاری در زمینه‌ی جبر از جمله Groebner Basis و SatSolver که در حملات جبری به سامانه‌های رمزنگاری مورد استفاده قرار می‌گیرند

  • سهولت کار با حلقه‌ی اعداد گویا و صحیح و حلقه‌های چند جمله‌ای با بیش از یک متغیر و نیز حلقه‌های خارج قسمتی و میدان‌های متناهی در مقایسه با نرم‌افزارهایی نظیر CoCoA

  • استفاده از تکنیک‌های پردازش کلمات شامل ویرایش فرمول‌ها و پشتیبانی  از latex برای نمایش زیبای خروجی‌های نمادین

  • قابل استفاده در سیستم‌‌عامل‌های مختلف از جمله لینوکس و ویندوز

  • این نرم‌افزار دارای یک نسخه آنلاین نیز هست. خوبی نسخه آنلاین این است که تقریبا کامل است و بیشتر کتاب‌خانه‌های اختیاری را در بردارد و نیازی نیست تا کتاب‌خانه‌ خاصی را به آن اضافه کنید. مهم‌تر از همه این که برخلاف نرم‌افزارهایی نظیر متلب که برای استفاده از نسخه آنلاین آن‌هم باید لایسنس داشته باشید، استفاده از نسخه آنلاین این نرم‌افزار کاملا رایگان و ساده است و شما با ساختن یک حساب کاربری که فقط به یک ایمیل و یک پسورد نیاز دارد می‌توانید به‌صورت آنلاین از این نرم‌افزار استفاده کنید.  پیشنهاد می‌کنم با مراجعه به لینک زیر یک‌بار این‌کار را انجام دهید.


توسعه نرم افزار sage

وقتی ویلیام اشتاین سرپرست پروژه سیج ، این نرم‌افزار را طراحی می‌کرد، نرم‌افزار‌های ریاضی متن باز زیادی به زبان‌های مختلف از جمله C و Fortran  و Python نوشته شده بودند. در این زمان توسعه دهندگان سیج به‌جای اختراع دوباره چرخ سعی کردند و افزودن یک نرم‌افزار دیگر به لیست نرم‌افزار‌های ریاضی موجود و به عبارت دیگر به جای نوشتن یک نرم‌افزار ریاضی از صفر، به جمع آوری بسته‌های آماده‌ی ریاضی که تا آن زمان نوشته شده بود در یک قالب واحد اقدام کردند به طوری که کاربر برای کار با آن‌ها فقط کافی است با زبان Python آشنایی داشته باشد(که برای شروع یک آشنایی مقدماتی با این زبان کافی است). علاوه بر این sage شامل صدها و هزاران خط کد منحصر بفرد است که ضمن افزودن برخی قابلیت‌های جدید به این بسته‌های آماده، به برقراری ارتباط بین این اجزا و ماژول‌های آماده می‌پردازند.

  • مرصاد