A3 — алгоритм, используемый в процессе аутентификации в глобальном цифровом стандарте для мобильной сотовой связи GSM. A3 является, таким образом, элементом системы обеспечения конфиденциальности разговора в GSM наряду с алгоритмами A5 и A8. Задача алгоритма — генерация отзыва (SRES — Signed Response) на случайный пароль (RAND — Random), получаемый сотовым телефоном (MS — Mobile Station) от центра коммутации MSC (MSC — Mobile Switching Centre) в процедуре аутентификации. А3 реализуется в SIM-карте абонента.
Суть аутентификации в GSM — избежание клонирования мобильного телефона пользователя. Секретным ключом является 128-битный ключ Ki, которым обладает как абонент, так и Центр Аутентификации (AuC — Authentication Centre). Ki хранится в SIM-карте, также как и алгоритм A3. Также в аутентификации принимают участие Домашний реестр местоположения (HLR — Home Location Registry) и Центр коммутации (MSC — Mobile Switching Centre)
Когда MS запрашивает доступ к сети GSM (например при включении), MSC должен проверить подлинность MS. Для этого MSC отправляет в HLR уникальный международный идентификатор абонента (IMSI — International Mobile Subscriber Identity) и запрос на получение набора специальных триплетов. Когда HLR получает IMSI запрос на триплеты, он сначала проверяет свою базу данных, чтобы удостовериться, что MS с таким IMSI действительно принадлежит сети. Если проверка прошла успешно, то HLR отправляет IMSI и запрос установления подлинности в АuC.
AuC использует IMSI, чтобы найти Ki соответствующий этому IMSI. Также AuC генерирует случайное 128-битное число RAND. После этого AuC вычисляет 32-битный отзыв SRES (SRES — Signed Response) при помощи алгоритма A3: SRES = A3(RAND, Ki). Кроме того, AUC вычисляет 64-битный сеансовый ключ Kc при помощи алгоритма A8: Kc = A8(RAND, Ki). Kc в дальнейшем используется в алгоритме A5 для шифрования и расшифрования данных.
RAND, SRES, и Kc как раз образуют триплеты, которые MSC запросил у HLR. AuC генерирует пять таких триплетов и посылает их в HLR, затем HLR пересылает этот набор в MSC. Генерируется именно набор триплетов, чтобы уменьшить передачу сигналов в GSM core network, которая происходила бы каждый раз, когда MS запрашивала бы доступ к сети, а MSC должен был бы проверить подлинность MS. Следует отметить, что набор триплетов уникален для одного IMSI и не может быть использован для какого-либо другого IMSI.
MSC сохраняет Kc и SRES и посылает запрос RAND мобильной станции MS абонента. Получив запрос RAND, MS вычисляет ответ на запрос SRES при помощи алгоритма A3 и секретного ключа Ki: SRES = A3(RAND, Ki), и посылает его в MSC. Если принятый SRES совпадает с SRES, хранящимся в MSC, то аутентификация считается пройденной успешно.
После пяти сессий аутентификации MSC запрашивает у HLR новый набор триплетов (RAND, SRES, Kc)
Когда MS запрашивает доступ к сети GSM (например при включении), MSC должен проверить подлинность MS. Для этого MSC отправляет в HLR уникальный международный идентификатор абонента (IMSI — International Mobile Subscriber Identity) и запрос на получение набора специальных триплетов. Когда HLR получает IMSI запрос на триплеты, он сначала проверяет свою базу данных, чтобы удостовериться, что MS с таким IMSI действительно принадлежит сети. Если проверка прошла успешно, то HLR отправляет IMSI и запрос установления подлинности в АuC.
AuC использует IMSI, чтобы найти Ki соответствующий этому IMSI. Также AuC генерирует случайное 128-битное число RAND. После этого AuC вычисляет 32-битный отзыв SRES (SRES — Signed Response) при помощи алгоритма A3: SRES = A3(RAND, Ki). Кроме того, AUC вычисляет 64-битный сеансовый ключ Kc при помощи алгоритма A8: Kc = A8(RAND, Ki). Kc в дальнейшем используется в алгоритме A5 для шифрования и расшифрования данных.
RAND, SRES, и Kc как раз образуют триплеты, которые MSC запросил у HLR. AuC генерирует пять таких триплетов и посылает их в HLR, затем HLR пересылает этот набор в MSC. Генерируется именно набор триплетов, чтобы уменьшить передачу сигналов в GSM core network, которая происходила бы каждый раз, когда MS запрашивала бы доступ к сети, а MSC должен был бы проверить подлинность MS. Следует отметить, что набор триплетов уникален для одного IMSI и не может быть использован для какого-либо другого IMSI.
MSC сохраняет Kc и SRES и посылает запрос RAND мобильной станции MS абонента. Получив запрос RAND, MS вычисляет ответ на запрос SRES при помощи алгоритма A3 и секретного ключа Ki: SRES = A3(RAND, Ki), и посылает его в MSC. Если принятый SRES совпадает с SRES, хранящимся в MSC, то аутентификация считается пройденной успешно.
После пяти сессий аутентификации MSC запрашивает у HLR новый набор триплетов (RAND, SRES, Kc)