RSA ¾Ë°í¸®Áò

powered by Guardian


1. ½ÃÀÛÇϸç

RSA ¾Ë°í¸®ÁòÀº ¿äÁò ÀüÀÚ ¼­¸í¿¡ ¸¹ÀÌ ¾²ÀÌ´Â ¾Ë°í¸®ÁòÀÌ´Ù. ÀÌ ¾Ë°í¸®ÁòÀº °ø¿ëŰ/ºñ¹Ð۸¦ °¡Áö´Â, ºñ´ëĪ Ű ¾Ïȣȭ ¾Ë°í¸®ÁòÀÇ ´ëÇ¥ÁÖÀÚ°ÝÀÎ ¾Ë°í¸®ÁòÀÌ´Ù. ÀÌ RSA ´Â ¾Ë°í¸®ÁòÀÌ °£´ÜÇÑ ¹Ý¸é, ¸î°¡Áö ¼ö½ÄÀÌ ³ª¿À±â ¶§¹®¿¡ ½±°Ô ¼³¸íÇϱⰡ ½±Áö ¾Ê´Ù. ÇÊÀÚµµ ÀÌ ±Û¿¡¼­ µÇµµ·ÏÀÌ¸é ¼ö½ÄÀ» ¾È¾²·Á ÇßÁö¸¸, ¾î¿ ¼ö ¾øÀÌ ¼ö¸¹Àº ¼ö½ÄÀ» ¾²°Ô µÇ¾ú´Ù. ÀÌ ¼ö½ÄÀ» ¿ÏÀüÈ÷ ÀÌÇØÇÏÁö ¸øÇÏ´õ¶óµµ, ÀÏ´Ü RSA ¾Ë°í¸®ÁòÀÌ ¹«¾ùÀÌ´Ù ¶ó´Â °ÍÀ» ¾Ë¾Ò´Ù¸é ÀÌ °­ÀǸ¦ µéÀº º¸¶÷ÀÌ ÀÖÀ» °ÍÀÌ´Ù.

2. Á¤¼ö·ÐÀÇ ±âÃÊ

RSA ¾Ë°í¸®ÁòÀ» ÀÌÇØÇϱâ À§Çؼ­´Â Á¤¼ö·ÐÀ» ¹Ýµå½Ã ¾Ë¾Æ¾ß ÇÑ´Ù. º¹ÀâÇÏ°Ô º¸ÀÏÁö ¸ð¸£Áö¸¸, Çϳª Çϳª ÇØ ³ª°¡¸é, °áÄÚ ¾î·Á¿î ÀÏÀÌ ¾Æ´ÔÀ» ¾Ë °ÍÀÌ´Ù.

2.1 ¹è¼ö

A | B : A ÀÇ ¹è¼ö°¡ B¶ó´Â °ÍÀ» ÀǹÌÇÑ´Ù.

2.2 mod

a-b°¡ MÀÇ ¹è¼öÀ϶§, Áï M | a - b À϶§, Áï a - b = mk À϶§ a´Â ¹ý m ¿¡ °üÇØ¼­ b ¿Í ÇÕµ¿À̶ó°í Çϰí, ±âÈ£·Î À̶ó°í ¾´´Ù.

2.3 ¸ðµâ ¿¬»êÀÇ ¼ºÁú

2.4 ¿ÀÀÏ·¯ ÆÄÀÌ ÇÔ¼ö

Àº 1ºÎÅÍ m-1±îÁöÀÇ Á¤¼ö Áß¿¡¼­ m°ú ¼­·Î ¼ÒÀÇ °ü°è¿¡ ÀÖ´Â Á¤¼öµéÀÇ °¹¼ö¸¦ ³ªÅ¸³½´Ù. ¸¸¾à p°¡ ¼Ò¼ö¶ó¸é, ÀÌ´Ù.

2.5 ¿ÀÀÏ·¯ÀÇ Á¤¸®

ÀÓÀÇÀÇ ¾çÀÇ Á¤¼ö a¿Í m¿¡ ´ëÇÏ¿©, a¿Í m ÀÌ ¼­·Î ¼ÒÀÏ °æ¿ì ´ÙÀ½ÀÇ ½ÄÀÌ ¼º¸³ÇÑ´Ù.

3. RSA

3.1 ¹è°æ Áö½Ä

RSA ÀÇ ÀÔ·ÂÀº, ºí·Ï ´ÜÀ§·Î ³ª´©¾î Áø´Ù. ºí·° »çÀÌÁî´Â À̰í, ¾Ë°í¸®Áò¿¡¼­ Áß¿äÇÑ ¿ªÇÒÀ» ÇÏ´Â n À̶ó´Â ¼ýÀÚÀÇ ¹üÀ§´Â ÀÌ´Ù. RSA ¿¡¼­´Â, ÀÔ·ÂÀ» ¼ýÀÚ·Î º»´Ù. ¿¹¸¦ µé¾î, ¸Þ½ÃÁö°¡ 512 bitÀ̸é, ±× ÀÔ·ÂÀ» 512 bit·Î º¸°í, ÀÌ ¼ýÀÚ¸¦ ¼öÇÐÀûÀ¸·Î º¯È¯½ÃÄÑ ¾Ïȣȭ¸¦ Çϰí, ´Ù½Ã ¿ø·¡ÀÇ ¼ö¸¦ ¸¸µé¾î º¹È£È­¸¦ ÇÑ´Ù. ¾ó¸¶ Àü¿¡, RSA 512 bit °¡ ±úÁ³´Ù´Â ¸»ÀÌ ÀÖ¾ú´Ù. ÀÌÁ¦ ¾ÕÀ¸·ÎÀÇ ÀüÀÚ »ó°Å·¡¿¡¼­´Â ±âº»ÀûÀ¸·Î 1024 bit ÀÌ»óÀ» »ç¿ëÇØ¾ß ÇϰڴÙ. RSA ¿¡´Â °ø°³Å°¿Í ºñ¹Ð۰¡ ÀÖ´Ù. °ø°³Å°·Î ¾Ïȣȭ ÇÑ µ¥ÀÌŸ´Â ºñ¹ÐŰ·Î º¹È£È­ ÇÒ ¼ö ÀÖ°í, ºñ¹ÐŰ·Î ¾Ïȣȭ ÇÑ µ¥ÀÌŸ´Â °ø°³Å°·Î º¹È£È­ ÇÒ ¼ö ÀÖ´Ù. ¾ÕÀ¸·ÎÀÇ ¹®¼­¿¡¼­ M Àº ¿ø·¡ÀÇ µ¥ÀÌŸ(Æò¹®)À» ÀǹÌÇϰí C´Â ¾ÏȣȭÇÑ µ¥ÀÌŸ(¾ÏÈ£¹®)¸¦ ÀǹÌÇÑ´Ù.

3.2 ¾Ë°í¸®Áò ÀÛ¼º ¼ø¼­

3.3 ¾Ïȣȭ/º¹È£È­ °úÁ¤

¾Ïȣȭ :
º¹È£È­ :
ÀÌ °úÁ¤¿¡¼­ ¿ÜºÎ¿¡ °ø°³µÇ´Â °ø°³Å°´Â e ¿Í nÀ̰í, ºñ¹ÐŰ´Â d¿Í nÀÌ´Ù.

3.3.1 ¾Ë°í¸®Áò Áõ¸í

¿©±â¿¡¼­´Â ÀÌ ¾Ë°í¸®ÁòÀ» ¼öÇÐÀûÀ¸·Î Áõ¸íÇÑ´Ù. »ç½Ç, ÀÌ ºÎºÐÀº Àü¹®ÀûÀÎ ºÎºÐÀ̹ǷΠRSA ÀÇ °³³ä¸¸À» Àâ°í ½ÍÀº µ¶ÀÚµéÀº ±×³É 4ÀåÀ¸·Î ³Ñ¾î°¡µµ ÁÁ´Ù.


