# What does $\langle A, B\rangle$ mean?

I'm reading about CL-PKC and in Al-Riyami's FullIndent, I find some notations I must be sure to understand, to well explain it in my report.

This algorithm takes paramsand $A$'s secret value $x_A$ as input and constructs $A$'s public Key $P_A$ like this :

$$P_A = \langle X_A, Y_A\rangle$$

With $X_A=x_A P$ and $Y_A = x_A P_0 = x_a s P$

Does $\langle A, B\rangle$ mean the concatenation of $A$ and $B$ ? If yes, why not using the || operator ?

• – user991
May 19, 2016 at 11:34
• It probably just denotes the pair $(A,B)$, I am not sure why some people think parentheses are inadequate... May 19, 2016 at 11:34
• @RickyDemer I don't see the link between my question and the wikipage... May 19, 2016 at 11:37
• @fkraiem : So the "pair" can be seen as 2 strings concatenated, right ? May 19, 2016 at 11:37

From context, it appears $\langle A,B \rangle$ simply denotes (some value unambiguously encoding) the pair of values $A$ and $B$.

In general, when discussing high-level protocols, no specific encoding for such pairs (or more complex tuples of values) is specified. It is simply assumed that we can unambiguously store and transmit such structured data somehow, but the specific manner in which this is done is considered an implementation detail.

Of course, an interoperability standard may indeed need to specify such an encoding, especially if such data structures are to be processed by cryptographic primitives that are defined as operating on (bit or byte) strings, with the expectation that independent evaluations of the primitive on the same structure should yield the same canonical output. Some standard encoding schemes include e.g. csexps or the various ASN.1 encodings, although it's also common for specific interoperability standards to specify their own custom encoding schemes.

Note that, even if $A$ and $B$ are both strings, the pair $\langle A,B \rangle$ can not generally be unambiguously encoded merely by concatenating $A$ and $B$ together, since concatenation may introduce ambiguity when the length of the strings being concatenated is not fixed. For a simple example, $10 \,||\, 1 = 101 = 1 \,||\, 01$. That said, if the length of either $A$ or $B$ (or both) is fixed, then $A \,||\, B$ can indeed be a valid unambiguous encoding of $\langle A,B \rangle$.

Triangular or angle-brackets represent inner product in linear algebra but it has nothing to do with the same notation in cryptography. Probably, that's why you're confused about it.

I think, here it's used to show that $P_A$ "is made of" $X_A$ and $Y_A$. The reason I think so is that, there's such usage of angular brackets:

$params= \langle G1, G2, e, n, P, P0, H1, H2 \rangle$

• OK, but made of means what ? Concatenation ? bitwise XOR ? May 19, 2016 at 12:59
• Think params as a vector, which is made of elementsL $G1, G2, e, n, ..$. And probably $P_A$ is also a vector, whose elements are $X_A$ and $Y_A$. May 19, 2016 at 13:43
• OK, but the vector $C$ (the ciphertext) cannot be transmitted in a datagram payload. A concatenation of elements of a vector, ok, but again we'rs back at the beginning... May 19, 2016 at 14:02
• hm yeah, in that case it becomes the same as concat.. May 19, 2016 at 14:04
• @EisenHeim Concatenation may not be reversible let alone canonical. In crypto a lot of parameters are encoded using ASN.1 and BER/DER because of that reason. The paper seems only to specify the algorithm. The algorithm is theoretical, not practical; it doesn't need to be concerned about encoding of parameters. Either you'll have to find a document that specifies the encoding or you'll have to specify one yourself. May 19, 2016 at 17:03