اطلاعیه

Collapse
No announcement yet.

رمزنگاری AES و DES

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #16
    پاسخ : رمزنگاری AES و DES

    نوشته اصلی توسط mahdi421
    آیا امکان خواندن کدهای رمزی که بوسیله XMEGA AES تولید میشه تو یکی از نرم افرارهای برنامه نویسی ( VB.NET و ...) وجود داره؟
    هدف من ارسال و دریافت اطلاعات رمز شده از طریق پورت سریال به کامپیوتر هست
    هر اطلاعاتی صرف نظر از منبع تولید آن که می تواند ناشی از رمزنگاری AES باشد، می تواند از طریق USART ارسال شود.
    اوژن: به معنای افکننده و شکست دهنده است
    دانایی، توانایی است-Knowledge is POWER
    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

    دیدگاه


      #17
      پاسخ : رمزنگاری AES و DES

      مشکل اینکه این کدهای ارسال شده بوسیله xmega رو چه جوری بوسیله یه نرم افزار دیکد کنیم ؟
      مثلا با vb.net اطلاعات رو از پورت سریال بگیریم و متن اصلی رو ازش استخراج بکنیم
      متاسفانه هیچکدام از سورس های توی اینترنت شباهتی با کدهای رمزی تولید شده با xmega رو ندارد مثلا
      http://www.nakov.com/blog/2011/12/26/online-aes-encryptor-decryptor-javascript/

      دیدگاه


        #18
        پاسخ : رمزنگاری AES و DES

        نوشتن برنامه برای رمزگشایی از اطلاعات ارسال شده مستلزم صرف وقت کافی و تسلط کامل بر پروسه encryption-decryption است و یک کار تخصصی و وقت گیر است. در این مسیر سورس های آماده ای هم وجود دارد که می تواند راهگشا باشد. مثلا با زبان C:

        https://polarssl.org/aes-source-code

        اوژن: به معنای افکننده و شکست دهنده است
        دانایی، توانایی است-Knowledge is POWER
        برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
        وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
        قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
        اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
        ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

        دیدگاه


          #19
          پاسخ : رمزنگاری AES و DES

          با اجازه اساتید من هم یه نظری در تکمیل گفته های دوستان بگم
          با ویژوال بیسیک یا ... میشه دیکد کرد بدون شک . یه جورایی مثل هک هست دیگه . اما همونطور که دوستان گفتن وقت گیر هست
          اما اگر واقعا میخواهید انجام بدید ، این راهی که میگم می تونه یه روشی باشه برای بدست اوردن . که البته توسط خودم تو یه مورد دیگه تست شده و حتما هم که جواب میده مخصوصا برای الگوریتمهای ثابت . برای الگوریتمهای متغییر یکمی باید شانس بیاری با این روش
          بایستی یه دیتای ثابت رو از طریق رمز نگاری شده توسط یه کلید ثابت رو از طریق مثلا سریال ارسال کنی و مقادیر دریافتی رو با دیتایی که ارسال کردی رو تجزیه تحلیل کنی
          که اینجاست که خیلی وقت گیر هست و نیاز به تست زیاد داره ، بایستی یه روند منظم رو دنبال کنی تا چیزی جا نمونه . این جور کارها بایستی صرفه داشته باشه
          تا بشه وقت گذاشت روش
          البته این نظر من بود .
          موفق باشید
          هميشه به ياد خدا باش !

          دیدگاه


            #20
            پاسخ : رمزنگاری AES و DES

            اگر کلید encryption در اختیار باشد (که در مورد سوال اخیر در دسترس است)، پروسه decryption به راحتی توسط نرم افزار نوشته شده با نرم افزار High level قابل انجام است. اما اگر این کلید در اختیار نباشد، برای روش AES به دلیل حالات مختلفی که بوجود می آید این عمل با یک کامپیوتر قریب به غیرممکن است. در این مورد در پست زیر توضیح داده شده است:

            http://www.eca.ir/forum2/index.php?t...7000#msg187000
            اوژن: به معنای افکننده و شکست دهنده است
            دانایی، توانایی است-Knowledge is POWER
            برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
            وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
            قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
            اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
            ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

            دیدگاه


              #21
              پاسخ : رمزنگاری AES و DES

              بله بالاخره حل شد این هم سورس برای کد/دیکد الگوریتم AES تو VB.NET 2008 هست
              (.net framework 3.5)
              تعداد کارکترهای دیتای ورودی هم حتما باید یه ضریبی از 16 باشه

              http://www.uplooder.net/cgi-bin/dl.cgi?key=a856eca86973984b16299146258610f1



              کد:
              Imports System.Security.Cryptography
              Imports System.Text
              Imports System
              Imports System.IO
              
              
              Public Class Form1
              
              
                Dim ENCRYP_DECRYPT_BYTE_DATA(500) As Byte
                Dim OIUT As String
              
              
                Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
              
                  ENCRYPT(TextBox1.Text)
              
                End Sub
              
              
                Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
              
                  TextBox5.Text = DECRYPT(ENCRYP_DECRYPT_BYTE_DATA)
              
                End Sub
              
              
              
                Public Function ENCRYPT(ByVal INPUT_STRING As String) As Byte()
              
                  Dim EN_oUT_DATA(500) As Byte
                  Dim X As Byte
              
                  Dim prov As System.Security.Cryptography.Aes
                  prov = System.Security.Cryptography.Aes.Create
                  prov.BlockSize = 128
                  prov.Mode = Security.Cryptography.CipherMode.ECB
                  prov.KeySize = 128
                  prov.Padding = Security.Cryptography.PaddingMode.None
              
                  'prov.Key = New Byte() {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
                  Dim K As Byte() = {Val(Mid(TextBox3.Text, 1, 3)), Val(Mid(TextBox3.Text, 5, 3)), _
                         Val(Mid(TextBox3.Text, 9, 3)), Val(Mid(TextBox3.Text, 13, 3)), _
                         Val(Mid(TextBox3.Text, 17, 3)), Val(Mid(TextBox3.Text, 21, 3)), _
                         Val(Mid(TextBox3.Text, 25, 3)), Val(Mid(TextBox3.Text, 29, 3)), _
                         Val(Mid(TextBox3.Text, 33, 3)), Val(Mid(TextBox3.Text, 37, 3)), _
                         Val(Mid(TextBox3.Text, 41, 3)), Val(Mid(TextBox3.Text, 45, 3)), _
                         Val(Mid(TextBox3.Text, 49, 3)), Val(Mid(TextBox3.Text, 53, 3)), _
                         Val(Mid(TextBox3.Text, 57, 3)), Val(Mid(TextBox3.Text, 61, 3))}
              
              
                    prov.Key = K
              
              
                    Dim yourBytes As Byte() = System.Text.Encoding.UTF8.GetBytes(INPUT_STRING)
              
                    TextBox2.Text = ""
              
                    For X = 1 To Len(TextBox1.Text)
                      TextBox2.Text = TextBox2.Text + Str(Asc(Mid(TextBox1.Text, X, 1))) + " "
                    Next
              
              
                  Dim enc = prov.CreateEncryptor.TransformBlock(yourBytes, 0, Len(TextBox1.Text), EN_oUT_DATA, 0)
              
              
              
                    TextBox4.Text = ""
              
                    For X = 0 To Len(TextBox1.Text) - 1
                    ENCRYP_DECRYPT_BYTE_DATA(X) = EN_oUT_DATA(X)
                    TextBox4.Text = TextBox4.Text + Str(EN_oUT_DATA(X)) + " "
              
                    Next
              
              
                    Return ENCRYP_DECRYPT_BYTE_DATA
                End Function
              
              
                Public Function DECRYPT(ByVal INPUT_STRING_BYTE() As Byte) As String
              
                  Dim DE_oUT_DATA(500) As Byte
                  Dim X As Byte
              
                  Dim prov As System.Security.Cryptography.Aes
                  prov = System.Security.Cryptography.Aes.Create
                  prov.BlockSize = 128
                  prov.Mode = Security.Cryptography.CipherMode.ECB
                  prov.KeySize = 128
                  prov.Padding = Security.Cryptography.PaddingMode.None
              
                  'prov.Key = New Byte() {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
                  Dim K As Byte() = {Val(Mid(TextBox3.Text, 1, 3)), Val(Mid(TextBox3.Text, 5, 3)), _
                       Val(Mid(TextBox3.Text, 9, 3)), Val(Mid(TextBox3.Text, 13, 3)), _
                       Val(Mid(TextBox3.Text, 17, 3)), Val(Mid(TextBox3.Text, 21, 3)), _
                       Val(Mid(TextBox3.Text, 25, 3)), Val(Mid(TextBox3.Text, 29, 3)), _
                       Val(Mid(TextBox3.Text, 33, 3)), Val(Mid(TextBox3.Text, 37, 3)), _
                       Val(Mid(TextBox3.Text, 41, 3)), Val(Mid(TextBox3.Text, 45, 3)), _
                       Val(Mid(TextBox3.Text, 49, 3)), Val(Mid(TextBox3.Text, 53, 3)), _
                       Val(Mid(TextBox3.Text, 57, 3)), Val(Mid(TextBox3.Text, 61, 3))}
              
              
                  prov.Key = K
              
                  Dim enc = prov.CreateDecryptor.TransformBlock(INPUT_STRING_BYTE, 0, Len(TextBox1.Text), DE_oUT_DATA, 0)
              
                  OIUT = ""
              
                  For X = 0 To Len(TextBox1.Text) - 1
                    OIUT = OIUT + Chr(DE_oUT_DATA(X))
                  Next
              
              
                  Return OIUT
              
                End Function
              
              
              End Class

              دیدگاه


                #22
                تفاوت کدینگ des در xmega و دیگر des ها

                سلام

                من اطلاعاتی درباره کدینگ ندارم ،در یک پروژه احتیاج به کدینگ des هست و من یک xmega
                را فقط برای کدینگ قرار دادم .
                درxmega با استفاده از قابلیت خود xmega قسمت کدینگ و دیکدینگ را انجام دادهم.

                امروز دوباره برای اینکه قسمت xmega را حذف کنم در اینترنت این کد را پیدا کردم :

                http://www.ti.com/tool/des_102612?ke...arch=Search-EN

                این کد را اجرا کردم و این کد عمل کدینگ و دیکدینگ را انجام داد.

                حالا مورد جالب اینکه خروجی این 2 سیستم با هم یکی نیست !
                و متاسفانه اطلاعاتی که با xmega کد شده باشه با برنامه بالا قابل رمز گشایی نیست.

                یعنی ما چند نوع des داریم؟

                در کد هم از Triple DES استفاده نکردم .



                از جمله ی رفتگان این راه دراز
                باز آمده ای کو که به ما گوید راز
                هان بر سر این دو راهه از روی نیاز
                چیزی نگذاری که نمی آیی باز

                دیدگاه


                  #23
                  پاسخ : تفاوت کدینگ des در xmega و دیگر des ها

                  اشتباه از خود من بود
                  R0 کمترین بایت است . که من بالاترین گرفته بودم !

                  هر دو درست کار میکنند.
                  از جمله ی رفتگان این راه دراز
                  باز آمده ای کو که به ما گوید راز
                  هان بر سر این دو راهه از روی نیاز
                  چیزی نگذاری که نمی آیی باز

                  دیدگاه

                  لطفا صبر کنید...
                  X