ÀÌÁ¦ ¿©±â¿¡¼­ À» Áõ¸íÇÏ¸é µÈ´Ù.
Å©°Ô µÎ °¡Áö·Î ³ª´©¾î¼­ »ý°¢À» ÇØ º¸ÀÚ.

¸ÕÀú M°ú nÀÌ ¼­·Î ¼ÒÀÎ °æ¿ì¸¦ »ý°¢ÇØ º¸ÀÚ. ÀÌ °æ¿ì ¿ÀÀÏ·¯ÀÇ Á¤¸®¿¡ ÀÇÇÏ¿© À̶ó´Â ½ÄÀÌ ¼º¸³ÇÑ´Ù. ÀÌ ½ÄÀÇ ¾çº¯¿¡ M À» °öÇϸé ÀÌ µÈ´Ù.

µÎ¹øÂ°·Î, M°ú nÀÌ ¼­·Î ¼Ò°¡ ¾Æ´Ñ °æ¿ì¸¦ »ý°¢ÇØ º¸ÀÚ(´Ü, M < n). n = pq À̹ǷÎ, MÀº pÀÇ ¹è¼ö ¾Æ´Ï¸é qÀÇ ¹è¼ö°¡ µÈ´Ù. ÀϹݼºÀ» ÀÒÁö ¾Ê°í, MÀ» pÀÇ ¹è¼ö¶ó°í °¡Á¤ÇØ º¸ÀÚ. Áï M = cp °¡ µÈ´Ù(¿©±â¼­ c´Â qÀÇ ¹è¼ö°¡ Àý´ë·Î ¾Æ´Ï´Ù). ±×·¡¼­ GCD(M, q) = 1ÀÌ´Ù.

ÀÌ ½ÄÀÇ ¾çº¯¿¡ ½ÂÀ» Çϸé, ±×·±µ¥ À̹ǷÎ

±×·¯¹Ç·Î À» ¸¸Á·½ÃŰ´Â Á¤¼ö k°¡ Á¸ÀçÇÑ´Ù. ÀÌ ½ÄÀÇ ¾çº¯¿¡ M, Áï cp¸¦ °öÇϸé ÀÌ ¼º¸³ÇÑ´Ù.
Áï, ÀÌ´Ù.

ÀÌÁ¦ Áõ¸íÀÌ ³¡³µ´Ù. ¿©±â¼­ Àá±ñ, ÇѰ¡Áö »ý°¢À» ÇØº¸ÀÚ. ¾Ïȣȭ¸¦ ÇÒ¶§´Â M ÀÇ e ½ÂÀ» Çϰí , º¹È£È­ ÇÒ¶§´Â C ÀÇ d ½ÂÀ» Çß´Ù. ±×·¯³ª, À§ÀÇ °è»ê °úÁ¤À» Àß º¸¸é e ¿Í d°¡ ¹Ù²î¾îµµ µÈ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. Áï, ¾Ïȣȭ ÇÒ¶§ MÀÇ d ½ÂÀ» Çϰí, º¹È£È­ ÇÒ´ë CÀÇ e ½ÂÀ» ÇØµµ ¿ø·¡ÀÇ ¸Þ½ÃÁö M ÀÌ ³ª¿À°Ô µÇ´Â °ÍÀÌ´Ù.

3.4 RSA ¾Ë°í¸®ÁòÀ» À§ÇØ ÇÊ¿äÇÑ °è»êµé

3.4.1 Áö¼ö °è»ê

RSA ¾Ë°í¸®ÁòÀÇ ¾Ïȣȭ¿Í º¹È£È­¿¡¼­, Áö¼ö °è»êÀÌ ÇÊ¿äÇÏ´Ù. ±×·±µ¥ ¼ýÀÚµéÀÌ ³Ê¹« Å©¸é(1024 bit) ¼Óµµ°¡ ¸Å¿ì ´À·ÁÁö±â ¶§¹®¿¡, ºü¸¥ Áö¼ö °è»ê ¾Ë°í¸®ÁòÀ» »ç¿ëÇÑ´Ù. ¸¦ ±¸ÇÑ´Ù°í ÇÏÀÚ. Æò¹üÇÑ ¹æ¹ý´ë·Î ÇÑ´Ù¸é, 8À» 26¹ø °öÇØ¼­ ±×°ÍÀ» 55·Î ³ª´©¸é ±× °ªÀÌ x°¡ µÈ´Ù. ÀÌ ¹æ¹ýÀ¸·Î ÇÑ´Ù¸é, ÃÖ¼Ò 27¹øÀÇ °è»êÀÌ ÇÊ¿äÇÏ´Ù. ºü¸¥ Áö¼ö °è»ê ¾Ë°í¸®ÁòÀº ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î ÇÑ´Ù. À̹ǷΠÀÌ µÈ´Ù.

±×·¯¹Ç·Î, ´ÙÀ½°ú °°Àº ½ÄÀÌ ¼º¸³ÇÑ´Ù.

ÀÌ °æ¿ì, °è»êÀº 4¹ø¹Û¿¡ ÀÌ·ç¾îÁöÁö ¾Ê´Â´Ù. ÀÌÁ¦, À§ÀÇ ¾Ë°í¸®ÁòÀ¸·Î À» °è»êÇÏ´Â C Äڵ带 º¸ÀÚ. ¿©±â¿¡¼­ ¼ýÀÚµéÀº ¸ðµÎ int ¶ó°í °¡Á¤ÇÑ´Ù.
int FastExp(int a, int y, int m)
{
    int x = 1;
    while(y) {
        if(y % 2 == 1)
            x = (x * a) % m;
        a = (a * a) % m;
        y >>= 1;
    }
    return x;
}

3.4.2 Å« ¼Ò¼ö ã±â

RSA ¾Ë°í¸®Áò¿¡¼­, ¸Ç ¸ÕÀú µÎ°³ÀÇ ¼Ò¼ö p¿Í q¸¦ ã¾Æ¾ß ÇÑ´Ù. ±×·±µ¥, ¾ÆÁÖ Å« ¼Ò¼ö¸¦ ã´Â È¿°úÀûÀÎ ¹æ¹ýÀº ¾ÆÁ÷ ãÁö ¸øÇß´Ù°í ÇÑ´Ù. ±×·¡¼­ ¿Ïº®ÇÏÁø ¾ÊÁö¸¸, ¸î°¡Áö È¿°úÀûÀÎ ¹æ¹ýµéÀÌ °í¾ÈµÇ¾ú´Ù. ±× Áß ÇѰ¡Áö ¹æ¹ýÀº, ¾î¶² ¼ö°¡ ¼Ò¼ö°¡ ¾Æ´ÑÁö¸¦ ÆÇº°ÇÏ´Â ¹æ¹ýÀÌ´Ù. ¸¸¾à À» ¸¸Á·ÇÏ´Â, +1 ¶Ç´Â -1 ÀÌ ¾Æ´Ñ x°¡ Á¸ÀçÇÑ´Ù¸é n Àº ¼Ò¼ö°¡ ¾Æ´Ï´Ù. ÀÌ·± ¹æ¹ýÀ¸·Î, ¼Ò¼ö°¡ ¾Æ´Ñ ¼öµéÀ» Á¦°ÅÇØ ³ª°¡¸é, ¼Ò¼öÀÏ °¡´É¼ºÀÌ ¸¹Àº ¼öµéÀ» ãÀ» ¼ö ÀÖ´Ù. ±× ¼ö°¡ Á¤¸» ¼Ò¼öÀÎÁö ¾Æ´ÑÁö´Â Çϳª Çϳª ¾à¼öµéÀ» ´ëÀÔÇØ º¸´Â ¹æ¹ýÀ¸·Î ÇØ¾ß ÇÒ °ÍÀÌ´Ù.

3.4.3 ¼­·Î ¼ÒÀÎ ¼ö ±¸Çϱâ

