Как зашифровать одно сообщение для нескольких получателей?

попробуйте это ...

 static Camera camera = null;

объявить его сверху.

 try{ 
   if(clickOn == true) {
       clickOn = false;
       camera = Camera.open();
       Parameters parameters = camera.getParameters();
       parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
       camera.setParameters(parameters);
       camera.startPreview();

       remoteViews.setViewVisibility(R.id.button1, View.GONE);
       remoteViews.setViewVisibility(R.id.button2, View.VISIBLE);
       localAppWidgetManager.updateAppWidget(componentName, remoteViews);
   } else {
       clickOn = true;
       camera.stopPreview();
       camera.release();
       camera = null;

       remoteViews.setViewVisibility(R.id.button1, View.VISIBLE);
       remoteViews.setViewVisibility(R.id.button2, View.GONE);
       localAppWidgetManager.updateAppWidget(componentName, remoteViews);
   }    
} catch(Exception e) {
   Log.e("Error", ""+e);
}
8
задан erickson 5 November 2008 в 19:07
поделиться

4 ответа

Путем это обычно делается, должен генерировать единственный симметричный ключ для шифрования данных. Затем Вы шифруете симметричный ключ с ключом каждого получателя или паролем, к которому они могут дешифровать его самостоятельно. S/MIME (на самом деле Криптографическое сообщение Синтаксис, на котором базируется S/MIME) использует эту технику.

Таким образом, только необходимо сохранить одну копию зашифрованного сообщения, но несколько копий его ключа.

19
ответ дан 5 December 2019 в 06:24
поделиться

Вообще говоря, то, что Вы делаете, шифруют данные со случайным образом сгенерированным ключом и затем добавляют версии того случайного ключа, которые были зашифрованы с каждым известным ключом. Таким образом, кто-либо с допустимым ключом может обнаружить 'реальный' ключ, который использовался для шифрования данных.

6
ответ дан 5 December 2019 в 06:24
поделиться

Я думаю, что думал о решении, которое будет работать:

D = data to encrypt
h1 = hash(userpassword)
h2 = hash(companyPassword)
k = h1 concat h2

E = function to encrypt
//C is the encrypted data
C = E_h1(h2) concat E_h2(h1) concat E_k(D)

Затем любой человек может дешифровать хеш другого человека и затем объединить их для дешифрования остальной части данных.

Возможно, существует лучшее решение, чем это хотя?

0
ответ дан 5 December 2019 в 06:24
поделиться

В более общем случае секрет (в этом приложении, ключе расшифровки для данных) может быть разделен на доли, таким образом, что некоторое пороговое количество этих долей требуется, чтобы восстанавливать секрет. Это известно как секретное совместное использование или с долями n и порогом t, (t, n) - пороговая схема.

Одним путем это может быть сделано, путем создания многочлена порядка t-1, установки секрета как первого коэффициента и выбора остальной части коэффициентов наугад. Затем n случайные точки на этой кривой выбраны и становятся долями.

0
ответ дан 5 December 2019 в 06:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: