---
# System prepended metadata

title: KC Test & Assumption
tags: [math, cryptography, PSE]

---

# The Knowledge Coefficients Assumption (KCA)

If you haven't read [Homomorphic Hiding and Blind Evaluation](/m8oWQ4WpQlaWc14IEmFLeA), please go to the link above and have a quick look at it.

# KCA

## What's KCA?
When we were calculating the homomorphic hiding function $E$, where $E(x) * E(y) = E(x + y)$, it's hard to say that Alice indeedly knows what $x$ and $y$ are. 

In the reality, this value can be easily concocted, i.e. $x + y = 7$ => $x = 2, y = 5$, yet this proof would be accepted since $E(2) * E(5) = E(2 + 5) = E(7)$.

Therefore, we should introduce the "knowledge of coefficient"/ "knowledge of exponent" to improve our protocol.

## 
As the note shown before, Alice can evaluate $E(P(s))$ from $E(1), E(s), E(s^2), ... , E(s^d)$ provided by Bob.

However, it don't guarentee that Alice would send the value $E(P(s))$ to Bob. In other words, Alice needs to prove that $E(P(s)$ **is really the hiding of** $P(X)$.

## Steps
Let $(G, +)$ be the cyclic group with order $|G| = p$ and generator $g$ where discrete log is hard. **Addition is used here to be more convenient.**

This time, Bob would choose **a pair** of elements $(a, b) \in G$ such that $for \ \alpha \in F_p^*, b = \alpha * a$ and send to Alice to calculate another value. 

> This pair is called an $\alpha$ pair.

**KC Test**:
1. Bob choose a random $\alpha \in F_p^*$ and $a \in G$, compute $b = \alpha * a$, and send $(a,b)$ to ALice.
2. Alice must respond with another $\alpha$ pair: $(a', b')$.
3. Bob accepts Alice's response only if $(a',b')$ is an $\alpha$ pair. (use value of $\alpha$ to check).

However, Alice does not know what exactly $\alpha$ is since Bob only sends $(a, b)$, and **due to DLP, it's really hard to find $\alpha$ from $(a, b)$**

Therefore, Alice can use another method to generate another $\alpha$ pair by using a new number $\gamma \in F_p^*$.

$$
(a', b') = (\gamma * a, \gamma * b)
$$

we can check:

$$
b' = \gamma * b = \gamma * \alpha * a = \alpha * (\gamma * a) = \alpha * a'
$$

which implies $(a', b')$ is a $\alpha$ pair.

## KCA
> The knowledge of Coefficient Assumption (KCA)

KCA states that *If Alice returns  a valid response $(a', b')$ to Bob's challenge with non-negligible probability over Bob's choice of $a, \alpha$*, then she knows $\gamma$ such that $a' = \gamma * a$.

***

# A New Protocol - verifiable blind evaluation
