# Finale Technik Pallier
## Instanzen
**Arzt:** Patientendaten
**KrankheitsDB:** Krankheitenliste
**Hilfsserver:** PallierPrivate, PallierPublic
## 1.
Wandle Patientendaten Variablen auf Skala zwischen $0$ und $1$ und mit PallierPublic verschlüssele die Daten.
**P:**
| Int/Double | Enum | Boolean |
| -------- | -------- | -------- |
| 120 | Anginal | True |
**PScale:**
| Int/Double | Enum | Boolean |
| -------- | -------- | -------- |
| 0.7 | 0.5 | 1 |
**PScalePallier:**
| Int/Double | Enum | Boolean |
| -------- | -------- | -------- |
| xxxx | xxxx | xxxx |
## 2.
**Arzt** schickt **PScalePallier** an **KrankheitsDB**, dort wird erste Krankheit gewünschter Art mit gleicher Skala wie Patientendaten umgeformt und von **PScalePallier** subtrahiert.
**K:**
| Int/Double | Enum | Boolean |
| -------- | -------- | -------- |
| 100 | Typisch Anginal | False |
**KScale:**
| Int/Double | Enum | Boolean |
| -------- | -------- | -------- |
| 0.5 | 0.75 | 0 |
**PScalePallier:**
| Int/Double | Enum | Boolean |
| -------- | -------- | -------- |
| xxxx-0.5 = a | xxxx-0.75 = b | xxxx-0 = c |
## 3.
**KrankheitsDB** erzeugt ein zufälliges **r** und addiert dies zu $a,b,c$ als $a_r,b_r,c_r$ und berechnet stets $\alpha = -(2xr-r^2) | x \in \{a,b,c\}$
Notiz:
$a = 0.2$
$a_r = 0.3$
$b = -0.25$
$b_r = - 0.15$
## 4.
**KrankheitsDB** lässt **HilfsDB** $x_r^2$ berechnen und zurückschicken und zieht danach $-(2xr+r^2)$ ab, und speichert dies als $a_+$
Notiz:
$a_r^2 = 0.09$
$a_+ = 0.09 -(2*0.2*0.1+0.1^2) =0.04$
$b_r^2 = 0.0225.$
$a_+ = 0.0225 -(2*-0.25*0.1+0.1^2) =0.0625$
## 5.
**KrankheitsDB** berechnet $a_+*b_+*...$ als $\beta_+$
Notiz:
$\beta_+ = a_+*b_+ = 0.04 + 0.0625 = 0.1025$
## 6.
**KrankheitsDB** schickt $\beta_+$ and **HilfsDB** und wiederholt Schritte 3. - 6. für nächste Krankheit. **HilfsDB** speicher Krankheit mit kleinstem $\beta$ und gibt diese am Ende des Vorganges an Arzt zurück.
## Beispiel
**P:**
| Int/Double | Enum | Boolean |
| -------- | -------- | -------- |
| 100 | Anginal | True |
**PScale:**
| Int/Double | Enum | Boolean |
| -------- | -------- | -------- |
| 0.5 | 0.5 | 1 |
**PScalePallier:**
| Int/Double | Enum | Boolean |
| -------- | -------- | -------- |
| xxxx | xxxx | xxxx |
**K1:**
| Int/Double | Enum | Boolean |
| -------- | -------- | -------- |
| 90 | Typisch Anginal | False |
**K1Scale:**
| Int/Double | Enum | Boolean |
| -------- | -------- | -------- |
| 0.4 | 0.75 | 0 |
**K1:**
| Int/Double | Enum | Boolean |
| -------- | -------- | -------- |
| 120 | Nein | True |
**K1Scale:**
| Int/Double | Enum | Boolean |
| -------- | -------- | -------- |
| 0.7 | 0 | 1 |
**PScalePallier1:**
$a = 0.1, b =-0.25, c = 1$
$r_1 = 1.38, r_2 = 0.79, r_3 = -1.45$
$a_{r_1} = 1.48, b_{r_2} =0.54, c_{r_3} = -0.45$
$a_{r_1}^2 = 2.1904, b_{r_2}^2 = 0.2916, c_{r_3}^2 = -0.2025$
$a_+ = 2.1904 -(2*0.1*1.38+1.38^2) =0.01$
$b_+ = 0.0625$
$c_+ = 1$
$\beta_1 = 1.0725$
**PScalePallier2:**
$d = -0.2, e =0.5, f = 0$
$r_4 = 4.18, r_5 = -46.79, r_6 = -0.3$
$d_{r_4} = 3.98, e_{r_5} =-46.29, f_{r_6} = -0.3$
$d_{r_4}^2 = 15.8404, e_{r_5}^2 = -2142.7641, f_{r_6}^2 = -0.09$
$d_+ = 0.04$
$e_+ = 0.25$
$f_+ = 0$
$\beta_2 = 0.29$
$\sum^{v \in V}v^2 = \alpha$