¾î¶² ¼ö a¿Í ¼­·Î ¼ÒÀÎ ¼ö¸¦ ±¸ÇÏ´Â °ÍÀº °£´ÜÇÏ´Ù. ÀÓÀÇÀÇ ÀÚ¿¬¼ö 2°³¸¦ »Ì¾ÒÀ»¶§, µÎ ¼ö°¡ ¼­·Î ¼ÒÀÏ È®·üÀº 0.6Âë µÈ´Ù°í ÇÑ´Ù. ±×·¯¹Ç·Î, a¿Í ¼­·Î ¼ÒÀÎ ¼ö¸¦ ãÀ¸·Á¸é ÀÓÀÇÀÇ ¼ö¸¦ ÅÃÇÑ ´ÙÀ½ ±×¼ö¿Í À¯Å¬¸®µå È£Á¦¹ýÀ¸·Î ÃÖ´ë °ø¾à¼ö¸¦ ±¸ÇØ ÃÖ´ë °ø¾à¼ö°¡ 1ÀÎÁö °Ë»çÇÑ´Ù. ¸¸¾à ¼­·Î ¼Ò°¡ ¾Æ´Ï¶ó¸é ÀÓÀÇÀǼö + 1 .. ¿¡ ´ëÇØ¼­ °è¼Ó ÇØ º»´Ù. °ð ±× ¼ö¸¦ ã°Ô µÉ °ÍÀÌ´Ù.

3.4.4 ¿ª¿ø ã±â

GCD(a, m) = 1À϶§, À» ¸¸Á·½ÃŰ´Â x¸¦ ã´Â ¹æ¹ýÀÌ´Ù. ÀÌ ¹æ¹ýÀº µÎ°¡Áö°¡ ÀÖ´Ù. Çϳª´Â À¯Å¬¸®µå È£Á¦¹ýÀ» ÀÌ¿ëÇÏ´Â ¹æ¹ýÀ̰í, ´Ù¸¥ Çϳª´Â ¿ÀÀÏ·¯ Á¤¸®¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ýÀÌ´Ù.

¾Æ±î ¿ÀÀÏ·¯ Á¤¸®¿¡¼­ GCD(a,m) = 1À϶§(a¿Í mÀÌ ¼­·Î ¼ÒÀ϶§) À̶ó°í Çß´Ù. ±×·¸´Ù¸é, À§¿¡¼­ x´Â ÀÌ µÈ´Ù.

3.5 RSA ¾Ë°í¸®Áò ±ú±â

±ú´Â ¹æ¹ýÀº Å©°Ô ¼¼°¡Áö°¡ ÀÖ´Ù.

5. ½ÇÁ¦ ¿¹Á¦

  1. p = 7, q = 11 ¶ó°í ÇÏÀÚ. m = 77 À» ÀϹݿ¡ °ø°³ÇÑ´Ù. p, q ´Â °ø°³ÇÏÁö ¾Ê´Â´Ù.
  2. = (7-1) x (11-1) = 60 ÀÌ´Ù. ¿©±â¼­ ÀÌ µÇ´Â e¸¦ °è»êÇÑ´Ù. ¿©±â¼­ e´Â 60°ú ¼­·Î ¼ÒÀÎ ¼öÀ̹ǷÎ, 13À̶ó°í ÀâÀÚ.
  3. ¿ø·¡ ¸Þ½ÃÁö°¡ 18¿´´Ù¸é, ¾ÏÈ£¹®Àº ´ÙÀ½°ú °°ÀÌ µÈ´Ù.
  4. ÀÌ ¾ÏÈ£¹®ÀÇ ºñ¹ÐŰ d´Â ¸¦ ¸¸Á·ÇÏ´Â xÀ̰í, À̰ÍÀº °è»êÇØº¸¸é 37ÀÌ´Ù.
  5. ÀÌ ¾ÏÈ£¹®À» ¿ø·¡´ë·Î º¹È£È­ ÇÏ¸é ´ÙÀ½°ú °°´Ù.

5. Âü°í ¹®Çå

Cryptography and Network Security : Principles and Practice, 2nd (William Stallings)
ÀÌ»ê ¼öÇÐ(½ÅÇö½Ä ¿Ü)