Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.08.2009, 15:31
sabarn вне форума Посмотреть профиль Отправить личное сообщение для sabarn Найти все сообщения от sabarn
  № 1  
Ответить с цитированием
sabarn
 
Аватар для sabarn

Регистрация: Nov 2008
Адрес: МО
Сообщений: 105
Отправить сообщение для sabarn с помощью ICQ
Attention великие гуру! подскажите с ключом RSA !!!

Граждане гуру флэша, подскажите как работать с методом шифрования RSA?
Я уже всю голову сломал. вроде всё понятно, но не работает!

Как я понял, значение myPEMPublicKeyString нужно генерировать на странице http://crypto.hurlant.com/demo/ , нажимаю кнопку generate
Но какое значение взять там? пытался взять значение P (в статье http://ru.wikipedia.org/wiki/RSA википедии написано что P играет роль открытого ключа), возникает ошибка
I DONT KNOW HOW TO HANDLE DER stuff of TYPE 27
Error: Error #2030: Обнаружен конец файла.
at flash.utils::ByteArray/readBytes()
at com.hurlant.util.der:ER$/parse()[C:\project\com\hurlant\util\der\DER.as:134]
at com.hurlant.util.der::PEM$/readRSAPublicKey()[C:\project\com\hurlant\util\der\PEM.as:77]
Cannot display source code at this location.

пытался взять другие значения на той же странице, тоже возникают ошибки...

что же использовать в значении ключа myPEMPublicKeyString?

Код AS3:
package main
{
	import com.hurlant.crypto.rsa.RSAKey;
	import com.hurlant.util.Hex;
	import com.hurlant.util.der.PEM;
	import com.hurlant.util.Base64;
	public class MainClass extends MovieClip
	{	
		public var myPEMPublicKeyString = "-----BEGIN PUBLIC KEY-----9e1d1a0171c24f03bb883228b2dfd12d6afe91c3f89733b2bef20f7218910164679f0f7fead168617031f0c19d982600fd1911af74d6556922b5ba8d40e0a563-----END PUBLIC KEY-----";
		public var dataCode:ByteArray;
		public var encryptedResult:ByteArray = new ByteArray();
		public var rsa:RSAKey;
 
		public function MainClass():void
		{
			//попытка зашифровать
			dataCode = Hex.toArray(Hex.fromString("codeMy"));
			rsa = PEM.readRSAPublicKey(myPEMPublicKeyString);
			rsa.encrypt(dataCode, encryptedResult, dataCode.length);
			//
		}
	}
}
__________________
так то оно так, но ежели иначе - так вот тебе и пожалуста

Старый 05.08.2009, 15:54
catyoshi вне форума Посмотреть профиль Отправить личное сообщение для catyoshi Найти все сообщения от catyoshi
  № 2  
Ответить с цитированием
catyoshi

Регистрация: Feb 2006
Сообщений: 56
Отправить сообщение для catyoshi с помощью ICQ
не знаю как на флеше. я около месяца с ним только знаком.
но по ссылке http://crypto.hurlant.com/demo/ я не нашел откуда можно скопировать "готовый ключ". там етсь только данные для его состввления

e – открытый (public) показатель
d – частный (private) показатель.
(n; e) – открытый (public) ключ
(n; d) – частный (private) ключ

показатели и модули по указанной вами ссылке приводятся

Пример шифрования:
M - исходное сообщение
C - зашифрованный текст
C = (M^e)*( mod n ) // ( C = (M^e) % n ) // (e; n) - открытый публичный ключ (public key), полученный от удаленного хоста во время процедуры handshake
M = 6; e = 5; n = 133 d = 65
Тогда:
C = M^e % n = 6^5 % 133 = 7776 % 133 = 62

пример дешифрования:

M - исходное сообщение
C - зашифрованный текст
M = 6; e = 5; n = 133 d = 65
Тогда:
M = C^d % n = 62^65 % 133 = 62 * 62^64 % 133 = 62 * (62^2)^32 % 133 = 62 * 3844^32 % 133 = 62 * (3844 % 133)^32 % 133 = 62 * 120^32 % 133 = ... = 62 * 43 % 133 = 2666 % 133 = 6

Добавлено через 16 минут
а вообще ключики можно генирить не только на том сайте. есть куча сторонних утилит. от openssl до puttygen

http://www.chiark.greenend.org.uk/~s.../download.html
сгенерите себе ключики (открытый и закрытый). вы всгеда можете посмотреть их "строковое значение" в файлах, куда вы сохраните их


Последний раз редактировалось catyoshi; 05.08.2009 в 16:12.
Старый 05.08.2009, 16:18
sabarn вне форума Посмотреть профиль Отправить личное сообщение для sabarn Найти все сообщения от sabarn
  № 3  
Ответить с цитированием
sabarn
 
Аватар для sabarn

Регистрация: Nov 2008
Адрес: МО
Сообщений: 105
Отправить сообщение для sabarn с помощью ICQ
catyoshi, спасибо большое за ответ и дельные советы
__________________
так то оно так, но ежели иначе - так вот тебе и пожалуста

Старый 05.08.2009, 16:25
catyoshi вне форума Посмотреть профиль Отправить личное сообщение для catyoshi Найти все сообщения от catyoshi
  № 4  
Ответить с цитированием
catyoshi

Регистрация: Feb 2006
Сообщений: 56
Отправить сообщение для catyoshi с помощью ICQ
попробывал сейчас достать данные из своего открытого ключа
получилсоь примерно следюущее

public_key - ключ из файла
result_string = base64_decode(public_key);

result_string выглядит так: 'ssh-rsa#n;e'

где n и е описаны выше.
как я понмиаю, вам надо сделать обратное преобразование

public_key = base64_encode( 'ssh-rsa#n;e' );

n и е надо взять в виде текста (не в Hex и не в base64)

Добавлено через 15 минут
на всякий случай алгоритм составления своих n, e, d

p и q - простые числа (т.е. числа которые делятся без остатка только сами на себя)
алгоритм для нахождения этих чисел вроде придуман Евклидом. в инете должны быть его реализации

p != q

# модуль
n = p * q;
m = ( p - 1 ) * ( q - 1 );

1 < e < m
// e = 1; while ( ! ( m % ++e ) ) {}

d = 0;
while ( ( ( ++d * e ) % m ) != 1 ) {}

d != 0

вот собственно и все о составных частях RSA ключа

Старый 06.08.2009, 13:06
sabarn вне форума Посмотреть профиль Отправить личное сообщение для sabarn Найти все сообщения от sabarn
  № 5  
Ответить с цитированием
sabarn
 
Аватар для sabarn

Регистрация: Nov 2008
Адрес: МО
Сообщений: 105
Отправить сообщение для sabarn с помощью ICQ
Цитата:
Сообщение от catyoshi Посмотреть сообщение
result_string выглядит так: 'ssh-rsa#n;e'
с этим ясно, а какую вставку добавлять чтоб получить private key?

Добавлено через 59 минут
помогите разобраться, как опубликовать ключи, в нормальном виде, пользуясь классами, прилагаемой библиотеки com.hurlant
__________________
так то оно так, но ежели иначе - так вот тебе и пожалуста

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:06.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
rsa key

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:06.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.