Patent ID: 11743036

Abstract:
A method for establishing a shared key, includes: determining, by a first device, a braid group Bn having an index n as a public key; selecting, by the first device, a plurality of elements from the braid group Bn to generate a subgroup P, and selecting an element x from the subgroup P as a private key; receiving, by the first device, {y−1σ1y,y−1σ2y, . . . , y−1σn−1y} sent from a second device; sending, by the first device, {x−1σ1x,x−1σ2x, . . . , x−1σn−1x} calculated according to the first private key and each element of the public key, to the second device, to allow the second device to replace all occurrences of σk in the second private key y with x−σkx to obtain fy(x−1σ1x,x−1σ2x, . . . , x−1σn−1x)=x−1yx and to obtain the shared key x−1y−1xy by calculation; and replacing all σk in the first private key of the first device with y−1σky to obtain fx(y−1σ1yy−1σ2y, . . . , y−1σn−1y)=y−1xy, and calculating to obtain the shared key x−1y−1xy.